[英]MS SQL Server 2008 - UPDATE a large database
我只想UPDATE
大TABLE
一個數據,什么是最有效的方法?
SELECT * from TABLE WHERE status='N'
UPDATE TABLE set status='Y' where status='N'
我認為桌子很大。 然后可能是您應該在表上創建臨時/永久過濾索引
CREATE NONCLUSTERED INDEX Temp_Table_Status
ON dbname.dbo.Table(Status)
WHERE Status='N'
GO
否則您的查詢是正確的。
UPDATE TABLE set status='Y' where status='N'
“最高效”很像“最美麗”。 它沒有絕對的意義。 您如何衡量“效率”。 IMO,到目前為止,最有效的機制是使用單個更新查詢。 您的查詢實際上應寫為避免無意義的更新:
update table set col = 'Y' where col <> 'Y';
where子句將使其“最有效”。 請注意,您可能需要在where子句中考慮空值-了解您的數據。 有些人可能會爭辯說要批量更新以節省空間。 如果定期執行此操作,則通常應該在數據庫中具有足夠的空間並進行日志記錄,而不必嘗試無意義地管理磁盤空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.