BEGIN TRANSACTION
BEGIN TRY
;WITH CTE_TQUOTEWO
AS
(
SELECT WORKID,QUOTE_NO
FROM ABC_TQUOTEWO WITH(INDEX(PK_TQUOTEWO_ID))
WHERE TQUOTEWO_ID != ''
)
DELETE CA
FROM CTE_TQUOTEWO CA
JOIN I_ABC_TQUOTEWO AT WITH(INDEX(PK_ITQUOTEWO_ID))
ON AT.WORKID = CA.WORKID
AND AT.QUOTE_NO = CA.QUOTE_NO
AND AT.TQUOTEWO_ID != '';
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
我有一張擁有數百萬條記錄且沒有定義索引的表,但執行起來還是需要很長時間。任何人都可以建議做更快的刪除操作? 使用sql server ...如何加速從擁有數百萬條記錄的表中刪除操作?
可以顯示查詢? –
是否刪除表中的所有行?你能顯示你正在使用的刪除命令嗎? –
參考http://stackoverflow.com/questions/2126434/bulk-delete-on-sql-server-2008-is-there-anything-like-bulk-copy-bcp-for-delet – aads