設(shè)備管理優(yōu)化

1愚臀、前提

項(xiàng)目中脆荷,設(shè)備管理模塊查詢速度緩慢,以球閥為例懊悯。平均查詢時(shí)間約為一根煙左右。比較緩慢梦皮,難于接受炭分。

2、整理代碼思路

(1)定位速度變慢的原因

(2)根據(jù)原因分析相應(yīng)的處理方法

(3)實(shí)踐測(cè)試效果

代碼思路簡(jiǎn)介

1剑肯、查詢出主表數(shù)據(jù)捧毛,主表字段數(shù)據(jù)。(根據(jù)每頁(yè)展示數(shù)據(jù)不同而波動(dòng))

2让网、循環(huán)通過(guò)關(guān)系表查找對(duì)應(yīng)的字表字段和對(duì)應(yīng)的數(shù)據(jù)信息呀忧。

原本的拼接邏輯

3、循環(huán)拼接成一條數(shù)據(jù)溃睹。

assetSpecList.size()>0&&dmClassspec.getAssetattrid().equals(assetSpecList.get(j).getAssetattrid())&&entity.getEventid().equals(assetSpecList.get(j).getAsseteventid())

4而账、返回,展示因篇。

簡(jiǎn)單測(cè)試后可以發(fā)現(xiàn)List<DmAssetspec> assetSpecList = this.dmAssetspecDao.getAssetAttrs(entity.getClassstructureid(), null, null,null);這一條查詢語(yǔ)句時(shí)間較長(zhǎng)泞辐,經(jīng)過(guò)讀代碼的分析,他的作用是查詢出所有滿足條件entity.getClassstructureid()的字表數(shù)據(jù)竞滓,然后根據(jù)所需要的50條數(shù)據(jù)的id篩選所需要的拼接數(shù)據(jù)咐吼。

注意!在沒有十分把握之前商佑,優(yōu)化的同時(shí)盡量減少對(duì)原有代碼邏輯破壞锯茄。

優(yōu)化思路

我們看這個(gè)條件,考慮從這個(gè)條件入手

assetSpecList.size()>0&&dmClassspec.getAssetattrid().equals(assetSpecList.get(j).getAssetattrid())&&entity.getEventid().equals(assetSpecList.get(j).getAsseteventid())

(1)將這個(gè)查詢所有的語(yǔ)句從循環(huán)體里茶没,拿到循環(huán)體外肌幽。避免重復(fù)多次的訪問(wèn)數(shù)據(jù)庫(kù)進(jìn)行查詢。

(2)避免查詢出所有的數(shù)據(jù)礁叔,嘗試只查詢出我們需要的50條數(shù)據(jù)相關(guān)數(shù)據(jù)再進(jìn)行業(yè)務(wù)拼接牍颈。

兩種優(yōu)化方案分別做了一套,都達(dá)到了優(yōu)化的效果但各有優(yōu)缺點(diǎn)琅关。

注釋掉部分為第一種優(yōu)化方案煮岁,采用的為第二種

(1)針對(duì)第一種讥蔽,缺點(diǎn):所有數(shù)據(jù)依舊全部查詢,數(shù)據(jù)包會(huì)隨著數(shù)據(jù)的增加日益龐大画机,效率也會(huì)倍率下降冶伞。雖然避免了循環(huán)體內(nèi)的查詢數(shù)據(jù),在數(shù)據(jù)量小范圍內(nèi)尚可步氏,數(shù)據(jù)量變大响禽,問(wèn)題依然會(huì)暴露。

(2)針對(duì)第二種荚醒,缺點(diǎn):查詢?nèi)栽谘h(huán)體內(nèi)未提出芋类,單條查詢速度尚可,循環(huán)后不論數(shù)據(jù)量大小界阁,均會(huì)將效率延長(zhǎng)侯繁。

所以說(shuō)兩種代碼均有繼續(xù)優(yōu)化的空間,但可能就需要破壞代碼邏輯泡躯。需要進(jìn)一步解讀業(yè)務(wù)和具體的代碼邏輯贮竟,理清所有的功能思路和實(shí)現(xiàn)方式才能下手優(yōu)化。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末较剃,一起剝皮案震驚了整個(gè)濱河市咕别,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌写穴,老刑警劉巖惰拱,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異啊送,居然都是意外死亡弓颈,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門删掀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)翔冀,“玉大人,你說(shuō)我怎么就攤上這事披泪∠俗樱” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵款票,是天一觀的道長(zhǎng)控硼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)艾少,這世上最難降的妖魔是什么卡乾? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮缚够,結(jié)果婚禮上幔妨,老公的妹妹穿的比我還像新娘鹦赎。我一直安慰自己,他們只是感情好误堡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布古话。 她就那樣靜靜地躺著,像睡著了一般锁施。 火紅的嫁衣襯著肌膚如雪陪踩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天悉抵,我揣著相機(jī)與錄音肩狂,去河邊找鬼。 笑死姥饰,一個(gè)胖子當(dāng)著我的面吹牛婚温,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播媳否,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼荆秦!你這毒婦竟也來(lái)了篱竭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤步绸,失蹤者是張志新(化名)和其女友劉穎掺逼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓤介,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吕喘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了刑桑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氯质。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖祠斧,靈堂內(nèi)的尸體忽然破棺而出闻察,到底是詐尸還是另有隱情,我是刑警寧澤琢锋,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布辕漂,位于F島的核電站,受9級(jí)特大地震影響吴超,放射性物質(zhì)發(fā)生泄漏钉嘹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一鲸阻、第九天 我趴在偏房一處隱蔽的房頂上張望跋涣。 院中可真熱鬧缨睡,春花似錦、人聲如沸仆潮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)性置。三九已至拾并,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鹏浅,已是汗流浹背嗅义。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隐砸,地道東北人之碗。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像季希,于是被迫代替她去往敵國(guó)和親褪那。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,810評(píng)論 0 11
  • CloudJavaBackendSummaries1式塌、開發(fā)環(huán)境eclipse工程博敬,引入jw倉(cāng)庫(kù)的jw-base,3...
    燕京博士閱讀 1,029評(píng)論 0 0
  • 關(guān)于前端性能優(yōu)化問(wèn)題詳解 出處:http://segmentfault.com/blogs 前端性能優(yōu)化指南 AJ...
    bennnnn閱讀 1,584評(píng)論 2 4
  • 在一個(gè)方法內(nèi)部定義的變量都存儲(chǔ)在棧中峰尝,當(dāng)這個(gè)函數(shù)運(yùn)行結(jié)束后偏窝,其對(duì)應(yīng)的棧就會(huì)被回收,此時(shí)武学,在其方法體中定義的變量將不...
    Y了個(gè)J閱讀 4,416評(píng)論 1 14
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,097評(píng)論 1 32