私たちは、フィルタ処理後に膨大なデータを持つテーブルからレコードをフェッチする、毎日スケジュールされたストアドプロシージャを持っています。私の質問は、私はテーブル上のビューを作成し、ビューからデータをフェッチする場合、これはより速いプロセスか遅いでしょうか?ビューまたはテーブルからデータを高速に取得できますか?
答えて
標準ビューでは、内部SQLがクエリに展開されるだけで、違いはありません。これは、インラインのテーブル値のユーザ定義関数(「パラメータ付きビュー」と考える)にも適用されます。
ただし、indexed viewにすると、パフォーマンスが向上します。
the same applies with table-valued user defined functions
複数ステートメントのテーブル値関数のインラインテーブル値関数のために本当ではなく、100%真実:ちょうど@AdaTheDevの答えを補完
。機能のこの第二のタイプは
だけ覚えて、それは劇的にあなたのストレージ容量を増加させることを念頭に置いて、それは助けることができる、インデックス表示について最初の1
よりも多くのリソース(メモリ)を使用しますが、負担します、ビューはselectステートメントに過ぎません(インデックス付きビューは異なります)。あなたが持っている場合:
SELECT * FROM TABLE
をそして、それが手順にあるビューで同じものを配置し、やった場合、:
SELECT * FROM VIEW
をプロシージャ内では、これら2つの間に違いは絶対にありません。しかし、事が複雑になって多くのテーブルに参加している場合、実際にどのようにアクセスされているかによって異なります。
たとえば、6つのテーブルにアクセスするビューを作成し、そのうちの3つのテーブルからデータを取り出す必要があるクエリを作成すると、最適化プロセス内で行われる簡略化というプロセスが役立ちます。 3つのテーブルのみを参照するプランが表示されます。しかし、そうではないかもしれません。そうでない場合は、3つの表に対して作成する問合せは、通常は3つ以上の表にアクセスするビューに対して計画よりも高速に実行されます。
ビューのネストを開始し、ビューをコールしたりビューに参加したりすると、パフォーマンスが非常に低下することがあります。
通常、ストアドプロシージャを使用している場合は、テーブルに対して直接クエリを記述することをお勧めします。パフォーマンスが損なわれることはありません。ネストされたビューの問題を回避し、シンプル化を計画するのに役立ちます。
- 1. テーブルからデータを高速に取得する方法はありますか?
- 2. AjaxはStrutsよりも高速にデータを取得できますか?
- 3. データベースから高速データを取得する方法
- 4. Laravelの関係テーブルの関係テーブルからデータを取得できますか?
- 5. SQLテーブルからデータを取得できません
- 6. テーブルからデータを取得できません
- 7. ビューの読み込み操作が高速か、テーブル上にありますか?
- 8. WCF RIA大きなデータを高速に取得する
- 9. StorageFolder.GetFilesAsync()よりも高速にフォルダのファイルを取得できますか?
- 10. SSIS、テーブルのビュー、または条件付き分割の方が高速ですか?
- 11. インデックス付きビューからデータを取得する方法は?
- 12. ボタンをクリックしたときに減速機からデータを取得できないのはなぜですか?
- 13. どのMySQLクエリがより高速に取得できますか?
- 14. ユニットテストのための高速ルートからの機能を取得するには?
- 15. このスクリプトをさらに高速化できますか?
- 16. SQLサーバーはテーブルからデータを取得します
- 17. JPQLは複数のテーブルからデータを取得します
- 18. TransactionScope中にデータベースからデータを取得できますか?
- 19. ビューからコントローラにデータを渡すためのドロップダウンリストを取得できませんか?
- 20. Swiftの配列から複数の要素を高速に取得できますか?
- 21. 2つのテーブルからデータを取得していますか?
- 22. 動的ページ/テーブルからデータを取得しますか?
- 23. どちらが高速で、key_cacheまたはOSキャッシュですか?
- 24. Ajaxの取得リクエストからデータを取得できません
- 25. SQliteデータベースからデータを取得できませんでした
- 26. facebook "URLからデータを取得できませんでした"
- 27. PHPファイルからデータを取得できませんでした
- 28. オートコンプリートデータベースからデータを取得できませんでした
- 29. どのテーブルから顧客名を取得できますか?
- 30. モデルからテーブル、カラム、タイプ情報を取得できますか?
いいキャッチは、私は確かにインラインUDFを意味しました!私は非常に重要なポイントであるので、私の答えを更新します – AdaTheDev