簡體   English   中英

MS SQL Server 2008-更新大型數據庫

[英]MS SQL Server 2008 - UPDATE a large database

我只想UPDATETABLE一個數據,什么是最有效的方法?

  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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM