--- lang: ja-jp breaks: true --- # SQL Server 数億件の大量データを格納したテーブルから古いレコードを順次削除するクエリー 2022-08-24 ```sql= declare @deleteMaxCount as int = 10 * 10000; declare @targetDay as date = cast(convert(varchar(7), DATEADD(month, -3, cast(getdate() as date)), 111) + '/01' as date); WHILE 1 = 1 BEGIN delete top(@deleteMaxCount) XXXX from XXXX大量データテーブル as XXXX where XXXX.Date < @targetDay IF @@ROWCOUNT < @deleteMaxCount BREAK; END ``` :::warning トランザクションを使用せずに実行することで、いつでも停止・再開が可能。 ::: :::info 順次削除するだけで、特別に高速に削除できるわけではない。 ::: ###### tags: `SQL Server` `大量データ削除` `DELETE`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up