Oracle 11g R2 に、約 90,000 の空間 (地理) レコードを含むテーブルがあります。ユーザーの悪い習慣により、何百ものレコードが複製されています。
重複を削除する前後にデータベース/テーブルのパフォーマンスを測定する方法はありますか?
Oracle 11g R2 に、約 90,000 の空間 (地理) レコードを含むテーブルがあります。ユーザーの悪い習慣により、何百ものレコードが複製されています。
重複を削除する前後にデータベース/テーブルのパフォーマンスを測定する方法はありますか?
90000 レコードのテーブルは非常に小さなテーブルです。数百の重複は 1% 未満です。これは、かなりの量の「ゴミ」でもあります。この量が大きなパフォーマンスの問題になることはありません (アプリケーションの設計が優れている場合)。「前」と「後」のパフォーマンスに大きな違いがあることを示すテストを作成できるとは思いません。
また、重複を削除してから一意の制約を作成して、将来このような状況を防ぐこともできます。
Oracle データベースのグローバル パフォーマンスを測定する 1 つの方法は、多数の測定値 (CPU、IO、メモリなど) を表示する Grid Control (別名 Enterprise Manager) の機能を使用することです。
もう 1 つの方法は、(SET TIMING ON を使用して) sqlplus でいくつかの典型的なクエリを実行し、削除前と削除後の応答時間を比較することです。「パフォーマンス」とは、これらのクエリの経過時間を意味すると仮定しています。
Dmitry が言ったように、90,000 行は非常に小さなテーブルであり、重複する行のごく一部があります。これらの重複の有無によって、顕著な違いが生じる可能性はほとんどありません。