0
我運行以下語句,它將更新超過9300萬行。如何優化查詢更新?
SET rowcount 10000
update t
set [OC]=r.[OC]
from [dbo].[Vente] t
inner join [dbo].[OC] r
on t.[Date Time] between r.[DATE DEBUT] and r.[DATE FIN]
while @@rowcount>0
BEGIN
update t
set [OC]=r.[OC]
from [dbo].[Vente] t
inner join [dbo].[OC] r
on t.[Date Time] between r.[DATE DEBUT] and r.[DATE FIN]
end
SET rowcount 0
如何優化它? 。
你有和索引第一更新增加後更改[約會時間]? –
備註 - 設置像這樣的rowcount已過時: '使用SET ROWCOUNT不會影響將來版本的SQL Server中的DELETE,INSERT和UPDATE語句。避免在新的開發工作中使用SET ROWCOUNT和DELETE,INSERT和UPDATE語句,並計劃修改當前使用它的應用程序。對於類似的行爲,使用TOP語法.'(來自[MSDN](https://msdn.microsoft.com/en-us/library/ms188774.aspx)) – Bridge
根據你的數據庫的使用情況(是否有其他用戶/會話?)可以關閉所有觸發器,刪除所有約束和索引並在更新後重新創建它們。 – Shnugo