我已使用数据库引擎优化顾问分别为多个查询生成索引建议。在这样做后,我得到了每个查询的单独建议。因此,我注意到一个建议中使用的列用于另一个,因为查询依赖于同一个表。
在一起运行多个查询后,我可以创建一个有效的建议吗?
答案 0 :(得分:1)
是。建议您通过数据库引擎优化顾问程序运行整个工作负载。看到类似的问题:Indexing by Database engine tuning advisor
答案 1 :(得分:1)
这取决于 - 更少,但更广泛的索引通常更好 - 如果您的查询实际上确实使用了宽索引中的那些列!
如果您有五个查询,并且每个查询在WHERE
子句中使用不同的列,那么单个宽索引将没有多大帮助。
但是如果你的查询都使用了一些或相同的列(两列,三列),那么这三列上的单个宽索引就更好用了。
但要注意:索引中列的顺序很重要!
如果您在(col1, col2, col3)
上创建索引,则可以帮助处理WHERE col1 = value1
或WHERE col1 = value1 AND col2 = value2
条件的查询。
但它不能用于具有WHERE子句的查询,如WHERE col3 = value3