Sql-Server
SQL Server Profiler 行為?
我只想監控sp。
SQL Server Profiler 是否偵聽所有事件,然後過濾所需的數據(例如 sp)?
或者更確切地說,sql只發出Profiler 預配置的事件?
SQL Trace(建構 Profiler 的基礎)將擷取您決定收集的任何事件的所有實例。因此,如果您收集 RPC:Completed 事件,您將獲得每個 RPC 完成的事件,跟踪將擷取該事件。如果您不選擇該事件,則跟踪將不會抓取它。所以它只會擷取它被告知的內容。
然後,您可以(並且應該)通過在各個列上添加過濾器來進一步過濾返回的數據(例如,數據庫名稱或已完成事件的持續時間以僅擷取持續時間大於某個值的事件)。在這種情況下,仍會擷取該事件的所有實例,但隨後會在資訊轉儲到您用於跟踪的機制之前應用過濾器。
看到不同?如果您不選擇事件,則不會擷取或發送該事件(如您所說,如果我理解正確,則發送),但如果您選擇事件 - 所有實例都會被擷取,但只有那些通過過濾器的實例標準被發送(發出)。
我也反對使用分析器,但考慮對文件進行伺服器端跟踪。查看 Jonathan Kehayias 的這篇部落格文章,了解這些方法在性能影響方面的差異。