「クラスター化されたテーブルのデータ行に直接アクセスできない-なぜですか?」の下の私の回答を読んでください。、 最初。具体的には【2】注意事項です。
「データベース」を作成したのはクレチンです。彼らが持っていた:
- 正規化されたリレーショナル テーブルではなく、正規化されていない一連のスプレッドシート
- PK はすべて IDENTITY 列です (スプレッドシートは互いにリンクされているため、1 つずつナビゲートする必要があります)。データベース全体にリレーショナル アクセスやリレーショナル パワーがない
- UNIQUE CLUSTEREDを生成するPRIMARY KEYがありました
- 彼らは、それが並行性を妨げていることを発見しました
- 彼らは CI を削除し、それらをすべて NCI にしました
- 彼らは怠惰すぎて逆転を終えることができませんでした。各テーブルの新しい CI になる代替 (現在の NCI) を指名する
- IDENTITY 列は主キーのままです (実際にはそうではありませんが、この中途半端な実装にあります)
このようなデータベースを装ったスプレッドシートのコレクションでは、CI を完全に避けて、NCI とヒープだけを使用することがますます一般的になっています。明らかに、彼らは CI のパワーや利点をまったく得られませんが、リレーショナル データベースのパワーや利点をまったく得られません。ではありません)。彼らの見方では、とにかく頻繁に「リファクタリング」しなければならないので、わざわざする必要があります。リレーショナル データベースには「リファクタリング」は必要ありません。
この回答についてさらに議論する必要がある場合は、CREATE TABLE/INDEX DDL を投稿してください。そうでなければ、それは時間を浪費する学術的な議論です。