有史以來最讓人感動的一次資料庫&SQL最佳化(DB & SQL TUNING)——半小時效能提升千倍

sqysl發表於2016-06-26

昨天,一個客戶現場人員急急忙忙打電話找我,說需要幫忙調優系統,因為經常給他們幹活,所以,也就沒多說什麼,先了解情況,據他們說,就是他們的系統最近才出現了明顯的反應遲鈍問題,他們的那個系統我很瞭解,軟硬體不會有問題,主機是頂級小機,儲存也是高階儲存,高度懷疑他們的應用出了問題。問他們是整個系統慢還是某個模組慢,他們也說不清楚,說這事兒前後有一個多月了,開始沒這麼嚴重,我們查了半天也沒找出問題,我們的dba們也一直在看,都沒找到具體原因,最近我們的客戶有點怒了,說根本就快不能用了,亞歷山大。。。到此為止,這沒法繼續溝通下去了,還是自己動手,豐衣足食吧。

讓他們幫忙下了典型時段的awr先看看再說,發過來後,摟了一眼,大體明白了,接著,向他們瞭解了相關的資料環境。

給出了方案,發了郵件。無非就是把一個過程重新改了下,認真檢查了語義和邏輯,沒問題,然後,他們認真核對了語義、邏輯和結果,也沒問題。另外一項就是建一個索引,確認沒問題後,把方案發了出去。後來各方溝通好了,最後確定,決定晚上負載低時實施方案,我負責晚上遠端保障,方案實施後,他們那邊說是好了很多,因為不是典型負載,和他們觀察了一段時間,確認各項指標都正常後,早點休息了。

上午一上班,現場客戶早早的發來了訊息,說:系統反應非常快,索引有關的模組,效能提升了一千倍以上,他們的客戶非常滿意和高興,他們當然更高興。也搞不清楚他們怎麼測的,精確不精確,反正解決了就好,不管了,接下來,看點資料。

讓我沒想到的是,他們的客戶居然還抄來了一封郵件,說:硬體沒升級擴容的情況下,效能居然能提升一千倍,這經驗也太值得推廣了。

看完郵件,回了郵件,對客戶的重視和反饋表示感謝。有點感動,畢竟中間還隔著一層客戶。

雖然本人覺得這次解決問題實在是太簡單,簡單到不好意思寫,其實每次也是這種感覺,覺得沒什麼可寫的。但畢竟這是部落格,還是寫下大體思路,希望對廣大同行有所幫助

1、過程是個自動維護資料的過程,因為資料量較大,單表大小達到了幾個T,可能出於效能的考慮,過程的作者用了迴圈多次對錶操作。該場景太常見了,我解決的這種程式設計問題至少不下10次,而且,目前為止,這種程式設計思想似乎還在蔓延。

2、加索引,由於該表最近資料量變大很多,之前索引問題沒暴露出來,現在出現了。該表索引列選擇性非常好,近乎唯一。

其實,資料量是效能問題的前提,沒資料,無論怎麼寫SQL,也不會出效能問題,資料量上來了,效能問題就出現了,很多客戶效能問題都有這麼個過程。


很小的兩個改動,分析解決時間前後算起來不過半小時,居然能給客戶解決問題,客戶還給了這麼正面的反饋,看來自己的工作還是很值得的。從另一個方面來說,客戶並不是有些人說的怎麼挑剔和難伺候,經驗說明,客戶還是很講道理、容易打交道和容易滿足的。如果說客戶不滿意,我們服務方更應該從自己的服務上多找找原因。

此外,看來國內資料庫行業的應用水平,確實還有待於提高,客戶能用到我們,說明我們還有價值和市場。


繼續加油!!!


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

相關文章