2011-08-12 16 views
0

selectクエリと同じクエリがSQLビューで実行されるコードを使用してコードからデータを取得すると、パフォーマンスの点でどちらの方が高速になります。平均ビューの表示データが速くなったり、直接SQLクエリを実行したりして、データを高速に取得できますか?SQLのパフォーマンス結果

+0

どちらもありません。どちらもSSMSで最も速いスピード(通常はそれぞれ同じ時間)でSQLコアで実行され、SSMSで「実行計画」を使用して、クエリが「ミリ秒」で行ったことを分解することができます。 GUIを更新する必要があります.GUIは、一度結果がローカルメモリに格納されるとプログラム的に更新されます。イベントセットを更新することなく、データセットにデータを入力することは瞬時に行われます。数百メガバイトでさえ... – ppumkin

答えて

1

このような一般的な質問にはお答えできません。 Views はもっと速くてもかまいませんが、そうでなくてもかまいません。これは、使用しているDBMS、作成したビュー、ロードしたデータの量、作成したインデックス、およびテーブル/ビューに対して実行したクエリに大きく依存します。

+0

もし私の質問が%A%のような顧客名のどこかからselect *のような単純なものだとすれば。データを高速にフェッチします。ビューまたは上記のクエリを使用しているコード? –

+0

両方ともフル・テーブル・スキャンを実行する必要があります。しかし、一部のDBMSでは、「マテリアライズド・ビュー」という機能が提供されています。上記の問合せを使用してマテリアライズド・ビューを作成すると、結果セットを事前に計算できるため、そのビューの選択が高速になります。 – ckruse

+0

like節で最初のcharcterとしてワイルドカードを使用している場合、良い結果が得られません。これらのタイプのクエリを使用している場合は、設計が不良であることを示しています。それらはSQLの反パターンです。 – HLGEM

0

いずれも高速です。ビューはストアド・クエリーなので、同じ構造であれば同じビューで実行する必要があります。プレーンSQLまたはビューの実行計画を見ると、両方のSQLが同一であれば、それらは同一でなければなりません。

0

多くの要因がこれに影響する可能性があります。ビューはインデックス付きのビューですか?それはより速くなる可能性があります。ビューは、ほかのビューを呼び出す他のビューを呼び出すビューですか?おそらく、そのテーブルに直接当たるよりもはるかに遅いでしょう(特に、ビューチェーンが長くて複雑な場合)。パフォーマンスを見ると、特定のクエリと特定のハードウェアの設定によってどちらが速いかが決定されます。見るためには両方の方法を試す必要があります。