Share via


如何:建立工作負載

工作負載是對您要微調的資料庫所執行的一組 Transact-SQL 陳述式。微調資料庫時,Database Engine Tuning Advisor 圖形化使用者介面 (GUI) 及 dta 命令列公用程式會使用追蹤檔案、追蹤資料表或 Transact-SQL 指令碼來做為工作負載輸入。工作負載亦可內嵌在 XML 輸入檔中,您也可以在該檔中指定各事件的加權。如需指定內嵌工作負載的詳細資訊,請參閱<使用 XML 輸入檔進行微調>。

您可以使用 Microsoft SQL Server Management Studio 中的 [查詢編輯器] 或您喜好的文字編輯器,來建立 Transact-SQL 指令碼工作負載。若要建立追蹤檔案或追蹤資料表工作負載,請使用 SQL Server Profiler。Database Engine Tuning Advisor 會分析這些工作負載,以建議可增進伺服器查詢效能的索引或分割策略。

[!附註]

使用追蹤資料表作為工作負載時,該資料表必須位於 Database Engine Tuning Advisor 所微調的同一部伺服器上。若您在不同的伺服器上建立追蹤資料表,請將它移到 Database Engine Tuning Advisor 正在微調的伺服器。

若要使用 SQL Server Management Studio 查詢編輯器來建立 Transact-SQL 指令碼工作負載

  1. 在 SQL Server Management Studio 中啟動 [查詢編輯器]。如需如何執行此步驟的詳細資訊,請參閱<在 SQL Server Management Studio 中編輯指令碼和檔案>。

  2. 在 [查詢編輯器] 中鍵入您的 Transact-SQL 指令碼。此指令碼應包含一組 Transact-SQL 陳述式,可針對您要微調的資料庫來執行。請用 .sql 副檔名儲存檔案。Database Engine Tuning Advisor GUI 及命令列公用程式都可使用這個 Transact-SQL 指令碼來做為工作負載。

若要使用 SQL Server Profiler 來建立追蹤檔案及追蹤資料表工作負載

  1. 使用下列其中一種方法來啟動 SQL Server Profiler:

    • [開始] 功能表中,依序指向 [所有程式][Microsoft SQL Server][效能工具],然後按一下 [SQL Server Profiler]

    • 在 SQL Server Management Studio 中,按一下 [工具] 功能表,然後按一下 [SQL Server Profiler]

  2. 按照下列程序,使用 SQL Server Profiler**[微調]** 範本來建立追蹤檔案或資料表:

我們建議您使用 SQL Server Profiler [微調] 範本來擷取 Database Engine Tuning Advisor 的工作負載。

若您想要使用自己的範本,請確定已針對您所使用的 SQL Server 版本擷取下列追蹤事件。

SQL Server 2005 及更新的版本:

  • RPC:Completed

  • SQL:BatchCompleted

  • SP:StmtCompleted

SQL Server 2000:

  • RPC:Completed

  • SQL:BatchCompleted

您也可以使用這些追蹤事件的 Starting 版本,例如 SQL:BatchStarting。不過,這些追蹤事件的 Completed 版本包含 Duration 資料行,能讓 Database Engine Tuning Advisor 更有效率地微調工作負載。Database Engine Tuning Advisor 不會微調其他類型的追蹤事件。如需這些追蹤事件的詳細資訊,請參閱<Stored Procedures 事件類別目錄>和<TSQL 事件類別目錄>。如需使用「SQL 追蹤」預存程序來建立追蹤檔案工作負載的詳細資訊,請參閱<如何:建立追蹤 (Transact-SQL)>。

包含 LoginName 資料行的追蹤檔案或追蹤資料表工作負載

Database Engine Tuning Advisor 會在微調處理過程中送出「執行程序表」要求。將包含 LoginName 資料行的追蹤資料表或檔案當作工作負載來使用時,Database Engine Tuning Advisor 會模擬 LoginName 中指定的使用者。如果此使用者沒有 SHOWPLAN 權限,無法為追蹤所包含的陳述式執行和產生「執行程序表」,Database Engine Tuning Advisor 就不會微調這些陳述式。如需有關 LoginName 資料行的詳細資訊,請參閱 <使用資料行描述事件>。如需有關 SHOWPLAN 權限的詳細資訊,請參閱<執行程序表安全性>。

若要避免將 SHOWPLAN 權限授與追蹤之 LoginName 資料行所指定的每個使用者

  1. 微調追蹤檔案或資料表工作負載。如需詳細資訊,請參閱<如何:微調資料庫>。

  2. 檢查微調記錄檔,找出因沒有適當權限而未微調的陳述式。如需詳細資訊,請參閱<關於微調記錄>與<如何:檢視微調輸出>。

  3. 從未微調的事件刪除 LoginName 資料行來建立新工作負載,然後在新的追蹤檔案或資料表中僅儲存未微調的事件。如需有關從追蹤刪除資料行的詳細資訊,請參閱 如何:指定追蹤檔案的事件 (SQL Server Profiler)如何:修改現有的追蹤 (Transact-SQL)

  4. 將不含 LoginName 資料行的工作負載重新提交給 Database Engine Tuning Advisor。

由於追蹤中沒有指定登入資訊,所以 Database Engine Tuning Advisor 將會微調新的工作負載。如果陳述式中沒有 LoginName,Database Engine Tuning Advisor 便會藉由模擬起始微調工作階段的使用者 (sysadmin 固定伺服器角色或 db_owner 固定資料庫角色),來微調該陳述式。