[英]deleting 500 records from table with 1 million records shouldn't take this long
我希望有一個人可以幫助我。 我有一個簡單的sql語句
delete from sometable
where tableidcolumn in (...)
我有500條要刪除和重新創建的記錄。 該表最近增長到超過1個工廠記錄。 問題是上面的聲明需要5分鍾以上才能完成。 我有一個主鍵和2個非聚集非唯一索引。 我的刪除語句正在使用主鍵。
誰能幫助我了解為什么此聲明花了這么長時間以及如何加快它的執行速度?
我首先要看兩個方面,鎖定和錯誤的計划。
鎖定-運行查詢,並在查詢運行時查看它是否被其他任何東西阻塞,“如果您發現有任何東西阻塞了您的請求,那么請從sys.dm_exec_requests中選擇*,其中blocking_session_id <> 0”,那么我將從以下內容開始:
如果沒有鎖定,則獲取插入的執行計划,它在做什么? 它異常高?
除此之外,您預計需要多長時間? 比這更長或更長時間嗎? 它只是在顯着增長后才變得如此緩慢還是在很長一段時間內變得越來越慢?
I / O性能如何,您的平均讀寫時間等是多少?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.