gpt4 book ai didi

sql-server - 获取 "set statistics io on"导致 t-sql 进行调优

转载 作者:行者123 更新时间:2023-12-04 00:41:40 24 4
gpt4 key购买 nike

我想为涉及许多存储过程的复杂过程添加监视功能。
在某些情况下,我想捕获单个语句产生的逻辑读取数。

换句话说,我想打开set statistics io on ,访问(并将结果保存到日志表)通常在 SSMS 中“消息”选项卡中显示的内容。

我看到它可以在 .Net 中使用 SqlInfoMessageEventHandler 完成。我确信它也可以在 T-SQL 中完成,但我还没有找到。

谢谢!

sys.dm_exec_requests 中的 Logical_reads 也没有增加......

对我来说完美的解决方案是以某种方式捕获“设置统计数据”信息的方法:

select name, id
from sysobjects
union all
select name,id
from sysobjects ;


(120 row(s) affected)
Table 'sysschobjs'. Scan count 2, logical reads 6, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

最佳答案

一种方法是使用 dynamic management views ,在 2008 年及以后推出。例如,要确定查询完成的读取次数,您可以:

declare @start_reads bigint
select @start_reads = reads from sys.dm_exec_requests where session_id = @@spid

-- Your query here

select reads - @start_reads from sys.dm_exec_requests where session_id = @@spid

基本上有两种类型的计数器:
  • _session_ View 具有在当前批次完成后递增的计数器。
  • _exec_计数器从 0 开始并在您的批处理运行时递增。
  • 关于sql-server - 获取 "set statistics io on"导致 t-sql 进行调优,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626788/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com