SELECT * FROM master..sysprocessesSELECT @@MAX_CONNECTIONS (預設 32767),可在伺服器屬性調整。SELECT @@VERSION 或 SELECT SERVERPROPERTY('ProductLevel')。.bak 複製到另一台機器,建立同名資料庫並還原(選擇「強制還原」)。it_Products_Data, it_Products_Log) 必須保留,物理路徑可重新指定。test):同樣強制還原,邏輯檔名不變,物理檔名改為 test_Data.mdf, test_Log.ldf。max server memory。SQL Profiler 捕捉阻塞與長查詢。sp_configure 'locks', 20000 增加鎖資源 (需重啟)。DBCC、SERIALIZABLE 隔離等級、應用程式碼中的 UPDLOCK / HOLDLOCK。NOLOCK / 設定 READ UNCOMMITTED 降低封鎖。SELECT 後補 COMMIT (釋放共享鎖)。sp_lock 檢視 locktype 含 -blk 表有阻塞。master..syslocks 結合 sysdatabases 查阻塞表:SELECT b.name dbname, a.id table_id, page, spid FROM syslocks a JOIN sysdatabases b ON a.dbid=b.dbid WHERE a.type & 256 = 256| 值 | Hex | 說明 |
|---|---|---|
| 1 | 0x1 | 排他表鎖 (X) |
| 2 | 0x2 | 共享表鎖 (S) |
| 3 | 0x3 | 排他意圖鎖 (IX) |
| 4 | 0x4 | 共享意圖鎖 (IS) |
| 5 | 0x5 | 排他頁鎖 |
| 6 | 0x6 | 共享頁鎖 |
| 7 | 0x7 | 更新頁鎖 |
| 8 | 0x8 | 排他列鎖 |
| 9 | 0x9 | 共享列鎖 |
| 10 | 0xA | 更新列鎖 |
| 256 | 0x100 | 阻塞其他程序 (BLK) |
| 512 | 0x200 | 請求鎖 (REQ) |
P_lockInfo功能:列出死鎖鏈 (阻塞者/受害者)、顯示執行中 SQL (DBCC INPUTBUFFER)、可選自動 KILL 死鎖 SPID。完整程式碼見原文。
-- 簡單復原模式
BACKUP LOG dbname WITH NO_LOG; -- 截斷日誌
DBCC SHRINKFILE (dbname_log, 5); -- 壓縮至 5MB
-- 完整復原模式:需定期 BACKUP LOG TO DISK 才能截斷
注意:DUMP TRANSACTION 為 Sybase 相容語法,正式環境請用 BACKUP LOG。
重新啟動 散發代理程式、記錄讀取代理程式、合併代理程式 (視複寫類型)。