
售前電話
135-3656-7657
售前電話 : 135-3656-7657
國家高新技術企業(yè) 省級專精特新企業(yè)
咨詢熱線:135-3656-7657 400-6333-661
關鍵業(yè)務系統(tǒng)的性能優(yōu)化對于企業(yè)的業(yè)務發(fā)展來說至關重要,在十五年前,我們給某運營商做優(yōu)化的時候,當時用戶說,因為系統(tǒng)性能的問題,營業(yè)廳排隊經(jīng)常排長隊。有一次中午午休的時候,還有十多名顧客沒有辦結,于是客戶和營業(yè)員發(fā)生了沖突,把營業(yè)臺上的電腦都砸了。這個例子雖然十分極端,不過也從另外一方面說明了高效運行的業(yè)務系統(tǒng)對企業(yè)核心業(yè)務的影響。前陣子去醫(yī)院做核酸檢測,發(fā)現(xiàn)現(xiàn)在醫(yī)院已經(jīng)沒有了排長隊的問題,大量的自助服務終端替代了以往排著長隊的窗口。我發(fā)現(xiàn)了一處自助終端區(qū)沒什么人,跑過去發(fā)現(xiàn)這組終端都關閉了,于是無奈只能去有人排隊的終端辦理掛號。雖然前面只是排了兩個人,不過掛號的時間還是挺長,因為掛號應用十分慢。后來和醫(yī)院的熟人聊起這個事,他告訴我因為系統(tǒng)很慢,所以只好再增加一組自助終端,業(yè)務忙的時候開起來。我當時就很奇怪,既然已經(jīng)增加了一組終端,為什么平時不開。他說這也是無奈之舉,那組終端開了,系統(tǒng)就更慢了his系統(tǒng)業(yè)務模塊,實際上總體來說也快不了多少,只是能讓排隊的每個隊伍短一些而已,所以平時排隊不是很長的時候,那組終端是關閉的。事實上,對于核心業(yè)務系統(tǒng)的問題,企業(yè)都是十分關注的,只是解決問題采用的手段不同而已。對于大多數(shù)傳統(tǒng)企業(yè)的核心業(yè)務系統(tǒng)的問題,很可能都與數(shù)據(jù)庫的性能有關。
特別是HIS之類的結構比較簡單的系統(tǒng),大多數(shù)HIS系統(tǒng)都是開發(fā)的應用,后面連了一個或者sql 數(shù)據(jù)庫。企業(yè)的核心系統(tǒng)的核心模塊往往都是比較穩(wěn)定的,只要確保這些核心模塊的性能穩(wěn)定,就能夠保證核心系統(tǒng)數(shù)據(jù)庫的性能穩(wěn)定。對于核心系統(tǒng)的核心業(yè)務模塊,花點功夫去保證其性能穩(wěn)定還是十分有價值的?;氐轿覀兘裉斓恼},如何才能確保核心業(yè)務系統(tǒng)數(shù)據(jù)庫的性能穩(wěn)定呢?我們能夠通過哪些花費不多的小技巧來確保核心業(yè)務系統(tǒng)的數(shù)據(jù)庫性能穩(wěn)定呢?其實我們只要重點關注三方的要素,就可以基本上保證核心系統(tǒng)數(shù)據(jù)庫的穩(wěn)定了。這三方面分別是:1)關鍵業(yè)務模塊SQL執(zhí)行計劃的穩(wěn)定性;2)數(shù)據(jù)庫服務器的IO延時穩(wěn)定性;3)保證足夠的物理內存。首先,確保核心業(yè)務模塊SQL執(zhí)行計劃的穩(wěn)定性。數(shù)據(jù)庫應用的突發(fā)性性能問題很多都是與執(zhí)行計劃的變化有關的。本來運行的很好的SQL突然變慢,大多數(shù)情況下是與執(zhí)行計劃的變化有關的。對于很多大企業(yè)的核心系統(tǒng),在開發(fā)的時候,就對核心交易的SQL做了十分嚴格的代碼走讀,也規(guī)定了核心業(yè)務系統(tǒng)不能使用過于復雜的SQL,甚至在某些銀行,規(guī)定關鍵業(yè)務系統(tǒng)的核心交易相關的SQL不允許使用多張表關聯(lián)的語法。
通過SQL語句的優(yōu)化,可以解決大多數(shù)SQL執(zhí)行計劃突變的問題。另外一個確保執(zhí)行計劃穩(wěn)定的原則是針對核心業(yè)務相關的表的索引要做規(guī)范的設計,不允許這些表上的索引亂用,系統(tǒng)上線后不允許在核心業(yè)務表上隨意建新索引。一張表上有多個相似的索引是引發(fā)錯誤執(zhí)行計劃的常見因素,我們也遇到過多次因為新建一個索引而導致核心業(yè)務系統(tǒng)性能受到影響的案例。制定合理的數(shù)據(jù)歸檔計劃,定期歸檔核心業(yè)務數(shù)據(jù),確保核心業(yè)務數(shù)據(jù)表的容量緩慢線性增長是確保核心業(yè)務系統(tǒng)性能穩(wěn)定的另外一個好的方法。在二十多年前,銀行用戶就看到了核心業(yè)務表數(shù)據(jù)增長對性能的重大影響,因此都設計了十分完備的核心業(yè)務數(shù)據(jù)轉儲與歸檔的方案。這三十年的實踐表明,這個方法是十分有效的。定期重建索引對于穩(wěn)定核心業(yè)務模塊的執(zhí)行計劃和提升關鍵業(yè)務模塊的性能的效果也是十分好的。十多年前,我給一家銀行做維保服務的時候,向他們的IT部門領導提出了這個觀點。剛開始雖然他們不太相信,不過依然做了一次嘗試。我們利用一個周末的晚上對所有核心業(yè)務相關的表上的索引做了一次,第二天統(tǒng)計出來的核心交易時間證明了,這次操作讓第二天的平均核心交易時間縮短了20%,從此他們就把這項工作做成了一個定期任務,每隔三個月做一次。
這十多年堅持下來,效果十分不錯。與第一個問題相比,確保IO延時穩(wěn)定性的問題,大家可能考慮的并不多?,F(xiàn)在大部分核心系統(tǒng)的存儲系統(tǒng)較十多年前都有了巨大的性能提升,往往核心存儲的能力是足以支撐核心業(yè)務的。不過持續(xù)監(jiān)控核心業(yè)務系統(tǒng)的IO延時,確保其穩(wěn)定維持在合理的范圍內依然是十分重要的。從數(shù)據(jù)庫角度、操作系統(tǒng)角度和后端存儲角度三方面監(jiān)控核心系統(tǒng)IO延時,一旦延時出現(xiàn)異常增長,則盡快找到原因,解決問題,對于確保核心系統(tǒng)性能也是十分關鍵的。十年前,一個銀行客戶升級存儲系統(tǒng),更換新存儲的時候因為成本問題,把磁盤從老的3.5寸的 SAS盤換成了2.5寸的的SAS盤。新系統(tǒng)上線那天,業(yè)務部門發(fā)現(xiàn)日結操作的時間下降了50%,最后經(jīng)過分析,發(fā)現(xiàn)就是因為10K的SAS盤的IO延時比15K的高30%左右,導致了日結業(yè)務的問題。發(fā)現(xiàn)問題的根源后,解決問題的方法也就容易制定了,臨時性的方案是擴大DB CACHE,減少IO的總量,最終的方案是在本存儲上增加一組SSD盤,把和日結相關的數(shù)據(jù)放到新的磁盤組上。要確保IO延時的穩(wěn)定性,一定要加強對IO延時的監(jiān)控工作his系統(tǒng)業(yè)務模塊,從數(shù)據(jù)庫、操作系統(tǒng)和存儲端口三方面去監(jiān)控IO延時,任何一方面出現(xiàn)問題都給予足夠的重視,找出問題的原因,是確保核心數(shù)據(jù)庫系統(tǒng)性能的又一個重要的工作。