我最近为一个包含大约2000万行的表添加了一个索引,以提高某些查询的性能。这很好用。问题在于,每天生成几个统计数据,现在,使用该索引,其中一个查询现在花费的时间太长(从几分钟到30分钟后超时)。
我查看了表提示,只看到了如何指定索引的使用而不是如何排除索引的使用。我错过了什么?有没有办法强制执行计划不使用索引?我宁愿保留索引,但如果在夜间统计数据生成中无法将其排除,则会将其删除。
答案 0 :(得分:1)
很难在不查看查询的情况下知道,但这听起来像以下情况可能会有所帮助:
SELECT * FROM MyTable WITH (INDEX(0))
WHERE MyColumn = 'MyValue'
如果这对您不起作用,那么您可能需要发布一些有关查询内容的其他信息。
答案 1 :(得分:0)
如果你这样做
SELECT *
FROM [Table] WITH (INDEX(0))
WHERE "IndexColumn" = 0
将触发tablescan。