1

テーブルを持つ外部キーを持つ新しいテーブルを作成する必要がありUsersます。

Users テーブルには 200 万件のレコードがあります。

テスト サーバーでスクリプトを実行すると、このテーブルがロックされ、テスト ユーザーはトランザクション中にこのテーブルをクエリできなくなります。

クエリは次のように始まります。

BEGIN TRANSACTION
GO
ALTER TABLE dbo.Users SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
/*CREATE NEW TABLE AND FOREIGN KEYS HERE*/

ロックせずに本番環境で安全に実行するにはどうすればよいでしょうか?

運用サーバーを「メンテナンス モード」に設定し、SQL トランザクションが完了したら再び稼働状態に戻す必要がありますか?

4

1 に答える 1

0

新しいテーブルとその外部キー、さらには新しいテーブル インデックスを作成するために、参照されるテーブル (この場合は dbo.Users) の lock_escalation をロックまたは設定する必要はありません。上記のトランザクションを実行しないでください。新しいテーブルと外部キーの作成だけです。

于 2013-04-09T00:46:41.080 に答える