對按組織架構載入使用者列表的程式效能的優化

2021-08-27 22:38:17 字數 1731 閱讀 8155

組織架構是:  organization代表黨委, branch代表黨支部,  層級關係是  黨委->黨支部->使用者. 

前端要把這個層級結構按樹形載入出來全部使用者列表,  結果載入緩慢, 等待的時間好像達到了十秒左右.

老楊檢視審核了後端的**如下所示:

stringbuilder stringbuilder = new stringbuilder();

listorglist = userservice.listbyhql("from sys_dictionary d where d.mcode='organization' and d.pcode='0' and d.isvalid='y' order by d.orderby");

if (orglist.size() > 0)

stringbuilder.setlength(stringbuilder.length() - 1);}}

}stringbuilder.setlength(stringbuilder.length() - 1);

}stringbuilder.setlength(stringbuilder.length() - 1);

看了**就明白了, **的問題是在巢狀迴圈裡多次執行資料庫查詢, 導致資料庫查詢這一開銷比較高成本的執行次數過多, 經檢視日誌, 完成一次載入, 共發起執行了98次資料庫查詢操作 對這個的優化其實是小菜一碟, 老楊重寫**如下, 資料庫查詢次數減到只有三次, 經測試前端的樹結構載入速度是大大提高了,

//written by wooce yang, 2016/1/19

stringbuilder stringbuilder = new stringbuilder();

listorglist = userservice.listbyhql("from sys_dictionary d where d.mcode='organization' and d.pcode='0' and d.isvalid='y' order by d.orderby");

listbranchlist = userservice

.listbyhql("from sys_dictionary d where d.mcode='org_branch' and d.isvalid='y' order by d.orderby");

listuserlist = userservice.listbyhql("from users u where u.isvaild='y' order by organization,branch");

map> > jsonmap = new hashmap<>();

for (sys_dictionary org : orglist)

}if(ulist.size()>0)

branchmap.put(branch.getname(),ulist);}}

if(branchmap.size()>0)

jsonmap.put(org.getname(),branchmap);

}if (jsonmap.size() > 0)

stringbuilder.setlength(stringbuilder.length() - 1);}}

}stringbuilder.setlength(stringbuilder.length() - 1);

}stringbuilder.setlength(stringbuilder.length() - 1);

Python中對列表的組織排序

在我們建立的列表中,列表元素的排列順序常常是無法 的。因為我們並非總是能控制使用者提供資料的順序。這雖然在大多數情況下是不可避免的。但你經常需要以特定的順序呈現資訊。有時候,你希望保留列表元素最初的排列順序。而有時候又需要調整排列順序。示例 names c d e g f a b print nam...

資料中颱的目標 定位和對組織架構的影響

可以在很多個層次上理解資料中臺建設的目標。不管是什麼軟體系統,它的出現,就是要提高效率 降低成本 減少混亂 生產和管理更有序化。那麼資料中颱也必須起到這些作用。但這樣說太籠統了。資料中臺究竟要解決哪些低效率高成本問題呢?資料中臺出現前有哪些生產和管理上的混亂呢?答案是,業務和應用部門不知道大資料平台...

對列表中的字串,按字串長度排序

前些天用到了list的sort方法,sort方法的對於字串的預設排序是按英文本母的順序來排序的,可是那並不是我想要的結果,我想按字串的長度來對list排序,這時就需要用到sort方法的引數。我用的是key,通過制定key就可以對字串進行排序了,哈哈。當然也有其他方法,以後發現了在發到部落格了,即使很...