gpt4 book ai didi

sql - 使用 where 子句创建索引 - SQL SVR 2005

转载 作者:行者123 更新时间:2023-12-04 01:17:48 26 4
gpt4 key购买 nike

我最近发现可以在 SQL Server 2005 的索引中使用 WHERE 子句。我想优化一些查询,并希望得到一些反馈。

感兴趣的表包含 2 个浮点列,[长] 和 [短]。这些列在 20-40% 的行中可能为 0。有多个存储过程使用以下子句之一查询此表:

  • WHERE(长 <> 0 或短 <> 0)
  • WHERE(长 <> 0 和短 <> 0)

我正在考虑使用条件 WHERE <> 0 将索引放在长和短上(或两者上一个索引),希望存储过程能够使用索引扫描而不是表扫描来获取此数据.

鉴于上述信息,您将如何创建索引?或者,如果索引不是最佳解决方案,那么合理的替代方案是什么?提前致谢。

最佳答案

在索引创建中使用Where子句是SQL Server 2008的一项功能 - 过滤索引不在SQL Server 2005中。

过滤索引遵循与普通 NC、非覆盖索引相同的倾斜规则,因此 60-80% 的行 <> 0 时,索引很可能会倾斜到表/聚集索引扫描。

避免这种倾斜的唯一方法是使索引覆盖,但我们无法看到子句/选择的其余部分来知道这是否是一个合理的选项。

关于sql - 使用 where 子句创建索引 - SQL SVR 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2523724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com