一回も披露したことのない豆知識

すみません、どなたか教えて下さい。

列のサイズをchar(128)⇒char(300)に変更したいのですが、
システム稼働中に変更処理を行っても、DBへのデータ登録等は問題ないでしょうか?
また、サイズ変更処理は正常に終わりますでしょうか?

ご存知の方がいらっしゃいましたら、よろしくお願いします。

A 回答 (2件)

列の拡張ぐらいでしたらロックがかかるので大丈夫でしょう。


しかし、データ量が多いと負荷がかかりますので
業務時間帯に行うのはやめた方がよいと思います。

※注意点
ManagemrntStudioからテーブルのデザインから変更しようとすると
以下の流れで変更を適用されます。

・変更適用済みのワークテーブル作成
・データコピー
・元テーブルと同じ権限を付与
・本テーブル削除
・ワークテーブルを本テーブルに変更
・プライマリーキー作成

なので、一瞬ですがテーブルがなくなります。
Alter table文で変更すると本テーブル自体に変更が行なわれます。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。
注意点もとても参考になりました。
テストでテーブルのデザインから変更した時、とても時間がかかったので、Alter table文で実行しようと思っています。
クエリアナライザでの実行ですが、コマンドラインから?実行した方が負荷はかからないのでしょうか?

お礼日時:2009/04/23 16:53

ロックが掛っているとDDLも待ちになります。


したがって実行中のトランザクションがそれでコミットされたりすることはないです。
カラムの拡張ですから、DDLがエラーになることもないと思います。

ただ、件数が多い場合はDDLの実行に時間がかかって、その間他のトランザクションがタイムアウトする恐れはあるので、
アクセスの少ない時間帯を選ぶか、メンテナンス時間を設けるかした方がよいと思います。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました!!

件数が多いので、時間帯を考えたいと思います。

お礼日時:2009/04/23 16:48

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

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


おすすめ情報