オブジェクトが他の何かによって参照されているかどうかを調べるのは簡単な作業です。私がやりたいのは、それが実際に使用されているかどうかを特定することです。
私の解決策は、当初、データベース内のオブジェクトのリストを保持するテーブルと時間単位のジョブの組み合わせでした。
仕事は2つのことをしました。まず、前回の実行以降にデータベースに追加された新しいオブジェクトを探しました。次に、SQL のオブジェクト キャッシュを調べました。テーブル内のオブジェクトがキャッシュにリストされていた場合、そのオブジェクトは最近使用されたものとしてテーブル内でマークされていました。
6 か月が経過した時点で、テーブルの内容が調べられました。監視を開始してから参照されていない表に記載されているものは、おそらく安全にバックアップおよび削除できます。
確かに、たとえば年に 1 回など、オブジェクトが使用される可能性はありますが、ほとんどの場合は機能しているように見えました。
でも、一緒に仕事をするのはちょっと苦痛でした。
私が扱っているデータベースは 6 つほどありますが、その大部分には大量のレガシー テーブルがあり、元の作成者が他の会社に移った後もずっと残っています。
私が探しているのは、オブジェクト (テーブル、ビュー、ストアド プロシージャ、または関数) がいつ呼び出されるかを追跡する、かなり信頼できる方法です。
現在、この種のものを監視している方は、どの方法/コードを使用していますか?また、それをお勧めしますか?