組織架構是: 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/19stringbuilder 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就可以對字串進行排序了,哈哈。當然也有其他方法,以後發現了在發到部落格了,即使很...