4

2 台のコンピューターに SQL Server データベース (同じバージョン) の 2 つのインスタンスがあります。データベース照合は大文字と小文字を区別しないに設定されています。たとえば、name列を持つテーブルに 3 つのレコードがあります。

SQL Server インスタンス 1

> select name from table1 order by name

name 
-----
Adam 
adam 
Adam 

SQL Server インスタンス 2

> select name from table1 order by name

name 
-----
Adam 
Adam 
adam 

同じ SQL Server データベースの 2 つのインスタンスで並べ替えがあいまいなのはなぜですか? それはなぜですか?ソートアルゴリズムとは何ですか?

4

1 に答える 1

4

照合で大文字と小文字が区別されない場合、3 つの値はすべて明示的に同一と見なされ、順序付けされた同一の行の順序に関する保証はありません。その決定の根拠となるものは何もないため、「自然な」順序はありません。

観測された順序はランダムであると見なす必要があり、読み取り/バッファー キャッシュ、IO キューなどで利用可能なデータなど、サーバーの内部に関連しています。

于 2013-04-19T11:30:09.617 に答える