0

古いASPWebアプリケーションにはいくつかの恐怖があります。不要になったスクリプト、ページ、およびストアドプロシージャを見つける簡単な方法はありますか?(「old ___ code」、「delete_this」などの内容以外;-)

4

2 に答える 2

1

保存された proc が実行されない場合は、sonmething else が変更されたときに誰もわざわざ更新しなかったため、使用されていない可能性があります。すべての単一レコードが null であるテーブル列は、おそらく使用されていません。

sp とデータベース オブジェクトがソース管理にある場合 (そうでない場合) は、手がかりを得るために本番環境に移動された他のコードにアクセスして見つけることができる場合があります。それを何と呼ぶか​​について。誰が最後に触れたかを確認することもでき、その人はまだ必要かどうかを知ることができます。

私は通常、最初にすべての proc をリストし (これはシステム テーブルから取得できます)、次にリストから使用されていることがわかっているものにマークを付けることによって、これに取り組みます。プロファイラーは、一般的に呼び出されているものを確認できるため、ここで役立ちます。(ただし、プロファイラーが使用されていないという proc を表示しなかったからといって、調査する対象のリストが表示されるだけだとは思わないでください。) これにより、再取得する必要がある対象のリストがはるかに小さくなります。命名規則によっては、コードのどの部分でそれらを使用する必要があるかを比較的簡単に確認できる場合があります。調査するときは、プロシージャがアプリケーション以外の場所で呼び出されることを忘れないでください。そのため、ジョブ、DTS または SSIS パッケージ、SSRS レポート、他のアプリケーション、トリガーなどを調べて、何かが使用されていないことを確認する必要があります。

必要ないと思われるもののリストを特定したら、それを他の開発スタッフと共有し、proc が必要かどうかを知っている人がいないか尋ねます。おそらく、この方法でリストからさらにいくつかを外し、特殊なものに使用することができます。次に、リストを取得したら、削除の候補として識別できるように名前を何らかの規則に変更します。同時に、削除日を設定します (その日付がどれだけ遠いかは、何かが呼び出される頻度によって異なります。もしそれが AnnualXYZReport のようなものと呼ばれる場合は、その日付を 1 年おきにします)。削除日までに誰も文句を言わない場合は、proc を削除します (もちろん、ソース管理にある場合でも、いつでも元に戻すことができます)。

悪いものを特定する地獄を経験したら、開発プロセスの一部は、使用されなくなったプロセスを特定し、変更の一部としてそれらを取り除くことであることを人々にトレーニングする必要があることに気付く時が来ましたコードのセクションに。コードの再利用によっては、コード ベースを検索して、コード ベースの別の部分がそれを使用しているかどうかを確認し、上記と同じことを行い、この日に削除されることを全員に知らせ、名前を変更して、それを参照するコードは壊れ、それを削除する日に削除します。または、メタデータテーブルを用意して、何かを使用しなくなったことを知った時点で削除の候補を配置し、月に 1 回程度全員にレポートを送信して、他の誰かがそれを必要としているかどうかを判断することができます。

これを行う簡単な方法は考えられません。使用されていない可能性のあるものを特定し、苦労するだけです。

于 2009-09-02T18:14:52.770 に答える
0

SQL Server の場合のみ、考えられる 3 つのオプション:

  • ストアド プロシージャを変更して使用状況をログに記録する
  • コードにアクセス許可が設定されていないかどうかを確認する
  • プロファイラーを実行する

そしてもちろん、アクセス権を削除するか削除して、誰が呼び出しているかを確認してください...

于 2009-09-02T17:48:49.593 に答える