我试图通过插入查询来评估sql server 2008/2016的负载水平。
我发现有一些文章讨论了这个问题,比如:http://use-the-index-luke.com/sql/dml/insert,讨论执行时间。
我不太精通sql server,例如,不知道如何评估执行计划。
我知道这是很方便的性能报告,比如“性能-按总CPU时间排列的顶级查询”。
我搜索了一下,没有找到这些报告的定义。
因此,问题是-此报告将哪些服务器任务包括在查询的CPU时间计算中,即
1.索引重新计算?
1.甚至执行触发器
1.还有别的吗?
谢谢大家!
3条答案
按热度按时间mdfafbf11#
这些是MDW或管理数据仓库报告,特别是SQL Server 2008中引入的查询统计历史记录。如果您对收集此数据感兴趣,请启用和Configure the Management Data Warehouse。
What are these reports anyway.
默认情况下,只有前10个查询才会包含在Top 10 Queries by CPU中,但是,您可以模拟报告背后的查询,并使用类似于本article中讨论的查询来调整所需的结果。
dfddblmv2#
索引重新计算和触发器执行不作为查询的一部分执行。索引更新是维护活动的一部分,触发器执行是插入/更新/删除活动的一部分。
一般来说,“顶级查询”报表的计算中不包含“服务器任务”。查询执行计划基于该查询和查询编译开始时可用的数据统计信息。生成的计划与服务器上进行的维护或IUD活动无关。
其他活动可能会导致实际持续时间增加,但额外的时间并不直接归因于查询。查询只是被强制等待其他活动完成。
有帮助吗?
ddrv8njm3#
这是一个修改后的查询,它显示了最大的CPU时间消耗者。它不是平均值,而是汇总值。它还按query_plan_hash分组,因此具有不同参数的相同查询将位于一个组中。
**注1:**如果查询运行频繁(每秒约1次),则其统计信息将每小时刷新一次。
**注意2:**如果此时仅运行查询,则用户名将存在
**注3:**如果您需要长时间保存统计数据,您需要将其单独存储在某个地方。此外,添加按日期分组将有助于报告