1

私はここでSQL Server 2008でDBオブジェクトの使用法を見つける簡単な方法を見つけましたか? SQL Server 2008 R2 データベース内のオブジェクトの依存関係を確認するいくつかの方法。

しかし、オブジェクトが実際に使用されているかどうかを知る方法はありますか? 言い換えれば、ストアド プロシージャが特定のテーブルを使用していることがわかりますが、そのストアド プロシージャが実行されたことがあるかどうか、また実行された場合は誰が実行したかを知るにはどうすればよいでしょうか?

ストアドプロシージャとテーブルがたくさんある場所に来て、何が使用されているのか誰も知らないので、私は尋ねています。

4

1 に答える 1

3

テーブルの場合、インデックス統計を使用できます。

SELECT  getdate() AS RunTime 
,       DB_NAME(i.database_id) as DatabaseName
,       OBJECT_NAME(i.object_id, i.database_id) as ObjectName
,       *
FROM    sys.dm_db_index_usage_stats AS i
WHERE   object_id > 100

SQL Server はヒープに対してもインデックス統計を保持するため、これはすべてのテーブルで機能します。

ストアド プロシージャはより困難です。次のように、それらを計測できます。

create table SPCalls (name sysname);
go
alter procedure dbo.YourSP
as
insert  SPCalls ('YourSP');
....
于 2013-01-08T18:50:29.493 に答える