2009-04-02 1 views

答えて

0

簡単にはできませんが、SQL Serverのログ機能を有効にした場合は、ソフトウェアを使用してログを調べて、最後のクエリがいつ発生したか、およびその内容を確認できます。

あなたは、監査、または事前に設定SQL Serverのトレースを持っている必要があり-Adam

0

SQL Serverはログオン試行のイベント情報を記録でき、エラーログを確認することで を表示できます。 SQL Serverの監査レベル をオンにする

は、SQL Serverの Enterprise Managerを使用したすべて/成功した接続の監査を有効にするには、次の手順を実行します。

は、サーバーグループを展開します。 サーバーを右クリックし、[プロパティ]をクリックします。 [セキュリティ]タブの[監査レベル]で、すべての/ successなどをクリックします( オプションが必要です)。

あなたは

16
SELECT 
last_user_seek = MAX(last_user_seek), 
last_user_scan = MAX(last_user_scan), 
last_user_lookup = MAX(last_user_lookup), 
last_user_update = MAX(last_user_update) 
FROM 
sys.dm_db_index_usage_stats 
WHERE 
[database_id] = DB_ID() 

この設定を有効にするサーバーを停止し、再起動する必要があります。この方法では1つの警告は、SQL Serverを再起動するたびにDMVの情報がクリアされ、ゼロにするということです。

4

MySQLtipsでこれが見つかりました - 私のために働いた。

SELECT d.name, 
last_user_seek = MAX(last_user_seek), 
last_user_scan = MAX(last_user_scan), 
last_user_lookup = MAX(last_user_lookup), 
last_user_update = MAX(last_user_update) 
FROM sys.dm_db_index_usage_stats AS i 
JOIN sys.databases AS d ON i.database_id=d.database_id 
GROUP BY d.name 

データベースコンテキストごとの結果をしたいし、結果セットの最初にデータベース名を含めるしたくない場合は、この修正版を使用してください:ジェームズ・アレンの答えに拡大すること

select d.name, x1 = 
(select X1= max(bb.xx) 
from (
    select xx = max(last_user_seek) 
     where max(last_user_seek) is not null 
    union all 
    select xx = max(last_user_scan) 
     where max(last_user_scan) is not null 
    union all 
    select xx = max(last_user_lookup) 
     where max(last_user_lookup) is not null 
    union all 
     select xx = max(last_user_update) 
     where max(last_user_update) is not null) bb) 
FROM master.dbo.sysdatabases d 
left outer join 
sys.dm_db_index_usage_stats s 
on d.dbid= s.database_id 
group by d.name 
4

。ます。http:// stackoverflowの上記の方法と同様に

+0

また、JOINなしでこれを行うこともできます。 SELECT DB_NAME(database_id )、 last_user_seek = MAX(last_user_seek)、 last_user_scan = MAX(last_user_scan)、 last_user_lookup = MAX(last_user_lookup)、 last_user_update = MAX(last_user_update) FROM sys.dm_db_index_usage_stats GROUP BY database_id ORDER BY DB_NAME(database_id) –

0

、単に特定のデータベースIDの単一の値として結果を得るために(この例では、それは6です)

select max(LastAccess) 
from (
    SELECT last_user_seek as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6 
    union 
    SELECT last_user_lookup as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6 
    union 
    SELECT last_user_seek as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6 
    union 
    SELECT last_user_update as LastAccess FROM sys.dm_db_index_usage_stats WHERE last_user_seek is not null and [database_id]=6 
) UserAccess 
関連する問題