Sqlserver2008 [インデックス]

2つのSQLのインデックスがあります:クラスタ化インデックス、非クラスタ化インデックス

  目的:、SQLServerのシステムのパフォーマンスを向上させ、応答時間データのクエリの速度をスピードアップし、システムを減らすために

  注意事項:表には、唯一のクラスタ化インデックスを持つことができますが、複数の非クラスタ化インデックスを持つことができます

インデックス格納メカニズム

    クラスタ化インデックスと非クラスタ化インデックスの基本的な違いは、オーダー表は順序とインデックスと矛盾を記録するかどうか、実際には、非常に単純な理解、または辞書の例を引用することである。そして、すべてのAZから、アルファベットに基づいてクエリ場合は、とあります連続は、aは後ろでは、BはCであり、クラスタ化インデックスは、彼があるように、Bであり、そしてテーブルの物理的な配置順が同じである、例えば、クラスタ化インデックスIDは間違い2,2後ろ間違い次にです図3に示すように、そのような検索順序はクラスタ化インデックスされるようになっています。 

    ラジカルであり、同じクエリに非クラスタ化インデックスに基づいて、それがクエリに基づいて時間の側室、ラジカル側に基づいて「弓」の単語、2つの中国の文字のうち、インデックス、および張香港かもしれないが、これは実際には2ページ100、1000年の1でありますページ(ここでは一例であり)、そのインデックス順とデータベーステーブルの順序は、これは非クラスタ化インデックスの一種である、同じではありません。

 

インデックスの原則を確立します。

1)主キー列を定義するデータは、索引付けされなければなりません。

2)外部キーデータの列が索引付けされなければならないと規定します。

3)データが多いクエリ列の最良の指標のために。

4)指定された範囲内の列の頻出又は迅速なデータ照会の必要性。

5)データ列は、多くの場合、WHERE句で使用されています。

個別のフィールドは、多くの場合,,インデックスにより、キーワード順に表示されます背後にある、によって6)グループ。あなたは複合インデックスを作成する場合、フィールドのフィールドの順序と秩序の指数は一貫これらのキーワードの後ろにあることを、それ以外のインデックスは使用されません。

7)稀に関与していないクエリでこれらの列の場合は、重複する値は、索引付けされていない複数の列です。

8)についてはインデックスされない列のテキスト、画像およびビットデータ型として定義。

9)回避頻繁にアクセスされる列インデックスについて

9)テーブルのインデックスの数を制限します。更新操作の多数の存在下の表は、建設インデックスの数は、これ以上5以下まで、一般的に3つ以下です。インデックスは、アクセス速度を向上させるために、あまりにも多くのインデックスの更新データに影響を与えます。が、

10)複合インデックス、インデックスの検索条件に現れるフィールドの周波数に応じ。複合インデックスでは、レコードは、最初のフィールドに応じて最初のソート。最初のフィールドに記録された同じ値の場合、システムは、次にように第2のフィールドの値に従ってソート、および。したがってのみ複合インデックスの最初のフィールドは、インデックスが前に使用することができ、クエリに表示され、複合インデックスの前に置かれた高周波場のゆえアプリケーション、システムはこのインデックスの最大の可能な利用を行います、インデックスプレイ役割。

 どのようにインデックスを作成するには:

  文法

  CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED] INDEX index_nameは

  {table_nameのON | VIEW_NAME} [] [index_property [、... n]はWITH

  

パラメータ:

UNIQUE:表またはビューの一意のインデックスを作成します。ユニークなインデックスが同じインデックスキーを持つ2つの行を許可していません。集計インデックス付きビューは一意でなければなりません。あなたは列が重複する値を持つ一意のインデックスを構築したい場合は、まず重複を削除する必要があります。

CLUSTERED:指定されたインデックスは、クラスタ化インデックスのために作成したことを示しています。索引を作成する、キーの論理的な順序は、テーブル内の対応する行の物理的順序を決定します。(またはリーフレベル)基礎となるクラスタ化インデックスは、テーブルの実際のデータ行を含んでいます。

NONCLUSTEREDは:指定されたインデックスは、非クラスタ化インデックスが作成したことを示しています。指定されたテーブルインデックスの論理的な順序を作成します。非クラスタ化インデックス、インデックスのソートに独立してデータ線の物理的順序のために。

INDEX_NAME:インデックスが作成された名前を表して指定します。

データベース名:指定したデータベース名ことを示しています。

OWNER_NAME:指定された所有者にあることを示します。

テーブル:テーブルの指定された名前は、インデックスを作成することを示しています。

ビュー:指定されたインデックスを作成するために、ビューの名前を表します。

コラム:インデックス内の1つまたは複数の列をベースにしています。コンビネーションインデックスが指定した列の組み合わせとして作成することができ、二つ以上の列名を指定します。

[ASC | DESC]は:指定された昇順こと又は特定のインデックスのカラム方向の降順示します。デフォルトはASCです。

filegroup_nameに:指定したファイルグループにインデックスを作成します。位置が特定されておらず、表またはビューがパーティション化されていない場合、インデックスは、ベーステーブルであるか、または同じ文書のセットを表示します。文書グループがすでに存在している必要があります。

デフォルトで:デフォルトのインデックスグループとして指定されたファイルを作成します。

PAD_INDEX = {ON | OFF}は:インデックスが充填されているかどうかを指定します。デフォルトはOFFです。

  利用可能なスペースのフィルファクタの指定した割合によって上の中間レベルのインデックス・ページに適用されます。

  OFF又はフィルファクタを考慮ページの中間段階でキーセットを取って、中間レベルのページは、その容量に近い充填する、指定されていないことが最大の行インデックスで保持できるように、範囲は十分な空間を残します。

  ときFILLFACTOR便利PAD_INDEXがFILLFACTORで指定されたパーセンテージを使用しているためPAD_INDEXオプションのみが指定されています。

FILLFACTOR =フィルファクタ:インデックスを作成する指定されたパーセンテージ、インデックス・ページのサイズ、1〜100のFILLFACTOR値を表す各インデックスページデータ。

SORT_IN_TEMPDB = {ON | OFF}:保存された指定されたインデックスのtempdbデータベースを作成するときに用いられる中間ソート結果。デフォルトはOFFです。

  中間ソート結果をtempdbのON生成するためのインデックスに格納されています。これは、インデックスが異なるディスクセットのtempdbとユーザデータベース内にある場合にのみ作成するのに必要な時間を減らすことができます。

  OFFインデックス中間ソート結果は、同じデータベースに格納されています。

IGNORE_DUP_KEYは= {ON | OFF}は:挿入操作は、重複キーを挿入しようと指定したときに一意のインデックスにエラー応答。デフォルトはOFFです。

  重複したキーが一意のインデックスに挿入されたときに、警告メッセージに表示されます。一意性制約に違反する行のみが失敗します。

  OFF重複キーが一意のインデックスに挿入されたエラーメッセージ。INSERT操作全体がロールバックされます。

STATISTICS_NORECOMPUTE = {ON | OFF}は:統計的指標を自動的に再計算期限切れかどうかを指定するために使用されます。デフォルトはOFFです。

  ONが自動的に古くなった統計を再計算しません。

  OFF統計の自動更新機能を有効にします。

DROP_EXISTING = {ON | OFF}は:インデックスがまだテーブルに脱落し、新しいものを作成する場合を示しています。デフォルトはOFFです。

  あなたにパラメータindex_nameのと同じ名前を持つ必要があり、既存のインデックスを削除して再構築したいです。

  OFF既存のインデックスを削除し、再構築しないように指定します。指定されたインデックス名が既に存在する場合、SQL Serverはエラーを表示します。

{ON | OFF} ONLINE =表ロックするかどうか、すなわち、インデックス作成のための通常のアクセスを許可するか否かを示します。デフォルトはOFFです。

  それが力に表には、一般的なアクセスのために有効のままであり、任意のインデックスを作成し、/テーブルロックを使用してからユーザーを防ぐことはできません。

  インデックステーブルのOFF操作は、テーブルへの完全かつ効率的なアクセスのために、テーブルをロックします。

ユニークなクラスタ化インデックスを作成します。

コードをコピー
-一意クラスタ化インデックスを作成し
、クラスタ化一意の作成-一意のクラスタ化インデックス作成手段
インデックス名-インデックスUQ_Clu_StuNo
学生に(S_StuNo) -テーブル名(インデックスを確立するために列名)


PAD_INDEX = ON、 -発現を塗りつぶし使用
FILLFACTOR = 50、 - %は50のフィルファクタ発現
、IGNORE_DUP_KEY = ONを-一意のインデックスに重複する値を無視インサート重複値を表し
statistics_norecompute =オフ-統計は、自動更新機能を示す有効

フィルターのインデックスを作成します。

コードをコピーする
-非クラスタ化スクリーニングインデックス作成
作成非クラスタ化インデックスのIndex_StuNo_SName
学生ON(S_StuNo)
WHERE S_StuNo> = 001とS_StuNo <= 020
(DROP_EXISTING = ON)と

-非クラスタ化インデックスのスクリーニングにはデフォルトの非クラスタ化インデックス作成
作成インデックスIndex_StuNo_SName
学生(S_StuNo)ON
WHERE S_StuNo> = 001とS_StuNo <= 020
(DROP_EXISTING = ON)とを

フィルターのインデックスを作成します。

コードをコピーする
-非クラスタ化スクリーニングインデックス作成
作成非クラスタ化インデックスのIndex_StuNo_SName
学生ON(S_StuNo)
WHERE S_StuNo> = 001とS_StuNo <= 020
(DROP_EXISTING = ON)と

-非クラスタ化インデックスのスクリーニングにはデフォルトの非クラスタ化インデックス作成
作成インデックスIndex_StuNo_SName
学生(S_StuNo)ON
WHERE S_StuNo> = 001とS_StuNo <= 020
(DROP_EXISTING = ON)とを

 

おすすめ

転載: www.cnblogs.com/yhm9/p/11095156.html