あなたの習慣について教えてください!!

表題の件で質問させて下さい。

以前までは特に問題なく、alter tableなどで列を追加出来ていたのですが、ここ最近、データ量が増えてきたためか、列追加にすごく時間がかかってしまっています。
それが原因なのかはわからないのですが、alter tableで列を追加すると、処理が止まってしまい、プロセスをkillして、とりあえず対処する・・・
と言うような対応が続いています。

調べたところ、alter table はテーブルロックがかかってしまうらしいのですが、これは begin でトランザクションを開始させても特に意味はないのでしょうか?

いろいろと調べてはいるのですが、基本的な事は見つかるのですが、運用する時にどういった注意点があるか等が今いち、調べ切れませんでしたので、どんな運用をしていけばいいのかご教授して頂けると助かります。

宜しくお願いいたします。

A 回答 (1件)

データが何件くらいある表を、定義変更しようとしているのでしょうか?



ALTER TABLEで、NULLが可な列の追加なら、格納済の行に影響しませんが、NOT NULL列の追加の場合、格納済の全行が更新されるので、格納済データ数に比例して、処理時間が掛かるようになります。

商用RDBMSでは、NULL可の列だけ追加可能で、NOT NULL列の追加を禁止していたりします。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

データの件数は2万件くらいです。
NOT NULLの列の追加する時は、気をつけた方が良いということですね。

とても参考になりました!
ありがとうございます。

お礼日時:2008/12/08 05:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報