回答

4

如果這不是要永久留下的東西(即它只是用於調試/性能分析的目的),那麼你最好的選擇是使用SQL事件探查器和監控SP:StmtCompleted事件事件將記錄統計每條語句在一個sproc中。您可以將這些數據轉儲到數據庫表中。

編輯:運行SQL事件探查器:
1)在SSMS工具下,選擇SQL Server Profiler中
2)連接到數據庫服務器要監視
3)在出現的跟蹤屬性對話框,進入事件選擇標籤並勾選「顯示所有事件」複選框
4)網格將顯示您可以監控的所有類型的事件。找到存儲過程部分,並在那裏選中SP:StmtCompleted複選框來定義您想要監視該類型的事件。
5)常規選項卡允許您將跟蹤保存到文件或數據庫表中(如果需要)。或者,您不必將其保存到其中,只需將其顯示在屏幕上即可。如果您真的需要,您可以隨時將其保存到表格/文件中。
6)當你準備只需點擊「運行」
有關SQL事件探查了很多詳細信息,請參閱MSDN

如果這是你想保留的東西(即審覈表),那麼你會需要將記錄插入到您自己的審計表中,例如

DECLARE @StartTime DATETIME 
SET @StartTime = GETDATE() 

SELECT Something FROM SomeTable WHERE.... 

INSERT MyAuditTable (Statement, StartTime, EndTime) 
VALUES ('SELECT Something FROM SomeTable WHERE...', @StartTime, GETDATE()) 
+0

阿達, 是的,我只是想爲「調試/性能分析」唯一的目的做。 我是Sql服務器的新手,能否請您提供一些鏈接或步驟如何執行「SQL Profiler並監視SP:StmtCompleted」。 謝謝, – CFUser 2010-02-16 09:49:35

+0

從SQL Server 2005性能程序組中打開Profiler。創建一個新的跟蹤。在「常規」選項卡上指定「使用此模板」「TSQL_SPs」。這會自動預先選擇所有有趣的事件。在「事件」選項卡上,取消選中「審覈登錄」和「審覈註銷」,因爲您不需要它們。如果您認爲,您已捕獲足夠的事件,請停止跟蹤,並從「文件」菜單中決定如何處理跟蹤,例如在哪裏存儲它。 – 2010-02-16 10:03:34

0

當然。添加TSQL以在執行開始和結束時寫入審計表,並添加TRY/CATCH錯誤處理以確保不會發生提前退出。