SQLServer查看正在执行的SQL语句的方法

本文介绍了一种查询SQL Server中IO性能的方法,并提供了通过设置数据库为SINGLE_USER模式及开启READ_COMMITTED_SNAPSHOT来减少锁定时间和提高读取性能的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELECT TOP 50
 (total_logical_reads + total_logical_writes) AS total_logical_io,
 (total_logical_reads / execution_count) AS avg_logical_reads,
(total_logical_writes / execution_count) AS avg_logical_writes,
(total_physical_reads / execution_count) AS avg_phys_reads,
substring (st.text,
(qs.statement_start_offset / 2) + 1,
((CASE qs.statement_end_offset WHEN -1
 THEN datalength (st.text)
ELSE qs.statement_end_offset END
 - qs.statement_start_offset)/ 2)+ 1)
 AS statement_text,
*
FROM sys.dm_exec_query_stats AS qs
 CROSS APPLY sys.dm_exec_sql_text (qs.sql_handle) AS st

ORDER BY total_logical_io DESC 


READ_COMMITED方法开启

--查询数据库状态
select name,user_access,user_access_desc,
    snapshot_isolation_state,snapshot_isolation_state_desc,
    is_read_committed_snapshot_on
from sys.databases
 
--设置数据库为SINGLE_USER模式,减少锁定时间
ALTER DATABASE prjidbzzh SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE prjidbzzh SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE prjidbzzh SET READ_COMMITTED_SNAPSHOT ON
ALTER DATABASE prjidbzzh SET MULTI_USER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值