1

データベース サーバーで不審なアクティビティが発生していることに気付きました。次の T-SQL ステートメントを使用して、サーバーで実行された最近の 300 件のクエリを調べます。

SELECT TOP 50 * 
FROM
    (SELECT 
        COALESCE(OBJECT_NAME(s2.objectid),'Ad-Hoc') AS ProcName,
        execution_count, s2.objectid,
        (SELECT TOP 1 SUBSTRING(s2.TEXT,statement_start_offset / 2+1 ,
           ( (CASE WHEN statement_end_offset = -1
                    THEN (LEN(CONVERT(NVARCHAR(MAX),s2.TEXT)) * 2)
                    ELSE statement_end_offset 
              END)- statement_start_offset) / 2+1)) AS sql_statement,
    last_execution_time
FROM 
    sys.dm_exec_query_stats AS s1
CROSS APPLY 
    sys.dm_exec_sql_text(sql_handle) AS s2 ) x
WHERE 
    sql_statement NOT like 'SELECT TOP 50 * FROM(SELECT %'
--and OBJECTPROPERTYEX(x.objectid,'IsProcedure') = 1
ORDER BY 
    last_execution_time DESC 

昨日誰かが私のサーバーからログを削除したと思います。

SQL Server Management Studio を使用してクエリまたはデータベースへのリモート アクセスを使用して最近のクエリ ログを削除できるかどうかを知りたいです。可能であれば、どのように?

4

1 に答える 1

3

DBCC FREEPROCCACHEプロシージャ キャッシュをクリアします。

sys.dm_exec_query_statsキャッシュ内のクエリについてのみレポートします。DMV に古いクエリが含まれない理由として考えられるのは、メモリ不足のため、またはインデックスや統計のメンテナンスのためにそれらが無効になったためにフラッシュされたマシンまたはプランを再起動することです。

于 2012-12-15T16:09:00.547 に答える