你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
nccloud
Ø 查询当前正在执行的语句
SELECT
der.[session_id],der.[blocking_session_id],
sp.lastwaittype,sp.hostname,sp.program_name,sp.loginame,
der.[start_time] AS '开始时间',
der.[status] AS '状态',
dest.[text] AS 'sql语句',
DB_NAME(der.[database_id]) AS '数据库名',
der.[wait_type] AS '等待资源类型',
der.[wait_time] AS '等待时间',
der.[wait_resource] AS '等待的资源',
der.[logical_reads] AS '逻辑读次数'
FROM sys.[dm_exec_requests] AS der
INNER JOIN master.dbo.sysprocesses AS sp ON der.session_id=sp.spid
CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
--WHERE [session_id]>50 AND session_id<>@@SPID
ORDER BY der.[session_id]
GO
155
171
Ø 是否堵塞
SELECT spid,blocked,waittime,waittype,waitresource,p.dbid,cpu,physical_io,memusage,open_tran
,status,login_time,last_batch,hostname,program_name,hostprocess,loginame,cmd,text
FROM master.dbo.sysprocesses p CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) s
WHERE blocked > 0 OR spid IN(SELECT blocked FROM master.dbo.sysprocesses WHERE blocked > 0)
go
Ø 检查锁表
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_tran_locks t where resource_type='OBJECT' order by spid asc;
Ø 查询导致死锁的sql语句
dbcc inputbuffer(spid);
Ø 解锁
declare @spid int
Set @spid = 123--锁表进程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)
Ø 杀掉进程
kill spid
参考:https://www.cnblogs.com/zhengyazhao/p/10917575.html
快照隔离启用校验:
#如下SQL如果查询结果是0或者false,则没有启用,要执行后面的SQL启用
select is_read_committed_snapshot_on from sys.databases where name='数据库名';
#执行此SQL需要数据库无连接,最好重启后立即执行,否则会一致等待,同时如果这个不调业务上会出现锁等待alter database 数据库名 set READ_COMMITTED_SNAPSHOT on;
#查询数据库的全局参数
select * from sys.databases where name='数据库名'
#查询option
DBCC UserOptions
#查询当前数据库有哪些会话
sp_who
#杀掉会话
kill [spid]
要回复问题请先登录或注册
2 个回复
nccloud
Ø 查询当前正在执行的语句
SELECT
der.[session_id],der.[blocking_session_id],
sp.lastwaittype,sp.hostname,sp.program_name,sp.loginame,
der.[start_time] AS '开始时间',
der.[status] AS '状态',
dest.[text] AS 'sql语句',
DB_NAME(der.[database_id]) AS '数据库名',
der.[wait_type] AS '等待资源类型',
der.[wait_time] AS '等待时间',
der.[wait_resource] AS '等待的资源',
der.[logical_reads] AS '逻辑读次数'
FROM sys.[dm_exec_requests] AS der
INNER JOIN master.dbo.sysprocesses AS sp ON der.session_id=sp.spid
CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
--WHERE [session_id]>50 AND session_id<>@@SPID
ORDER BY der.[session_id]
GO
155
171
Ø 是否堵塞
SELECT spid,blocked,waittime,waittype,waitresource,p.dbid,cpu,physical_io,memusage,open_tran
,status,login_time,last_batch,hostname,program_name,hostprocess,loginame,cmd,text
FROM master.dbo.sysprocesses p CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) s
WHERE blocked > 0 OR spid IN(SELECT blocked FROM master.dbo.sysprocesses WHERE blocked > 0)
go
Ø 检查锁表
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_tran_locks t where resource_type='OBJECT' order by spid asc;
Ø 查询导致死锁的sql语句
dbcc inputbuffer(spid);
Ø 解锁
declare @spid int
Set @spid = 123--锁表进程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid as varchar)
exec(@sql)
Ø 杀掉进程
kill spid
参考:https://www.cnblogs.com/zhengyazhao/p/10917575.html
nccloud
快照隔离启用校验:
#如下SQL如果查询结果是0或者false,则没有启用,要执行后面的SQL启用
select is_read_committed_snapshot_on from sys.databases where name='数据库名';
#执行此SQL需要数据库无连接,最好重启后立即执行,否则会一致等待,同时如果这个不调业务上会出现锁等待
alter database
数据库名 set READ_COMMITTED_SNAPSHOT on;
#查询数据库的全局参数
select * from sys.databases where name='数据库名'
#查询option
DBCC UserOptions
#查询当前数据库有哪些会话
sp_who
#杀掉会话
kill [spid]