我目前正在做一些测试,以确定在SQL Server 2005中给定列上包含索引的性能影响。
我正在使用的测试数据集大约有7200万行(大约6 GB的数据)。为了实际 测试 索引的性能,我需要能够比较有和没有索引的性能。
一切都很好,但是首先创建索引并不便宜。如果要在没有索引的情况下测试表,则至少需要禁用索引。要测试索引,我需要重新启用它,这需要花费很长时间。
有什么方法可以强制SQL Server 2005在执行查询时忽略给定的索引?我不想只为了测试查询就禁用索引,因为禁用索引需要花费很长时间。
SELECT * FROM MyTable WITH (INDEX(0)) WHERE MyIndexedColumn = 0
查询通常将使用MyIndexedColumn上的索引,但是由于有表提示,它将改为进行tablescan。
SELECT * FROM MyTable WITH (INDEX(IndexName)) WHERE MyIndexedColumn = 0
查询通常将使用MyIndexedColumn上的索引,但是由于有表提示,它将改为使用名为IndexName的索引。