0

背景:テーブルには約200mの行55GBがあります。

重複するテーブルに行をコピーオーバーする必要がありますが、BIGINT IDを使用します。もちろん、元のテーブルからCREATEするスクリプトを生成すると、テーブル名、PKのINT値、PRIMARYなどすべてが同じままになります。主な制約-すべてを変更する必要があります。

私の質問は、PRIMARY KEY CONSTRAINTの名前を変更し、それを元に戻さない場合、問題が発生するかどうかです。ストアドプロシージャまたは直接コマンドは、この制約をインデックスなどとして直接呼び出すことができますか?後で名前を変更する必要がある場合、それは瞬間的なプロセスですか、それとも長いプロセスはそのような大きなテーブルですか?

新しいインデックスを再作成する前に元のテーブルにドロップするだけなので、他のインデックスについては重要ではないと思います。

そしてもう1つの質問:このサイズのテーブルと、パフォーマンスを念頭に置いた大量のシステムでは、次の値のいずれかを変更することを再検討する必要がありますか?:

WITH (
    PAD_INDEX  = OFF, 
    STATISTICS_NORECOMPUTE  = OFF,
    IGNORE_DUP_KEY = OFF, 
    ALLOW_ROW_LOCKS  = ON, 
    ALLOW_PAGE_LOCKS  = ON, 
    FILLFACTOR = 95
) ON [PRIMARY]
4

1 に答える 1

4

インデックス名は通常、プログラミングAPIで直接参照されません。'selectfromindex'または'insertinto index'構文はなく、すべてがテーブルオブジェクトを参照します。たとえばテーブルヒントのように、インデックス名が公開されている場所もあります。

ただし、物理的なレイアウト(つまり、インデックス名と制約名)を認識している管理/保守スクリプト/ジョブを配置している場合があります。

于 2012-12-06T13:42:20.820 に答える