sql >> データベース >  >> RDS >> Sqlserver

SQL Serverで、ID列のインデックスを作成する必要がありますか、それとも自動的に作成されますか?

    create table test (Id int identity)
    go
    sp_help test
    
    The object 'test' does not have any indexes, or you do not have permissions.
    
    No constraints are defined on object 'test', or you do not have permissions.
    

    一般的な方法として、ID列に一意のインデックスを作成すると、ルックアップが高速化されます。

    通常、ID列も「クラスター化インデックス」にする必要があります(Id int identity primary key はショートカット表記です)、つまり、テーブルはID列と同じ順序でディスク上に配置されます。挿入されるページはメモリ内にある傾向があるため、これにより挿​​入が最適化されます。場合によっては、テーブル内の他のデータに対して範囲検索を頻繁に行う場合、SQL Serverではテーブルごとに1つのクラスター化インデックスしか使用できないため、代わりに他の列をクラスター化することを検討できます。



    1. SQLException:文字列またはバイナリデータは切り捨てられます

    2. MySQLで文字列と数値を連結する

    3. SQLでの順序付けされていない結果

    4. PostgreSQLで短い日の名前を取得する