【问题标题】:Fastest way to get the max date in SQL database (Azure)在 SQL 数据库 (Azure) 中获取最大日期的最快方法
【发布时间】:2021-02-17 22:42:59
【问题描述】:

我有一个表,其中有很多行,最多 1000000。和 300 列

问题:我想知道获取表中“LastModifiedDate”列的最大日期的最快方法。

在我的表中,我有以下列:IdLastModifiedDate 和其他列...

提前感谢您的帮助

【问题讨论】:

    标签: sql sql-server azure-sql-database


    【解决方案1】:

    如果插入的记录是最新的LastModifiedDate ,并且这个LastModifiedDate列写入表后不会改变。
    我认为您可以在LastModifiedDate 列上创建一个聚集索引。在聚集表中,SQL Server 聚集索引用于存储根据聚集索引键值排序的数据行。你可以参考这个文档Designing effective SQL Server clustered indexes

    【讨论】:

    • 这可能会在每次更改 LastModifiedDate 时移动行。所以这是否是一个好主意取决于应用程序。
    • 是的,如果插入的记录是最新的日期,并且这个日期写入表后不会改变,这是可行的。
    【解决方案2】:

    在列上放一个索引并使用:

    select max(LastModifiedDate)
    from t;
    

    如果您想要日期最大的完整行:

    select top (1) t.*
    from t
    order by LastModifiedDate desc;
    

    【讨论】:

    • 谢谢,请问有最快的方法吗
    • @hugo 。 . .使用索引,这应该是最快的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多