BIEB:關於CRM系統查詢效能問題

idba發表於2010-01-06
以下是任務背景描述:   
     小李是一家銷售圖書及音像製品的公司的DBA,負責管理公司的各種系統的後臺SQL Server資料庫,隨著公司業務的發展,公司CRM(自己公司定製開發的系統)系統中會員的數量越來越大,每月以10萬的使用者數量在增長,目前CRM系統中已經儲存了有1000萬條使用者資料庫及相關資訊。
     公司的業務運作方式是,通過一個擁有30個座席的呼叫中心,來根據客戶的資訊,給客戶打電話銷售相關產品;客戶可以免費獲得產品閱讀和使用,但使用3個月後需要付款;整個發貨,收貨,收款等業務依靠定製的CRM系統來完成。

企業IT具體環境配置:
     1  公司有一臺Web伺服器,執行著公司的門戶及網上定購系統,負責接受網上的線上訂單;另外還執行著公司的基於Web的CRM系統,和呼叫中心相連;
     2  另外一臺web伺服器,執行著使用者社群;
     3  有2臺SQL Server資料庫伺服器,一臺對應CRM的使用者庫;另外一臺對應著社群使用者資料庫;2庫之間有關係,社群使用者庫中,有一部分會員是CRM系統中的使用者;
 

在第一季任務中提到:
1 隨著使用者資料量的增加,CRM系統及其它使用使用者庫的系統越來越慢,做一個查詢有時需要等2-3分鐘才能看到結果。

網友好色如歌給出了3條建議:
1 監測DB執行情況,看看執行負載的壓力在哪個方面
如果是I/O壓力,可能程式裡對資料庫的訪問是不是太頻繁了,可以分析一下應用程式的程式碼,可以考慮使用快取機制存放只讀資料、頻繁訪問的資料;
2 如果是CPU佔用太大,說明SQL執行效率有問題,需要記錄下最耗費資源的sql,然後一個個分析;看看是不是索引沒有建好,比如建的索引沒有被命中;
3 可以再分析應用程式,看看資料呈現的分頁、看看資料讀取的效率;可以把OLTP和OLAP的訪問使用者庫的功能分拆開來。

      其中首先應該檢查的是應用程式的效能,檢查這一點時,也請同時注意分析SQL語句的效能。就是先判斷每個應用頁面中呼叫的SQL語句的執行時間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-624495/,如需轉載,請註明出處,否則將追究法律責任。

相關文章