データベースリカバリモデルがに構成されfull
ているSQLServer2008では、次のようなクエリがあります。
TableNameからcol1、col2、col3を選択します
トランザクションログファイルに記録されます。
つまり、トランザクションログのバックアップを使用して、特定の日にデータベースで実行されたクエリを特定できますか?
データベースリカバリモデルがに構成されfull
ているSQLServer2008では、次のようなクエリがあります。
TableNameからcol1、col2、col3を選択します
トランザクションログファイルに記録されます。
つまり、トランザクションログのバックアップを使用して、特定の日にデータベースで実行されたクエリを特定できますか?
いいえ。トランザクション ログには、クエリはまったく記録されません。トランザクションのロールフォワードまたはロールバックに必要な情報を記録するだけです (SELECT
クエリはログに記録されたアクティビティをまったく生成しません)。
あなたが試すことができます
select top 100 *
from sys.fn_dblog(default,default)
記録されたものの種類を見てみましょう。
この種の情報が必要な場合は、トレース/拡張イベント セッション/監査セッションを設定して記録する必要があります。これは、ほとんどの環境で法外に重い重量になる可能性があります。
以下を使用して、どのアドホック クエリが実行されているかについての一般的なアイデアを得ることができます。
SELECT text
from sys.dm_exec_cached_plans
cross apply sys.dm_exec_sql_text(plan_handle)
where objtype='Adhoc'