データベースのクエリの最適化手法(技術筆記試験を投稿することができます!)

1.クエリの最適化は、最初の場所と順番に関与列でインデックス作成を検討すべきで、全表スキャンを回避しようとしてください。

2.フィールドがヌル値に避けるべきであるwhere句で決定される、など、エンジンがインデックスとフルテーブルスキャンを使用して放棄します:numを確実にするために、0 NUMのデフォルト値にnullを提供することができるされているTから選択ID NUM T = 0から選択ID:NUM表の列の値がNULLの場合、このクエリはありません

図3は、そうでない場合は、エンジンがインデックスと全表スキャンを使用してあきらめます。、句!=または<>オペレータでは避けるべきです

から選択ID:NUM = 10またはNUM = 20、クエリを行うことができ、Tから選択ID:4句が接続または状態が、エンジンがインデックスとフルテーブルスキャンを使用して放棄する原因となる、などの場合には避けるべきです= 10組合numは全てNUM = 20 TからIDを選択し、T

間の連続的な値については(1,2,3)でnumがで使用することができないTから選択ID:選択ID 5.inは、次のような、そうでない場合は、フルテーブルスキャンにつながる、注意しなくて使用する必要がありTからここでNUM 1〜3

効率を向上させるために「%リー%」のような名前は、フルテキスト検索とみなすことができるトンから選択ID:6.次のクエリは、フルテーブルスキャンにつながります。

  1. あなたはどこでパラメータを使用する場合句は、全表スキャンにつながります。SQLので、実行時にのみ、ローカル変数を解決しますが、オプティマイザがアクセス・プランの選択は、実行することができません延期、それはコンパイル時に選択する必要があります。しかし、コンパイル時にアクセス・プランを確立する場合、変数の値が不明であるため、選択されたインデックスエントリとして使用することはできません。(インデックス(インデックス名))NUM = @ NUMとトンから選択ID:トンから選択ID NUM = @ numは、インデックスを使用してクエリを強制的に変更することができます:次の文は、全表スキャンを実行するうように

8.フィールドはエンジンがインデックスと全表スキャンを使用してあきらめてしまいますwhere句式、で動作するように避けるべきです。例えば:* 2 NUM = 100 Tから選択ID:NUM / 2 = 100に変更されるべきであるTから選択ID

9.フィールドには、エンジンがインデックスと全表スキャンを使用してあきらめてしまいますwhere句で機能操作を避けるべきです。例えば:選択(サブストリングTからのID名、1,3)= 'ABC'、名前のID ABCに開始読み込みする必要があります
名前のような'%ABC' TからSELECT IDを

10.左「=」where句の関数、算術演算、またはその他の式を行わない、またはシステムが適切に索引付け機能しないことがあります。

インデックスは複合インデックスがある場合、あなたはシステムを確保するために、最初のフィールドにインデックスを使用する必要があり、インデックスフィールドを使用しての条件として11は、条件として、そうでない場合は、インデックスが使用されないインデックスを使用し、すべきです可能な限りそのフィールドの順序は、順序インデックスと一致しているので。

12.クエリは、このような空のテーブル構造を作成する必要があるとして、意味をなさない書き込みをしないでくださいからは#tに選択COL1、COL2を 1 = 0をt
このコードは、任意の結果セットを返しませんが、消費のシステムリソースは、変更する必要がありますこのような
表に#tを作成します(...)

でNUMここから選択NUM:しばしば場所に存在する使用13.良い選択である (選択BからNUM)は
次の文に置き換えられる:
。SELECT NUM(選択Aから存在1 NUM = a.num Bから)

テーブルなど14インデックス列は、データの重複をたくさん持っているときに、すべてのインデックスが有効なクエリ、SQLクエリの最適化は、テーブル内のデータに基づいて行われているわけではありません、SQLクエリはインデックスを使用して行っていないことが、フィールドのセックスを持っている、男性、ほぼ半分のインデックスもセックスにクエリ効率には影響を建てていない場合でも、それぞれの女性の。

  1. インデックスは、時に挿入または更新インデックスを再構築することが可能であるため、必要が慎重にインデックスを構築する方法を検討するように、対応するインデックスは確かに、、、選択の効率を改善するだけでなく、挿入および更新の効率を低下させることができ、可能ではありません場合であってもよいです。あまりにも多くのあなたは、必要に応じてインデックス列を構築するために使用頻度の低いのいくつかを検討する必要がある場合は、インデックス番号テーブルは、最高の半年以上ではありません。

  2. 列インデックスデータの順序は、カラムは、かなりのリソースを消費し、テーブル全体を記録するために調整値変化をもたらすであろうと、テーブルに記録された物理的な記憶順序をクラスター化されているので、可能なクラスタ化インデックス更新データ列限り回避すべきです。アプリケーションは、インデックスデータ列をクラスタ化された頻繁な更新が必要な場合は、それがクラスタ化インデックスのインデックスのために構築されるべきかどうかを検討する必要があります。

数値フィールドの17メイク使用、数値情報を含むフィールドのみが接続とクエリのパフォーマンスが低下キャラクターデザイン、可能ではなく、ストレージコストを増加させた場合。一度だけ文字列内の各文字を比較することにより、クエリとの接続1を処理し、数値の比較のために、エンジンが十分にあるためです。

18.代わりに、CHAR / NCHARのデータ型はnvarchar可能使用varchar型/小さな収納スペースのすべての可変長フィールドの最初の、あなたは検索効率の比較的小さなフィールドで、クエリに続いて、ストレージスペースを節約することができるためには、明らかに高いです。

19.未満でフィールドのいずれかを返さない、代わりに「*」のフィールドの特定のリストで、T *から選択した任意の使用を置かないでください。

20.表の変数ではなく、一時テーブルを使用しています。テーブル変数は、大量のデータが含まれている場合、インデックスは非常に(主キーのみインデックス)を制限していることをしてくださいノート。

21.避けては作成頻繁に削除一時テーブルは、システムテーブルは、リソースの消費を削減します。

22. A一時テーブルが使用不可能ではありません、それは大きなテーブルまたはテーブル一般的に重複した参照データセット必要がある場合には、彼らは、例えば、特定のルーチンの適切な使用をより効率的にすることができます。しかし、1回限りのイベントのために、それは、エクスポートテーブルを使用するのが最適です。

23.新しい一時テーブルは、一のインサートデータ大量の場合には、増加速度のために、ログの多くを回避するために、テーブルを作成するに選択の代わりに使用することができる場合には、小さなデータであれば、あるべきシステム・リソース・テーブルを容易にするために挿入し、テーブルを作成します。

24.あなたは必ずすべての一時テーブルを明示する一時テーブルを使用する場合は、システム・テーブルに長い時間をロックを避けるために、テーブルをドロップし、ストアドプロシージャの終わりに最初の切捨て表を削除しました。
25.てみカーソルの効率が悪いが、カーソル操作10,000以上のラインならば、あなたは書き換え考慮しなければならないので、カーソルを使用しないようにします。

26.使用一時テーブルに基づく方法やメソッドの前にカーソルは、問題、通常、より効率的なセットベースの方法を解決するためにセットベースのソリューションを探す必要があります。

  1. 一時テーブルと同じように、カーソルが使用不可能ではありません。小さなデータセットに使用FAST_FORWARDカーソル特に、いくつかのテーブルを参照して必要なデータを得るためにある必要があり、よりよい他の進歩的な治療法よりも通常です。結果セット内の速いカーソルの速度を用いて行う通常のルーチンより「全」を含みます。開発時間が許せば、カーソルベースの方法と優れている方法を参照しようとするベースのアプローチを設定することができます。

28.セットSET NOCOUNT ONは、すべてのストアド・プロシージャとトリガの開始時に、SET NOCOUNT OFFは、端部に配置されました。DONE_IN_PROCは、ストアドプロシージャを各ステートメントが実行された後にクライアントにメッセージを送信する必要があり、トリガではありません。

29.システムの同時実行性を向上させ、大規模なトランザクション操作を避けるようにしてください。

30.避けてはデータが大きすぎる場合、あなたが対応する需要が合理的である検討すべき、クライアントに大量のデータが返されました。`
----------------
転載は:この記事は元の記事に「スマイル風李」CSDNブロガーである、
元のリンクします。https://blog.csdn.net/weixin_42129286/article/詳細/ 82461980

公開された24元の記事 ウォンの賞賛0 ビュー590

おすすめ

転載: blog.csdn.net/weixin_43896829/article/details/104846298