Ahm*_*mel 5 sql-server indexing
我读到了有关数据库引擎优化顾问以及它如何为给定查询建议索引的内容.我的问题是,在创建索引时,我可以完全依赖这些建议吗?
绝对不。数据库引擎优化顾问的范围非常有限,仅为特定工作负载推荐索引。但实际工作量可能会有所不同。
例如,DTA 会推荐index1特定查询。但是,如果说该表是大量数据修改的目标,那么与维护更重要的工作负载中的数据修改index1所带来的开销和性能影响相比,其好处是非常小的。(这只是一个例子,但应该可以说明索引中的霰弹枪方法如何给您带来麻烦)index1
将 DTA 的建议视为...建议。在实际生产等效工作负载中测试建议的索引的尽职调查是无可替代的。
数据库调优顾问对于调优特定查询或多个查询 非常有用。
但
请注意,在表上放置一堆索引可以提高一个查询的性能,同时会损害另一个查询的性能。此外,表的索引越多,由于必须写入多个索引,写入所需的时间就越长。
如果您有特别长时间运行的查询,您可以参考调优顾问的建议(但在将它们随意扔到表上之前尝试理解为什么它会建议它们)。
另一项(可能)不错的功能是提供跟踪文件供顾问程序解析。如果您能够获得“类似生产”跟踪,则可能会为您提供有益的索引,以便在多个表上使用。我所说的“类似生产”是指如果您能够获得代表长时间内类似生产行为的痕迹。一种选择是跟踪生产(看看为什么这可能是一个坏主意https://dba.stackexchange.com/questions/818/using-sql-profiler-on-a-database-thats-in-product)...但要小心,这可能会非常严厉。以下是有关如何在不使用 UI 的情况下进行较小足迹跟踪的教程: http://tranpeter.blogspot.com/2013/10/sql-server-prover-offline.html
| 归档时间: |
|
| 查看次数: |
487 次 |
| 最近记录: |