web-dev-qa-db-ja.com

最後のDBの起動以降にストアドプロシージャが呼び出された回数を確認する方法はありますか

私は現在、かなり不適切に管理された環境にあります。ここで、ストアドプロシージャが数年にわたってデータベースに導入され、一部のバージョンは廃止されました。最近は呼び出されなかったprocの削除にある程度の信頼を得るために、give stored procが呼び出された回数(Sybaseが望ましい)を簡単に把握する方法はありますか.

2
ring bearer

Sybaseはストアドプロシージャの実行カウントを保存しませんが、 Sybase Centralのアクティビティモニター を使用してSPの使用状況を追跡できます(ただし、セッションを開始したときからのみ))。 Sybase Centralが気に入らない場合、他のオプションは、各SPに行を追加して、カウンターを増分します(つまり、追跡するためのテーブルを作成します)。

1
Simon Righarts

パフォーマンスに影響を与えることができる場合は、「典型的な」セッション(set tracefile "/some/path/" for some_spid)、およびset show_sqltext on実行されたすべてのSQLを確認できます。次に、ストアドプロシージャを探すために出力を解析する必要があります。もちろん、このアプローチでは100%の信頼性は得られません(たとえば、1年に1回実行されるバッチジョブがあるかもしれません)。

2
Gaius

Sybase ASE MDAテーブルmonCachedProcedures

  • このMDAテーブルは、クエリプランを含む各ストアドプロシージャのExecutionCountをプロシージャキャッシュに保持します。
  • このMDAテーブルをクエリして、プロシージャキャッシュ内のクエリプランを含むすべてのストアドプロシージャのExecutionCountsのサンプルを取得するsprocを作成できます。
  • 日、週、月、四半期の期間にわたって特にピークワークロードに近いサンプルを定期的に取得する場合...頻繁に使用されているDB/sprocのかなり正確な画像が得られます(以下の例を参照)

enter image description hereenter image description here

1
Raymond