我正在使用SQL Server 2008中的擴展事件來執行一些監視。我在下面活動最感興趣:按照受影響的表過濾擴展事件?
- sqlserver.sp_statement_completed
- sqlserver.sp_statement_starting
- sqlserver.sql_statement_completed
- sqlserver.sql_statement_starting
我想知道這是否是可能根據它們影響的表格過濾掉這些擴展事件。我還沒有看到任何有助於我執行此類過濾的謂詞。由於單個存儲過程實際上可能影響多個表,我甚至不知道他們將如何做,但有人可能會想到一些巧妙的技巧。
在此先感謝!
嗨喬納森,非常感謝你的回答。簡而言之,我的客戶希望通過擴展事件和ETW對其SQL Server數據庫執行審計,因爲所有其他系統也將登錄到ETW,從而實現關聯。我爲審計選擇的4個事件是上面在問題中指定的事件。承認這會產生負載的事件,他們問我們是否可以將範圍縮小到......只有幾張桌子......因此,我的問題是按表過濾**事件**。如果我們想在ETW中記錄數據庫活動,您認爲我們是否正確?謝謝! – Huck
僅僅因爲你可以並不意味着你應該或它是有道理的。將XEvent數據寫入ETW並不保證您可以將數據與寫入ETW的其他進程相關聯。 SQL Server僅使用ETW的經典提供程序,而不是Windows Server 2008中可用且基本由應用程序使用的基於清單的提供程序。使用標準工具關聯來自SQL的ETW數據通常會導致來自SQL的事件指導,您必須執行大量手動映射才能理解,這些映射與其他事件鬆散地交織在一起。這個實現對我來說似乎不對。 –
經過我的調查,我傾向於同意你的看法。看來2008年的「SQL Server Audit」功能更適合我們的需求。另外,看似建立在擴展事件之上,它必須符合我們的性能目標。 – Huck