![]() |
1
1
这个问题没有正确的答案,因为它很大程度上取决于你的工作量。 对于读取率很高的工作负载(如数据仓库),创建一个索引可能是有意义的,而为具有更大写入量的环境创建一个索引则会适得其反。 DTA可以通过评估对整体工作负载的影响来帮助实现这一点,但您需要尝试捕获一个具有代表性的样本(而不仅仅是性能较差的查询)。SQL事件探查器是非常资源密集型的,因此要在对服务器的影响最小的情况下执行此操作,您需要使用服务器端带有适当筛选器的SQL跟踪,以仅记录与感兴趣的数据库相关的事件。 要单独识别执行最差的查询,如果至少安装了SQL2005 SP1客户端工具,则应能够右键单击Management Studio中的数据库节点,然后使用“报告”->标准报告菜单查看具有最高CPU/IO的缓存中的计划。 如果你对这方面感兴趣,我推荐这本书 SQL Server 2008 Query Performance Tuning Distilled (大部分也适用于sql2005) |
![]() |
2
1
您可以让SQL事件探查器记录到一个表中,这样它将把查询写到您指定的表中。如果可以的话,让它运行几个小时,或者尽可能长的时间来覆盖尽可能多的查询/事件。 接下来,使用数据库引擎优化顾问-并让它使用这个查询表作为其源输入。您会发现它着眼于整个模式,并建议您创建一些索引,删除其他索引。 这比孤立地逐个查看查询要好,尽管这仍然有它的位置。 |
![]() |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
SoT · SQL Server中求和函数的工作方式 2 年前 |
![]() |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
![]() |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
![]() |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |