【问题标题】:Performance of non-clustered indexes on different column types不同列类型的非聚集索引的性能
【发布时间】:2011-10-16 14:05:20
【问题描述】:

int 列上的非聚集索引是否被认为比 decimaldatetime 列上的非聚集索引更高效?

【问题讨论】:

    标签: sql performance sql-server-2008 indexing


    【解决方案1】:

    在某些方面:是的。

    INT 只有 4 个字节 - 因此更多的 INTs 将适合 SQL Server 中的单个 8K 页。

    DATETIME 使用 8 个字节 - 因此单个页面上存储的 DATETIME 值更少,或者对于相同数量的DATETIMEs,您需要更多页面,因此您获得更多磁盘 I/O,因此更少性能。

    差异有多大取决于更详细的测量,但是 - 对于数百万行以下的任何内容,差异很可能可以忽略不计。如果您的查询确实受益于该 DATETIME 列上的索引 - 我会毫不犹豫地添加它(再次强调:除非您正在处理数百万行表......那么您可能需要更详细的调查)

    【讨论】:

    • 还有很多人忽略了 SMALLDATETIME - 它与 INT 宽度相同,如果亚分钟精度不重要(通常不重要),它可以成为 DATETIME 的合适替代品。
    猜你喜欢
    • 2023-03-23
    • 2011-10-12
    • 2012-08-26
    • 2011-03-24
    • 2016-09-05
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    相关资源
    最近更新 更多