【开发心得】sqlserver性能优化中常用的几个命令

最近一直在查关于资源锁定的故障,期间粗浅的研究了关于sqlserver性能优化方面的知识。总结了几个在发生故障的时候,经常需要使用的工具语句,记录下来,希望下次能够用得上。

这次故障的主要原因还是事务处理,由于一个大的事务无法拆分,造成长时间的资源锁定。除了优化事务本身,减少资源的锁定时间之外,由于事务必须在白天经常执行,最后的解决方案是在数据表里设置一个标志,一旦开始事务,则设置标志位,保证其他执行事务的人无法启动,减少死锁的时间,并且友好的通知用户。

设置锁表超时时间

select @@LOCK_TIMEOUT
set LOCK_TIMEOUT -1

查看sql日志

也可以直接到日志文件中去查

exec xp_readerrorlog 0,1,NULL,NULL,'2020-11-24','2020-11-25','desc'
exec xp_readerrorlog 0

数据一致性检查

DBCC INPUTBUFFER(53)

查询正在被锁定的表

select   request_session_id   spid,OBJECT_NAME(resource_associated_entity_id) tableName  from   sys.dm_tran_locks where resource_type='OBJECT'

查询当前连接的用户

SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN (SELECT [DBID] FROM [Master].[dbo].[SYSDATABASES] WHERE NAME='****')

查询用户的连接情况

SP_WHO '用户名'

仅保留3个月内的日志(个人专用)

select * from LogError where datediff(month,dtDate,getdate())>3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值