誰かが私のログオントリガーでパフォーマンスの問題を見ていますか?誰かが私のログオントリガーでパフォーマンスの問題を見ていますか?
このトリガーを本番SQL Serverにプッシュする前に、オーバーヘッドを減らしてパフォーマンスの問題を回避しようとしています。
私は現在、開発SQLサーバでログオントリガを使用しています。私はそれが過去の週末に実行させ、私の監査ログテーブルに50,000以上の行を置く。私は、ログオンのためにどこのレコードの95%が「NT AUTHORITY/SYSTEM」に気づいた。だから私は 'NT AUTHORITY%'で何かをフィルタリングし、それらのレコードを挿入しないことにしました。私が考えているのは、これらの「NT AUTHORITY」レコードにフィルターをかけて、これらの挿入に保存するリソースの量がIFステートメントのチェックのコストを補うということです。私もPrefmonを見てきましたが、トリガが有効な間に何か変わったことはありませんが、私の開発サーバーは生産と同じ量の活動をしていません。
USE [MASTER]
GO
CREATE TRIGGER AuditServerAuthentication
ON ALL SERVER
WITH EXECUTE AS SELF
FOR LOGON
AS BEGIN
DECLARE @event XML, @Logon_Name VARCHAR(100)
SET @Event = EVENTDATA()
SET @Logon_Name = CAST(@event.query('/EVENT_INSTANCE/LoginName/text()') AS VARCHAR(100))
IF @Logon_Name NOT LIKE 'NT AUTHORITY%'
BEGIN
INSERT INTO Auditing.Audit.Authentication_Log
(Post_Time,Event_Type,Login_Name,Client_Host,Application_Name,Event_Data)
VALUES
(
CAST(CAST(@event.query('/EVENT_INSTANCE/PostTime/text()') AS VARCHAR(64)) AS DATETIME),
CAST(@event.query('/EVENT_INSTANCE/EventType/text()') AS VARCHAR(100)),
CAST(@event.query('/EVENT_INSTANCE/LoginName/text()') AS VARCHAR(100)),
CAST(@event.query('/EVENT_INSTANCE/ClientHost/text()') AS VARCHAR(100)),
APP_NAME(),
@Event
)
END
END
GO
「ログイン監査用の組み込みメカニズム」は、カスタムレポートを作成するためのすべての情報を提供してください。 DBAは、テーブルから選択して回答を得ることができるのが好きです。 :) – DBAndrew