2009-04-01 5 views
4

私はPKの制約(2つの列にクラスター化されたインデックス - ドロップ処理中です)があります。コマンドはまだ1時間後に実行されています。私は制約を取り除くだけで、操作はほぼ瞬時になると思っていたでしょう。 私はPKを落としたときに実際にフードの下で何が起きているのか説明することができますか?SQL 2005でクラスター化された主キーをドロップするとどうなるのですか

答えて

9

クラスタ化インデックスは「単なる制約」ではなく、記憶方法です。

あなたがそれをドロップすると、あなたのデータは

その他のインデックスではなくPRIMARY KEY値のRID年代を参照するように更新されているヒープ領域にクラスタストレージから並べ替えされています。

1

クラスタ化インデックスは、実行にかかる時間を説明するデータであるです。

+0

拡張できますか?クラスタードインデックスpk制約を削除しても、データ自体は削除されません(少なくともそれが問題になる場合は、私は問題になります)。 データの順序が変更されていますか? –

+0

クラスタ化インデックスは、データが物理的にどのように配置されるかを決定します。それをドロップすると、データは並べ替えられますが、削除されず、そこに心配はありません。 –

+1

それで、なぜそれを整理するのが面倒だろうか?私が注文を指定しなかった場合、それはなぜ自分自身を作り上げるのに苦労するのでしょうか? –

0

「クラスタ化」インデックスは、テーブルのレコードをハードドライブのの順に物理的に書き込みます。そのインデックスを削除または変更すると、SQL Serverは基本的にハードドライブ(基本的にはそのテーブルのデータがある部分)を「デフラグ」(並べ替え)する可能性があります。

この回答は完全に技術的なものではありません...しかし、それはあなたに「ああ、そういうことが起こっています。

関連する問題