我希望这个问题不太明显…我已经找到了很多有关解释执行计划的好信息,但是有一个我没有找到答案的问题。
计划(更具体地说是相对的CPU成本)是仅基于架构还是基于数据库中当前的实际数据?
我试图对产品数据库中需要索引的位置进行一些分析,但是我正在使用自己的测试系统,该系统的数据量与该领域的产品数量不尽相同。我看到一些奇怪的事情,例如添加索引后估计的CPU成本实际上略有上升,并且想知道这是否是因为我的数据集太小了。
我正在使用SQL Server 2005和Management Studio进行计划
它将基于架构和数据。模式告诉它哪些索引可用,数据告诉它哪个更好。
答案可能会有所不同,具体取决于您所使用的DBMS(尚未说明),但是它们都会维护索引的统计信息,以了解索引是否会有所帮助。如果索引将1000行分解为900个不同的值,则它是一个很好的索引。如果一个索引仅对1000行产生3个不同的值,则它不是真的,selective因此不是很有用。
selective