web-dev-qa-db-ja.com

非クラスター化インデックスは行の順序について何か保証しますか?

私は、order byなしのselectステートメントを実行するときに、テーブルの行が挿入された順序になるようにしたいと考えている開発者がいます。開発者は、クラスター化インデックスから非クラスター化インデックスに変更することを提案しました。

インデックスをクラスター化から非クラスター化に変更すると、テーブルに行が表示される順序が保証されますか?

この質問は主に私の好奇心です。代わりにID列を使用することをお勧めしますが、この要求は私に考えさせられました。タイムスタンプを使用できますが、行を同時に挿入できる可能性があります。

よろしくお願いします。

9
630

クエリ結果で順序が必要な場合は、ORDER BY。とても簡単です。

SQL ServerアーキテクトのConor Cunninghamによるこの記事をチェックしてください。

29
Scott Hodgin

絶対にありません-ORDER BYなしの行順序は保証されません。

選択された実行プランは、必要な順序になる場合がありますが、その場合は偶然です。

ストレージの順序と結果の順序DBA.SEスレッド

17
George.Palacios

真実ではありませんが、そうだったと仮定します。行がすでにインデックスによって順序付けされている場合、順序付けのコストは非常に低くなるため、省略する必要はありません。

6
Lennart