設定 cursor threshold 伺服器組態選項
此主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2012 中設定 cursor threshold 伺服器組態選項。 cursor threshold 選項會指定資料指標集中以非同步方式產生資料指標索引鍵集的列數。 當資料指標為結果集產生索引鍵集時,查詢最佳化工具會估計將在該結果集傳回的資料列數。 如果查詢最佳化工具估計將傳回的列數會大於這個臨界值,就會以非同步方式產生資料指標,讓使用者在資料指標繼續擴展的同時,可以從資料指標擷取資料列。 否則,系統會以同步的方式產生資料指標,使查詢等到所有資料列都傳回為止。
本主題內容
開始之前:
限制事項
建議
安全性
使用下列方法設定 cursor threshold 選項:
SQL Server Management Studio
Transact-SQL
待處理:設定 cursor threshold 選項之後
開始之前
限制事項
SQL Server 不支援非同步產生索引鍵集驅動或靜態 Transact-SQL 資料指標。 OPEN 或 FETCH 之類的 Transact-SQL 資料指標作業是以批次方式來處理,因此,不需要非同步產生 Transact-SQL 資料指標。 SQL Server 會繼續支援非同步索引鍵集驅動或靜態應用程式開發介面 (API) 伺服器資料指標,其中低度延遲 OPEN 會是一個顧慮,因為每一個資料指標作業都需要用戶端往返。
查詢最佳化工具用來決定索引鍵集中估計資料列數的精確度,須視資料指標中每個資料表統計資料的準確度而定。
建議
這個選項是進階選項,只有有經驗的資料庫管理員或通過認證的 SQL Server 技術人員才可變更。
如果將 cursor threshold 設成 -1,所有索引鍵集都會以同步方式產生,這有益於小型的資料指標集。 如果將 cursor threshold 設成 0,所有資料指標索引鍵集都會以非同步方式產生。 若使用其他值,查詢最佳化工具會比較資料指標集中預期的列數,如果列數超過 cursor threshold 中設定的數字,就以非同步方式建立索引鍵集。 請不要將 cursor threshold 設得太低,因為小的結果集最好是以同步的方式建立。
安全性
權限
依預設,所有使用者都會取得不含參數或只含第一個參數之 sp_configure 的執行權限。 若要執行同時設定了兩個參數的 sp_configure 來變更組態選項或執行 RECONFIGURE 陳述式,使用者必須取得 ALTER SETTINGS 伺服器層級權限。 系統管理員 (sysadmin) 和伺服器管理員 (serveradmin) 固定伺服器角色會隱含地擁有 ALTER SETTINGS 權限。
[Top]
使用 SQL Server Management Studio
若要設定資料指標臨界值選項
在 [物件總管] 中,以滑鼠右鍵按一下伺服器,然後選取 [屬性]。
按一下 [進階] 節點。
在 [其他] 下,將 [資料指標臨界值] 選項變更為所要的值。
[Top]
使用 Transact-SQL
若要設定資料指標臨界值選項
連接到 Database Engine。
在標準列中,按一下 [新增查詢]。
將下列範例複製並貼到查詢視窗中,然後按一下 [執行]。 這個範例示範如何使用 sp_configure 將 cursor threshold 選項設定為 0,以便以非同步方式產生資料指標索引鍵集。
USE AdventureWorks2012 ;
GO
EXEC sp_configure 'show advanced options', 1 ;
GO
RECONFIGURE
GO
EXEC sp_configure 'cursor threshold', 0 ;
GO
RECONFIGURE
GO
如需詳細資訊,請參閱<伺服器組態選項>。
[Top]
待處理:設定 cursor threshold 選項之後
設定會立即生效,不需要重新啟動伺服器。
[Top]
請參閱
參考
UPDATE STATISTICS (Transact-SQL)