我启用了 sql profiler 并确定了几个需要很长时间才能执行的查询。
例如:
Select A from table_A where B = 2
我的问题是,基于上述查询,我是在 A 列还是 B 列上创建索引?还是A和B?
我启用了 sql profiler 并确定了几个需要很长时间才能执行的查询。
例如:
Select A from table_A where B = 2
我的问题是,基于上述查询,我是在 A 列还是 B 列上创建索引?还是A和B?
您的索引应该在 B 上,因为这就是您的情况。您可能会从尝试所有方法并查看生成的执行计划中受益。
我会在 B 列上创建一个索引,因为这就是 sql server 进行比较的原因。之后我会再次运行分析器以查看添加索引是否会对其他查询产生负面影响。
B
包含列的索引A
。B
where 可以在仍然返回时使用 seek on A
。
在 B 和 A 上创建单独的索引。在 A 上创建索引是为了避免 KEY LOOKUP。