天天看點

SqlServer資料庫記錄數大引起的一系列問題解決

這是筆者qq群裡一個同仁問的問題。同時他遇到的問題随着時間推移也在變化,但是都與資料量大有關。

1. 大資料量下的delete問題

2. 大資料量下的update問題

過了幾個月,他又有新問題了,他說,資料更多了,現在即使給要删除的記錄做個标記(即一個update語句)也要很長時間,要幾十分鐘。我問了下情況,原來是前面那個問題的的更新版問題。他現在給要删除的記錄做待删除标記,用一個有WHERE條件的update語句。找到WHERE條件的記錄,即一個搜尋的過程。現在就是按這個WHERE條件搜尋過程需要很長時間。我問了他的WHERE條件是什麼,還問了他的cluster index是什麼,和non-cluster index是什麼。最後發現他的WHERE條件既不比對cluster index, 也不比對non-cluster index。是以即使是一個Update也特别耗時間。于是對他講了如何選cluster index, 比如短的字段,并且有單向遞增特性。他照我說的方法去做了。然後說千萬級别的記錄,給一個記錄标記需要删除就快很多了。隻要一秒多就完成了。呵呵,我心中又是很高興的。

希望能幫到你!