nullableなカラム追加のコストはinsert文とほぼ同じらしい

概要とか

ALTER TABLEを実行するとスキーマ変更ロックがかかりますが、 nullable なカラムを追加する場合と not null なカラムを追加する場合ではかかる時間が異なります。特に not null なカラムを追加する処理には注意するように、とMSDNにも記載されています。

で、実際のところどーなん?と思って計測してみました。

調査結果

測定対象テーブルのレコード数は約40万件です。サーバマシンはバーチャルマシンなので性能は不明。
詳しい結果は略。数値は10回試行の平均値で、単位は秒です。

nullableカラム追加 not nullカラム追加 insert文
0.007 38.112 0.006

結論

nullable なカラムの追加は、1行insert文の処理とほぼ同じようです。

また、not null のカラム追加は時間がかかります。想像するに、全行UPDATEと同じだけ時間がかかっていると思われます。

One Reply to “nullableなカラム追加のコストはinsert文とほぼ同じらしい”

コメントを残す