一千萬條以上記錄分頁數據庫優化

來源:互聯網
上載者:User

難題:

1.當客戶用了幾年後資料變得很龐大分頁速度緩慢得要命幾乎到了無法忍受的程度。

2.分頁到最後一頁時往往速度很慢會有死機現象出現,特別是記錄條數很多時死機現象比較多。

 

解決問題的方法步驟

1.首先最佳化資料庫,先從資料庫欄位類型優化開始入手。

先把數據庫裡的datetime 都修改為 smalldatetime,資料庫可以變小幾百M,最起碼磁盤的讀取壓力可以得到減小。由於數據庫數據有一千萬條,無法用管理工具修改結構(若硬要使用,則會出現超時現象),只能用SQL語句執行命令。

alter table testData_rpt alter column crateDate_rpt smalldatetime null

 

2.接著優化數據庫索引

把多餘索引通通刪除,然後重建立立索引,因為記錄數太龐大,有多餘的索引會使數據庫變得龐大。

把主鍵(primary key)設置為倒序的、非聚集的(no Clustered),這樣的好處是可以把最新的數據排序在最前面。

把主要查詢的條件設置為索引,GroupBy的放第一個位置然後設置為叢集索引,這樣的好處是查詢時會快好多好多。

完成此步驟後分頁速度快好多最起碼無死機現象。

 

3.重點優化,數據庫分頁的存儲過程。分頁是用了select top N的反轉方式,把最後一頁到底獲取多少條記錄准確數字計算出來。

 

 

參考文檔

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.