SQL Server阻塞blocking案例分析
今天在效能測試過程中發現大量阻塞報警,檢查whoisactive()資料發現,阻塞blocking頭部session當前執行的語句如下:
<?query --
(@p0 int,@p1 datetime,@p2 bigint,@p3 bigint,@p4 bigint)INSERT INTO [LicenseAction]([LicenseActionTypeID], [ActionDate], [LicenseID], [DocumentID], [TransactionDetailID])
VALUES (@p0, @p1, @p2, @p3, @p4)
SELECT CONVERT(BigInt,SCOPE_IDENTITY()) AS [value]
--?>
被block的session有幾十個,但是當前執行的語句都一樣:
<?query --
UPDATE dbo.HT
SET IQuantity = IQuantity + 1,
IRIQuantity = IQuantity + 1,
QuotaFilledDate = CASE WHEN FilledDate IS NULL
AND IssuedQuantity + 1 >= QuotaQuantity THEN dbo.udf_GetCurrentDateTime()
ELSE QuotaDate
END
FROM dbo.Hunt
WHERE HID = @HID
--?>
鎖等待資訊如下:
<Lock resource_type="KEY" index_name="PK_Hunt" request_mode="U" request_status="WAIT" request_count="1" />
可以看出是主鍵爭用,初步分析是不同事務的同時更新相同的主鍵行造成的,開trace驗證
當前執行的雖然是insert語句,但是從whoisactive對於session持有的鎖分析得出,事務肯定是有其他對於Pk_hunt的key的爭用語句,單個事務的語句資訊果然包含對於pk_hunt表的更新儲存過程
可以看到確實是不同的transactionid同時更新相同的行造成的阻塞鏈
分析結果提交給測試人員,檢查配置並聯系開發人員進行修正。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69950462/viewspace-2662846/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- blocking_session阻塞BloCSession
- How to prevent blocking in your SQL Server databaseBloCSQLServerDatabase
- SQL Server阻塞查詢語句SQLServer
- 監視 SQL Server 2000 阻塞SQLServer
- SQL Server 加密案例解析SQLServer加密
- Oracle中診斷阻塞session的方法 blocking errorOracleSessionBloCError
- sql server行列轉換案例SQLServer
- SQL Server 監控統計阻塞指令碼資訊SQLServer指令碼
- 案例分析:700G SQL Server資料庫遷移HGSQLServer資料庫
- SQL Server一次SQL調優案例SQLServer
- SQL SERVER--系統隱形殺手—阻塞與等待SQLServer
- 一次sql server2012 AwaysON只讀節點嚴重阻塞分析SQLServer
- SQL效能優化案例分析SQL優化
- 故障分析 | ClickHouse 叢集分散式 DDL 被阻塞案例一則分散式
- SQL Server中的SELECT會阻塞SELECT相關資料SQLServer
- SQL Server效能分析引數 (轉)SQLServer
- 查詢阻塞與被阻塞SQL語句SQL
- sql語句的優化案例分析SQL優化
- 資料庫Server效能問題分析案例一資料庫Server
- 淺析SQL Server效能分析引數SQLServer
- SQL Server 索引使用分析 - SARG(Searchable Arguments)SQLServer索引
- NIO非阻塞程式設計小案例程式設計
- sql server資料庫select產生嚴重阻塞引起效能問題SQLServer資料庫
- Blocking ElementsBloC
- Go 中的阻塞分析Go
- oracle鎖阻塞的分析Oracle
- 用VB和SQL Server實現檔案上傳(方案例)SQLServer
- HighgoDB查詢慢SQL和阻塞SQLGoSQL
- hanganalyze分析會話阻塞會話
- SQL in ORACLE and SQL ServerSQLOracleServer
- sql ServerSQLServer
- SQL Server記憶體遭遇作業系統程式壓榨案例SQLServer記憶體作業系統
- MySQL的共享鎖阻塞會話案例淺析MySql會話
- SQL Server Page資料庫結構深入分析SQLServer資料庫
- SQL Server 2016 快照代理過程分析SQLServer
- [譯]SQL Server分析服務的許可權配置SQLServer
- SQL Server資料倉儲的構建與分析SQLServer
- SQL Server連線SQL Server、SQL Server連線ORACLE 連結伺服器SQLServerOracle伺服器