1

私はいくつかの新しいSQLクエリを書いていますが、Oracleクエリオプティマイザーが本番環境で思い付くクエリプランを確認したいと思います。

私の開発データベースには、本番データベースのデータボリュームのようなものはありません。

データベース統計を本番データベースからエクスポートして、開発データベースに再インポートするにはどうすればよいですか?私は本番データベースにアクセスできないため、サードパーティのホスティング組織を経由せずに本番に関する説明プランを簡単に作成することはできません。これは苦痛です。ですから、私はさまざまなことを試すことができる、何らかの形で本番環境を代表するローカルデータベースが必要です。

また、これはレガシーアプリケーション用です。適切なインデックスを追加して、スキーマを「改善」したいと思います。制約など。

テストと本番環境に展開する前に、まず開発データベースでこれを行う必要があります。

開発中にインデックスを追加して統計を再生成すると、統計は開発データボリュームを中心に生成されるため、変更が本番環境に与える影響を評価するのが困難になります。

誰かがこれに対処する方法について何かヒントがありますか?それとも、本番環境で予期しない動作を発見した後、それを修正するだけの場合ですか?私は本番ボリュームを備えたステージングデータベースを持っていますが、これに対してクエリを実行するためにサードパーティを経由する必要があります。これは面倒です。だから私は可能な限り仲買人を切り取る方法を探しています。

これはすべてOracle9iを使用しています。

ありがとう。

4

1 に答える 1

3

DBMS_STATS.EXPORT_SCHEMA_STATSおよびDBMS_STATS.IMPORT_SCHEMA_STATSパッケージのドキュメントを参照してください。アクセス権がない場合は、必要な権限を持つ誰かに本番データベースへのエクスポートを行わせる必要があります。開発ハードウェアが本番ハードウェアと大幅に異なる場合は、EXPORT/IMPORT_SYSTEM_STATSプロシージャを使用してシステム統計もエクスポート/インポートする必要があります。

これを行った後、統計を再計算する開発データベース内のすべてのジョブをオフにすることを忘れないでください。

于 2010-03-23T12:21:51.883 に答える