-- 查看死锁信息SELECT XEventData.XEvent.value('(data/value)[1]','varchar(max)')AS DeadlockGraph
FROM(SELECT CAST(target_data AS XML)AS TargetData
FROM sys.dm_xe_session_targets st
JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address
WHERE s.name ='system_health')ASDataCROSSAPPLY TargetData.nodes('//RingBufferTarget/event')AS XEventData (XEvent);-- 优化查询(添加缺失索引)CREATEINDEX IX_TableName_ColumnName ON TableName(ColumnName);
3. 错误9002:日志爆炸
-- 收缩事务日志(需先备份日志)BACKUP LOG [YourDatabase]TODISK= N'D:\Backup\YourDatabase.trn';DBCC SHRINKFILE (YourDatabase_Log,1024);-- 收缩到1GB-- 设置自动日志备份DECLARE@SQL NVARCHAR(MAX);SELECT@SQL='BACKUP LOG ['+ name +'] TO DISK = N''D:\Backup\' + name + '_'
+ REPLACE(REPLACE(CONVERT(VARCHAR(20), GETDATE(), 120), '-', ''), ':', '')
+ '.trn''';EXEC sp_MSforeachdb @SQL;
三、CSDN高赞技巧:性能优化三板斧
1. 索引优化秘籍
-- 查找缺失索引SELECT
AVG_USER_IMPACT * AVG_TOTAL_USER_COST *(USER_SEEKS + USER_SCANS)AS Impact,'CREATE INDEX [IX_'+ OBJECT_NAME(s.object_id)+'_'+ c.name +']
ON '+ OBJECT_NAME(s.object_id)+' ('+ c.name +')'AS CreateIndexStatement
FROM sys.dm_db_missing_index_details d
JOIN sys.columns c ON d.object_id = c.object_id AND d.index_column_id = c.column_id
JOIN sys.objects s ON d.object_id = s.object_id
WHERE d.database_id = DB_ID()ORDERBY Impact DESC;-- 重建碎片索引ALTERINDEXALLON[YourTable] REBUILD WITH(ONLINE =ON);
2. 查询性能调优
-- 使用执行计划分析SET SHOWPLAN_ALL ON;
GO
-- 粘贴你的慢查询SQLSELECT*FROM BigTable WHERE NonIndexedColumn ='Value';
GO
SET SHOWPLAN_ALL OFF;-- 强制使用索引SELECT*FROM BigTable WITH(INDEX(IX_YourIndex))WHERE NonIndexedColumn ='Value';
3. 内存配置优化
-- 查看当前内存使用SELECT
physical_memory_kb/1024AS PhysicalMemoryMB,
committed_kb/1024AS CommittedMemoryMB,
visible_target_kb/1024AS VisibleTargetMB,
committed_target_kb/1024AS CommittedTargetMB
FROM sys.dm_os_sys_info;-- 配置最大内存(根据物理内存调整)EXEC sp_configure 'max server memory',8192;-- 设置为8GBRECONFIGURE;