SQLSERVER tempdb 数据库异常增大原因查找
--SQLSERVER tempdb 数据库异常增大,导致服务器卡顿。use tempdbgoDBCC SQLPERF(LOGSPACE)--1.查看数据库文件使用情况select db_name() as dbname,name as filename,size/128.0 as CurrentSizeMB,size/128.0 - cast(fileproperty(name,'spaceUs
--SQLSERVER tempdb 数据库异常增大,导致服务器卡顿。
use tempdb
go
DBCC SQLPERF(LOGSPACE)
--1.查看数据库文件使用情况
select db_name() as dbname,
name as filename,
size/128.0 as CurrentSizeMB,
size/128.0 - cast(fileproperty(name,'spaceUsed') as int)/128.0 as FreeSpaceMB
from sys.database_files;
--2.查看数据库中有无长时间运行的事务
dbcc opentran(tempdb);
--3.由于数据库开启了快照,可通过快照信息查找耗时的查询:
SELECT * FROM sys.dm_tran_active_snapshot_database_transactions order by elapsed_time_seconds desc
--4.获取该session_id对应的查询语句
dbcc inputbuffer(133);
dbcc inputbuffer(58);
--具体执行的语句 execute pr_balance_transfer @p_mode = 'C1',@branch_no = '000',@p_value = '',@p_outpara =''
--5.删掉进程
kill 133
原因:存储过程使用大量临时表,查询完后没有提交数据引起的。
解决办法:设置sqlca.commit = true 或者检索完数据后commit;
参考:SQL Server 查看正在运行的事务信息的 2 种方法。_cxu123321的博客-CSDN博客_sqlserver查看当前事务
更多推荐

所有评论(0)