1

キーが1つのchar(23)フィールドと2つのTimeStampフィールドで構成されているテーブルのクラスタリングに問題があります。char(23)フィールドには、英数字の値が含まれています。クラスタリング操作が終了することはありません。私はそれを24時間実行させましたが、それでも終了しませんでした。

誰かが以前にこの種の問題に遭遇したことがありますか?理由は長いキーフィールドが理にかなっているという私の理論はありますか?長いキーを持たないはるかに大きなテーブルを扱ってきましたが、常に問題なくDB操作を実行できました。そのため、この場合はキーのサイズに関係があるのではないかと思います。

4

1 に答える 1

1

クラスタはテーブルを書き換えるので、ロックを待機する必要があります。必要なロックが取得されていない可能性があります。なぜvarchar(64000)を設定するのですか?なぜ無制限のvarcharだけではないのですか?そして、このインデックスはどのくらいの大きさですか?

サイズが問題になる場合は、キーサイズではなくインデックスサイズに基づいている必要があります。トーストされたキー属性が拡張ストレージに移動されるため、これらがクラスターにどのような影響を与えるかわかりません。TOASTはCLUSTERを複雑にする可能性があり、TOASTされた属性でクラスタリングしている人のことは聞いたことがありません。そうすることはあまり意味がありません。サイズが4kを超える属性には、トーストが必要です。

より良いオプションは、トーストされた可能性のある値なしで値のインデックスを作成し、その上でクラスター化することです。それはあなたがそうでなければ得るものに非常に近い何かをあなたに与えるはずです。

于 2013-03-21T02:24:02.687 に答える