一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個知名零售企業(yè)ERP系統(tǒng)數(shù)據(jù)庫優(yōu)化經(jīng)典案例

馬哥Linux運維 ? 來源:lq ? 2018-12-24 17:24 ? 次閱讀

記得在自己學(xué)習(xí)數(shù)據(jù)庫知識的時候特別喜歡看案例,因為優(yōu)化的手段是容易掌握的,但是整體的優(yōu)化思想是很難學(xué)會的。這也是為什么自己特別喜歡看案例,今天也分享自己做的優(yōu)化案例。

之前分享過OA系統(tǒng)、HIS系統(tǒng),今天我們來一個最常見的ERP。ERP系統(tǒng)各行各業(yè)都在用,不同行業(yè)也有不同的特點,博主在做研發(fā)的時候還自己寫過ERP也算是比較熟悉了。

不管是本文分享的零售類,還是鞋服門店、家居、汽車、地產(chǎn)等等,也不管是某友、某碟,ERP有一個共同的特點,單據(jù)流程長,業(yè)務(wù)復(fù)雜,熱點表明顯,數(shù)據(jù)量大,涉及眾多系統(tǒng)接口,各種大數(shù)據(jù)的統(tǒng)計報表....傳統(tǒng)行業(yè)又缺乏DBA精心管理。

慢是普遍的!

最近一直很忙,博客產(chǎn)出也少的可憐,今天整理了一下自己做過優(yōu)化或各種方案的客戶已經(jīng)超過千家,涉及各行各業(yè),今天分享的案例算是在這些客戶中比較典型的了,沒有什么高大上都是常見的問題。在之前的博客中都有過提及,那么本篇我們就結(jié)合之前的技術(shù)點來看看這個案例。

用戶現(xiàn)象

系統(tǒng)慢!非常慢!

保存?zhèn)€單據(jù)要好幾分鐘,很多操作都超時,尤其到下午4點左右各種超時,收款什么的都收不了,查個報表一個小時,下班了還沒查完,經(jīng)常因為系統(tǒng)慢而加班,業(yè)務(wù)部門怨聲載道。這個事情已經(jīng)上報公司高層,IT壓力非常大!

系統(tǒng)環(huán)境

首先我們來看一下這個系統(tǒng)配置及現(xiàn)狀,為什么說這個客戶經(jīng)典?往下看就知道了...

先來看看系統(tǒng)配置 :

服務(wù)器的配置是:8路 24 core 做了超線程,384個邏輯CPU,內(nèi)存1T,磁盤全閃:

SQL用了2012版本,補丁已經(jīng)最新,而且服務(wù)器配置全部能夠識別。

沒錯。相當牛逼的配置!

數(shù)據(jù)庫的大小在1.2個T。

乍一看也許覺得是數(shù)據(jù)量太大了導(dǎo)致性能的問題,可又一想這么強力的服務(wù)器也不至于那么慢呀?難道是代碼的問題?難道需要分庫分表?

數(shù)據(jù)庫指標

那么我們再看一下數(shù)據(jù)庫的一些表象:

每秒請求數(shù)量:

用戶連接數(shù):

語句執(zhí)行情況:

等待情況:

等待時間:

CPU指標:

內(nèi)存一些指標:

磁盤隊列:

----------------還很多指標就不一一展示了---------------

看到這些基本的指標,除了慢你能看出什么?問題出在哪里?怎么樣快速解決?能有一個優(yōu)化的步驟呈現(xiàn)在眼前么?

分析

系統(tǒng)是真的很慢,慢語句數(shù)量很多系統(tǒng)阻塞也很嚴重,確實和客戶反映的慢可以吻合。那為什么這么慢?什么原因?qū)е碌模?/p>

我總結(jié)一般性能慢常和6大因素有關(guān):

業(yè)務(wù)壓力

硬件

環(huán)境

代碼

數(shù)據(jù)庫內(nèi)部運行因素

架構(gòu)

奉上一幅草圖:

系統(tǒng)壓力:訪問壓力(也是我們常說的并發(fā))其實并不大,用戶連接數(shù)也沒想像的那么多;

硬件:在內(nèi)存和磁盤IO確實存在壓力;

環(huán)境:服務(wù)器和數(shù)據(jù)庫版本什么的沒什么問題,具體配置一會兒再看;

代碼:最不想分析代碼,我們留到最后;

數(shù)據(jù)庫內(nèi)部運行因素:從各種指標來分析,系統(tǒng)語句等待時間太長,導(dǎo)致語句完成慢,而等待主要有兩部分:

硬件資源確實有壓力;

語句之前的阻塞太嚴重了,"LCK_M_",而且等待時間過長,竟然平均達到幾百秒。

再分析...這么強的硬件,并不大的訪問壓力,竟然造成瓶頸?語句寫的爛?程序?qū)崿F(xiàn)的不好?缺索引?環(huán)境配置不對?

下面我們來看看....

優(yōu)化階段一(常規(guī)優(yōu)化)

很多時候系統(tǒng)慢要究其原因,難道上線時候就這么慢?那不可能,廠商根本無法交付的!那么問題來了,系統(tǒng)是什么時候開始慢的?對系統(tǒng)做過哪些調(diào)整?

簡單的調(diào)研,出擊!

我靠?。?!廠商完全不配合,工程師對系統(tǒng)及其不熟悉,一問三不知,最近做什么改動也說不清,用戶也不知道。廠商給的結(jié)論:繼續(xù)加硬件,更強的IO,數(shù)據(jù)分離減小數(shù)據(jù)量……

協(xié)調(diào)廠商完全協(xié)調(diào)不動,基本沒戲了。

既然是數(shù)據(jù)庫問題,那我們就數(shù)據(jù)庫下手吧!從一名數(shù)據(jù)庫從業(yè)人員的角度來說,看到這樣的系統(tǒng)一定要先解決大面積等待問題。個人經(jīng)驗來看很多系統(tǒng)大面積等待解決系統(tǒng)會有個很大的提升和改善。

配合一些常規(guī)的調(diào)優(yōu)手段,階段一開始了。主要給系統(tǒng)大面積創(chuàng)建影響高開銷大的索引,調(diào)整系統(tǒng)參數(shù),優(yōu)化tempDB等....具體不細說了,前面系列文章中都有。

預(yù)期:

一般系統(tǒng)上面一輪優(yōu)化會有明顯的改善,我認為這一輪以后系統(tǒng)會明顯變快,語句運行環(huán)境合適,索引什么的合理資源消耗自然就少,內(nèi)存和IO壓力也會有所減少。

結(jié)果:

系統(tǒng)內(nèi)存,IO壓力趨于平穩(wěn),慢語句數(shù)量有所減少,但依然很多,阻塞依然存在,超過2分鐘的語句依然很多。

優(yōu)化前:

優(yōu)化后

優(yōu)化前

優(yōu)化后

優(yōu)化階段二(針對語句)

再次分析解決大面積語句阻塞的系統(tǒng),發(fā)現(xiàn)現(xiàn)在的情況,主要有如下幾個:

內(nèi)存某些時候還是存在波動,但整體IO 內(nèi)存已經(jīng)不是瓶頸。

系統(tǒng)中有SLEEPING的程序阻塞時間長

部分功能語句依然慢,消耗的資源很高。

再次對系統(tǒng)調(diào)研:

執(zhí)行的慢語句是什么業(yè)務(wù),是業(yè)務(wù)功能?還是報表?還是接口?

系統(tǒng)中頻繁且較慢的語句。

系統(tǒng)中阻塞的操作是什么。

調(diào)研后,我遇到了最常見也是最大的問題: 語句慢由于程序。在HIS的優(yōu)化案例中就是因為程序大量使用自定義函數(shù),我們沒法改,我們巧妙的繞過。那么這次我們?nèi)绾卫@過?

一:報表

分析中發(fā)現(xiàn)程序系統(tǒng)中消耗最多資源的主要是報表。

報表通過一系列復(fù)雜的查詢插入到物理臨時表,啥叫物理臨時表? 就是非#temp 而是真真正正的插入到表中,用完在delete!

插入在刪除,中間還有跟業(yè)務(wù)表關(guān)聯(lián)操作,導(dǎo)致報表也會阻塞業(yè)務(wù)!

插入刪除的數(shù)據(jù)量是多少? 你們猜一下??

千萬級別....

二:接口

接口程序中頻繁調(diào)用業(yè)務(wù)數(shù)據(jù)并發(fā)更新頻繁,導(dǎo)致業(yè)務(wù)受阻。

三:問題代碼

代碼的問題主要有兩個:

代碼較復(fù)雜,需要細致優(yōu)化。

程序中存在連接泄露,簡單理解成程序報錯后事務(wù)不能有效處理,導(dǎo)致事務(wù)未提交阻塞系統(tǒng)。

針對第一部分報表,語句更是復(fù)雜至極,這東西不是短期就可以優(yōu)化的,考慮分出去;

針對第二部分接口,修改接口視圖,包括寫法優(yōu)化、添加索引、調(diào)用頻率等;

針對第三部分業(yè)務(wù)語句進行細致優(yōu)化,查詢提示,計劃向?qū)?、重編譯等等手段。

優(yōu)化階段三(報表分離)

經(jīng)過前兩個階段的優(yōu)化一般系都會明顯好轉(zhuǎn),只剩報表沒有處理,和一部分高消耗的頻繁接口查詢,這部分我們采用報表分離的方式去解決。

這里面我們遇到一個問題,報表要寫物理表。用2012 自帶的AlwaysOn是沒有辦法實現(xiàn)的(輔助節(jié)點只能讀)。

使用發(fā)布訂閱,又不能同時滿足數(shù)據(jù)安全和業(yè)務(wù)連續(xù)的要求,客戶又不滿意。

我們想到是否可以把寫入物理表變成寫入#temp 臨時表? 軟件廠商給出的結(jié)論是:不可能....

那這里面我們使用了第三方的產(chǎn)品Moebius集群(這里真的不是廣告....)

如何實現(xiàn):

多活集群,幾個節(jié)點數(shù)據(jù)實時一致,這樣的基本知識就不普及了...集群介紹也免了;

首先程序只有一個連接字符串沒法把報表指向到輔助服務(wù)器,我們只能通過Moebius集群的前端調(diào)度引擎,定制規(guī)則把報表所使用的存儲過程定點指向到第二臺服務(wù)器,解決了程序不能分離的問題。

其次Moebius集群可以實現(xiàn)兩個節(jié)點都可寫,以滿足輔助節(jié)點報表查詢寫入物理表的需要。

再次臨時表的寫入量太大,千萬級別數(shù)據(jù)同步也是問題,這里好就好在程序中寫入的物理臨時表都是以“Temp_” 開頭并以GUID類型結(jié)尾。我們在這里設(shè)置了只要這樣的表寫入不會反向同步給主節(jié)點,這樣根據(jù)規(guī)則控制雙向同步滿足了報表的要求,最終實現(xiàn)了報表的分離。

報表快了? 當然沒有,只是分離不可能快,但是好處有三個:

OLAP和OLTP分離事務(wù)阻塞得到解決;

報表服務(wù)器和業(yè)務(wù)服務(wù)器可以根據(jù)自身的業(yè)務(wù)特別進行單獨的個性化設(shè)置;

根據(jù)報表的要求我們配置高速IO的硬件。

預(yù)期:

語句已經(jīng)優(yōu)化,阻塞情況也被解決,CPU、內(nèi)存、磁盤壓力也沒有了,系統(tǒng)肯定快起來了!

結(jié)果:

系統(tǒng)快起來了!

最終業(yè)務(wù)系統(tǒng)節(jié)點全天24小時的慢語句數(shù)量:

(雖然還有慢語句存在,畢竟是TB級別的數(shù)據(jù)量,不影響業(yè)務(wù)運行客戶完全可以接受。)

總結(jié)

系統(tǒng)慢往往我們要全面分析,本文提供的維度:

業(yè)務(wù)壓力

硬件

環(huán)境

代碼

數(shù)據(jù)庫內(nèi)部運行因素

架構(gòu)

往往優(yōu)化真的不是簡單的調(diào)一調(diào)語句,加一加硬件,全面地分析是根本解決性能問題的首要任務(wù)。

當然不是所有的優(yōu)化都可以徹底解決,如本文中報表的改善是通過讀寫分離的方式實現(xiàn),很多時候在ERP系統(tǒng)中報表的處理方式都是如此,報表如果細致優(yōu)化,那需要多長時間呀!也許都是重寫了。

本文的優(yōu)化過程主要是:

全面分析系統(tǒng)問題 → 宏觀層面解決(環(huán)境、數(shù)據(jù)庫內(nèi)部運行因素、硬件壓力)→低效代碼調(diào)整→架構(gòu)方案實現(xiàn)(穩(wěn)定、安全、高效)→最終系統(tǒng)順暢無壓力。

當然此案例中客戶的數(shù)據(jù)量已經(jīng)到了可以做數(shù)據(jù)分離、分區(qū)分表的階段,但分享本案例的原因也在于,不要認為上TB的數(shù)據(jù)一定就要分庫分表的各種拆分,在性能調(diào)優(yōu)的簡單付出中依然可以收獲更大的收益,真心希望看官們在選擇分庫分表付出的極大代價之前可以找專業(yè)的人全面分析一下,仔細評估你的系統(tǒng)到底是什么瓶頸!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9603

    瀏覽量

    87019
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3885

    瀏覽量

    65596
  • 系統(tǒng)配置
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    8572

原文標題:系統(tǒng)慢得一批?看數(shù)據(jù)庫運維老司機如何做優(yōu)化

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    杰和科技GAM-AI視覺識別管理系統(tǒng),讓AI走進零售營銷

    視覺識別+大數(shù)據(jù)分析+邊緣計算為核心技術(shù),打造集“精準營銷、客流洞察、智能決策”于體的全場景解決方案,助力零售門店實現(xiàn)從“人貨場”到“智貨場”的智慧升級。系統(tǒng)
    的頭像 發(fā)表于 02-20 11:32 ?461次閱讀
    杰和科技GAM-AI視覺識別管理<b class='flag-5'>系統(tǒng)</b>,讓AI走進<b class='flag-5'>零售</b>營銷

    AIM有限公司有效控制部件的野蠻增長并優(yōu)化企業(yè)流程

    系統(tǒng)自帶的龐大的CAD模型數(shù)據(jù)庫,加快了整個設(shè)計流程。 PARTsolutions避免重復(fù)創(chuàng)建部件 PARTsolutions使所有四AIM分公司的
    發(fā)表于 02-08 10:46

    騰訊云與正大零售戰(zhàn)略合作,共創(chuàng)全球智慧產(chǎn)業(yè)

    近日,正大集團旗下零售公司CP AXTRA與騰訊云宣布達成數(shù)字化戰(zhàn)略合作。此次合作標志著正大零售系統(tǒng)正式邁入數(shù)字化時代,實現(xiàn)了經(jīng)營效率的大幅提升和業(yè)務(wù)效果的顯著優(yōu)化。 據(jù)悉,CP AX
    的頭像 發(fā)表于 01-23 10:49 ?468次閱讀

    MySQL數(shù)據(jù)庫的安裝

    MySQL是開源免費的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下公司。 MySQL 最流行的關(guān)系型數(shù)
    的頭像 發(fā)表于 01-14 11:25 ?400次閱讀
    MySQL<b class='flag-5'>數(shù)據(jù)庫</b>的安裝

    物聯(lián)網(wǎng)如何改變零售行業(yè)

    零售商深知,節(jié)日的熱鬧氣氛讓顧客們忙著尋找完美的禮物和抓住年終優(yōu)惠。這直是公司最繁忙的時期之,客流量和銷售額大幅增加。為應(yīng)對激增的需求,零售商正轉(zhuǎn)向引入物聯(lián)網(wǎng)(IoT)技術(shù),以通過
    的頭像 發(fā)表于 01-14 09:27 ?485次閱讀

    PIX無人零售車登陸日本沖繩,自動駕駛+智能服務(wù)開啟零售新未來

    Kanucha Resort(沖繩名護市度假村)則提供實施場景。 1 、背景 根據(jù)2024年日本帝國數(shù)據(jù)庫發(fā)布的《勞動力短缺企業(yè)趨勢調(diào)查》,超過半的旅館和酒店面臨全職和非正式員工短缺的
    的頭像 發(fā)表于 01-09 17:11 ?1192次閱讀

    數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?

    數(shù)據(jù)庫種部署在虛擬計算環(huán)境中的數(shù)據(jù)庫,它融合了云計算的彈性和可擴展性,為用戶提供高效、靈活的數(shù)據(jù)庫服務(wù)。云數(shù)據(jù)庫主要分為兩大類:關(guān)系型
    的頭像 發(fā)表于 01-07 10:22 ?345次閱讀

    如何使用藍牙技術(shù)優(yōu)化零售空間的運營方式

    近日,藍牙技術(shù)聯(lián)盟高級營銷項目經(jīng)理Mindy Dolan有機會采訪到了高通技術(shù)公司副總裁兼零售物聯(lián)網(wǎng)全球負責(zé)人Art Miller,探討了如何使用藍牙技術(shù)優(yōu)化零售空間的運營方式。
    的頭像 發(fā)表于 12-30 10:32 ?610次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫

    運行在存儲上的SQLServer數(shù)據(jù)庫,有1000多個文件,大小幾十TB。數(shù)據(jù)庫每10天生成
    的頭像 發(fā)表于 10-31 13:21 ?547次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—通過拼接<b class='flag-5'>數(shù)據(jù)庫</b>碎片恢復(fù)SQLserver<b class='flag-5'>數(shù)據(jù)庫</b>

    企業(yè)級數(shù)據(jù)庫的配置和管理要求匯總

    企業(yè)級數(shù)據(jù)庫配置需高性能硬件支撐,包括服務(wù)器、存儲、網(wǎng)絡(luò)及電源冗余,選用穩(wěn)定DBMS與操作系統(tǒng),注重索引與查詢優(yōu)化。管理上,強調(diào)數(shù)據(jù)安全,實施加密、訪問控制與審計;確保高可用,配置容錯
    的頭像 發(fā)表于 09-27 10:50 ?370次閱讀

    文詳解企業(yè)上云數(shù)據(jù)庫是干嘛的

    業(yè)上云數(shù)據(jù)庫企業(yè)將其數(shù)據(jù)庫系統(tǒng)從傳統(tǒng)的本地數(shù)據(jù)中心遷移到由第三方云服務(wù)提供商管理的遠程服務(wù)器上的過程。這樣做的目的通常是為了提高數(shù)據(jù)處理的
    的頭像 發(fā)表于 09-13 11:49 ?548次閱讀

    智慧零售:國產(chǎn)工控主板在智慧零售終端中的關(guān)鍵作用

    在數(shù)字化和智能化技術(shù)不斷推進的背景下,智慧零售不僅僅是技術(shù)的應(yīng)用,更是零售業(yè)態(tài)和商業(yè)模式的全面升級。從傳統(tǒng)的店面銷售到以數(shù)據(jù)驅(qū)動的精準營銷和個性化服務(wù),智慧零售正在改變消費者的購物體驗
    的頭像 發(fā)表于 09-13 10:22 ?617次閱讀

    SNP亮相2024 SAP裝備制造化工零售建筑與地產(chǎn)行業(yè)峰會

    成都,7月12日——由SAP在成都舉辦的 “SAP 裝備制造/化工/零售/建筑與地產(chǎn)行業(yè)峰會”盛大召開,SNP應(yīng)邀參與本次峰會,并在乘云轉(zhuǎn)型分論壇發(fā)表演講《云時代企業(yè)ERP升級創(chuàng)新實踐案例》。 本次
    的頭像 發(fā)表于 07-29 16:11 ?768次閱讀
    SNP亮相2024 SAP裝備制造化工<b class='flag-5'>零售</b>建筑與地產(chǎn)行業(yè)峰會

    WiFi藍牙模塊促進傳統(tǒng)零售數(shù)字化轉(zhuǎn)型:智能零售體驗再升級

    聯(lián)網(wǎng)將從以下幾個方面闡述WiFi藍牙模塊在傳統(tǒng)零售業(yè)中的重要作用,以及如何實現(xiàn)智能零售體驗的再升級。 ? ? ? ?、WiFi藍牙模塊在傳統(tǒng)零售業(yè)中的應(yīng)用場景 ? ? ? ?1.智能
    的頭像 發(fā)表于 05-31 09:54 ?684次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—raid5陣列上層Sql Server數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境: 5塊硬盤組建組RAID5陣列,劃分LUN供windows系統(tǒng)服務(wù)器使用。windows系統(tǒng)服務(wù)器內(nèi)運行了Sql S
    的頭像 發(fā)表于 05-08 11:43 ?703次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—raid5陣列上層Sql Server<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例