多くのクエリで結合される6つのテーブルがあります。すべてのテーブルを結合して作成したビューでは、パフォーマンスが向上しますか?パフォーマンスを向上させるための選択肢はありますか?データベースとしてoracleを使用しており、結合されたすべての列が索引付けされています。パフォーマンスが向上しますか?
答えて
ビュー自体がパフォーマンスを向上させることはありません。あなたが使用しているデータベースエンジンに応じて、ビューでできることがあります。
SQL Serverでは、ビューにインデックスを付けることができます(ビューはさまざまな要件に適合していることが前提です)。これにより、パフォーマンスが大幅に向上します。
どのDBMSを使用していますか?
編集
は、オラクルでは、マテリアライズド・ビューを作成することができます。ここにあなたを始めるべきリンクがあります。私はオラクルを知らないので、本当にリンクしか提供できません。
http://searchoracle.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid41_gci909605,00.html
SQL Serverで詳細を提供できますか? – kbvishnu
正しいインデックスは、多くのテーブルに参加する際のパフォーマンスを向上させるための鍵です。
インデックスを追加するとパフォーマンスが向上する可能性があります。パフォーマンスが低下する可能性があります。多くは、データベース設計と、ビューが基づいている実際のクエリに依存します。一度ビューを実行すると、使用するすべての人が同じ6つのテーブルを参照していることが保証されます。これは、クエリに応じてプラスまたはマイナスです(ビューに基づくすべてのクエリが実際には6つのテーブルすべてを必要とするわけではありません)。
私が見る最初のことは、外部キーフィールドが現在インデックスされているかどうかです。主キーは作成時にインデックスが与えられますが、外部キーは作成されません。それらは結合で使用されるため、パフォーマンスのために索引付けする必要があります。
ビューの仕組みに注意してください。実行時にビューのクエリを実行します。これらは事前キャッシュされていないため、インデックスがなくても基本的には関数呼び出しです。
パフォーマンスを向上させるために、テーブルとビューでインデックスを頻繁に使用します。ショットガンをしないでください。しかし、うまく設計されたインデックスは、あなたのパフォーマンスのために昼夜を取ることができます。
また、データベースによって異なります。 RDMSが基準に基づいて基礎となるクエリを分析しない場合、RDMSはまったく機能しない可能性があります。
ほとんどの現在のRDMSはクエリの書き換えを行います(6または7のような以前のバージョンのSQL Serverはこれをしなかったと思います)。クエリの観点からビューを分離してから、すべてを書き直しますその最適化技術に基づいています。
ビューを使用するクエリのさまざまな反復では、プランをキャッシュしてそのようなパフォーマンスを得ることができます。
少なくとも、理論的には(データベースのオプティマイザに依存して)、ビューを使用することはクエリ全体を書くことと違いはありません。
- 1. コールチェーンのパフォーマンスが向上しますか?
- 2. ウェブサイトのパフォーマンスが向上しますか?
- 3. マルチスレッドではパフォーマンスは向上しませんが、パフォーマンスは向上しません。
- 4. パフォーマンスの向上
- 5. スライドショーのパフォーマンスが向上
- 6. WITカウントとしてのVSTSパフォーマンスが向上しますか?
- 7. LoadLibraryを使用すると、パフォーマンスが向上しますか?
- 8. Server 2008 R2にアップグレードするとパフォーマンスが向上しますか?
- 9. Three.jsでメッシュをエクスポートするとパフォーマンスが向上しますか?
- 10. jquery.detach()を使用するとパフォーマンスが向上しますか?
- 11. JSFでBeanをクリーニングするとパフォーマンスが向上しますか?
- 12. CSSプロパティをソートするとパフォーマンスが向上しますか?
- 13. 挿入カーソルのパフォーマンスが向上しますか?
- 14. UIView clipsToBoundsプロパティ:パフォーマンスが向上しますか?
- 15. 連結によってI/Oパフォーマンスが向上しますか?
- 16. 処理中:パフォーマンスが向上しますか?
- 17. パフォーマンスの向上は
- 18. スパークストリーミングジョブのパフォーマンス向上
- 19. ウェブサービスのパフォーマンス向上
- 20. パフォーマンスの向上は
- 21. 2sumのパフォーマンス向上
- 22. ISNULL:パフォーマンスの向上?
- 23. フォークジョイントでパフォーマンスが向上しない
- 24. このsqlアルゴリズムのパフォーマンスが向上しましたか?
- 25. CakePHP 2.0のパフォーマンスが向上しましたか?
- 26. サルパッチDEFAULT_PROTOCOLによるpickle.dumpsのパフォーマンスが向上しましたか?
- 27. パフォーマンスが向上しました... exec(C++)またはストレートPHP?
- 28. hibernateとgwtを使用するとパフォーマンスが向上します
- 29. 配列の値が正しいとパフォーマンスが向上しますか?例えば
- 30. Windowsアプリケーションのパフォーマンスを向上
どのデータベースプラットフォームを使用していますか?パフォーマンスを向上させる方法はたくさんあります。それらの多くはプラットフォーム固有のものです。例えば、マテリアライズド・ビュー、索引付けされたビュー... – RedFilter