多くのクエリで結合される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. Server 2008 R2にアップグレードするとパフォーマンスが向上しますか?
- 5. CSSプロパティをソートするとパフォーマンスが向上しますか?
- 6. LoadLibraryを使用すると、パフォーマンスが向上しますか?
- 7. JSFでBeanをクリーニングするとパフォーマンスが向上しますか?
- 8. UIView clipsToBoundsプロパティ:パフォーマンスが向上しますか?
- 9. 連結によってI/Oパフォーマンスが向上しますか?
- 10. 挿入カーソルのパフォーマンスが向上しますか?
- 11. CakePHP 2.0のパフォーマンスが向上しましたか?
- 12. ウェブサービスのパフォーマンス向上
- 13. ISNULL:パフォーマンスの向上?
- 14. パフォーマンスの向上は
- 15. パフォーマンスが向上しました... exec(C++)またはストレートPHP?
- 16. hibernateとgwtを使用するとパフォーマンスが向上します
- 17. 移動セマンティクスと参照値のパフォーマンスが向上しました
- 18. 分割アクセスデータベースのパフォーマンスが向上
- 19. 背景画像のパフォーマンスが向上
- 20. ARMアセンブラNEON - パフォーマンスの向上
- 21. パフォーマンスを向上させる
- 22. Symfony2のAppCacheのパフォーマンス向上
- 23. SQLite WALのパフォーマンス向上
- 24. WPF DataGridのパフォーマンスを向上
- 25. asp.netページのパフォーマンスを向上
- 26. パフォーマンスを向上させる
- 27. Windowsアプリケーションのパフォーマンスを向上
- 28. ASP.NETユーザーコントロールのパフォーマンスの向上
- 29. LIMIT 1のパフォーマンスは向上していますか?
- 30. backgroundView:willDisplayCellまたはinitを設定するとパフォーマンスが向上しますか?
どのデータベースプラットフォームを使用していますか?パフォーマンスを向上させる方法はたくさんあります。それらの多くはプラットフォーム固有のものです。例えば、マテリアライズド・ビュー、索引付けされたビュー... – RedFilter