構建一個應用程式以從其 XML Showplan 中提取查詢的估計執行成本。使用者只能將成本低於預定閾值的那些查詢提交到運行 SQL Server 2005 的伺服器,從而確保伺服器不會由於成本高、長時間啟動並執行查詢而超載。
一、簡介
Microsoft SQL Server 2005 使其查詢執行計畫(又稱作 Showplan)可以採用 XML 格式。而且可以使用任何一種 XML 技術(例如 XPath、XQuery 或 XSLT)來處理 XML Showplan。本文描述從其 XML Showplan 中提取查詢的估計執行成本的應用程式。Transact-SQL 所提取的成本可用於 Transact-SQL 視窗。使用該技術,使用者只能將那些成本低於預定閾值的查詢提交到運行 SQL Server 的伺服器。這確保該伺服器不會由於成本高、長時間啟動並執行查詢而超載。
二、目標和受眾
本文的目標是 SQL Server 開發人員和資料庫管理員 (DBA)。它向資料庫管理員簡要介紹了 SQLCLR(公用語言運行庫)。用於提取 Showplan 的應用程式使用兩個 Microsoft Visual C# .NET 小程式,本文還詳細闡述 SQL Server 如何調用通過編譯這些程式產生的 DLL。該應用程式還使用了可用於查詢和提取 XML 資料中資訊的 XPath 和 XQuery 技術。SQL Server 2005 為這兩種查詢語言提供內建支援。本文示範這兩種語言如何與 Transact-SQL 進行無縫地互動操作。
三、問題聲明
SQL Server DBA 有時會遇到這種情況,即使用者在工作高峰期向伺服器提交長時間啟動並執行查詢,因而降低了伺服器的響應速度。有兩種方法可以防止這一情況的發生:
1.
DBA 可使用 sp_configure 將 query governor cost limit 選項設定為特定閾值。(這是一個進階選項。)該閾值在整個伺服器內是有效。
2.
要影響串連的閾值,DBA 可以使用 SET QUERY_GOVERNOR_COST_LIMIT 語句。