Oracle語句最佳化之一

來源:互聯網
上載者:User

標籤:

public List<TdDepartment> createZtreeDep(String compId) {                List<TdDepartment> dd = new ArrayList<TdDepartment>();       //尋找所有子部門的sql語句
     String sql = "select dep_id,dep_name,super_id,folder from td_department "+ "start with super_id in ( "+ "select dep_id from td_department "+ "where valid_flag = ‘Y‘ and comp_id = ‘"+compId+"‘)connect by prior dep_id = super_id";
    //尋找部門本身的sql語句 String parentsql = "select dep_id ,dep_name,super_id,folder from td_department "+ "where valid_flag = ‘Y‘ and comp_id = ‘"+compId+"‘";
EpDB db = new EpDB(); ArrayList<HashMap> parentdeparts = db.getHashData(parentsql); ArrayList<HashMap> departs = db.getHashData(sql); if(parentdeparts == null || parentdeparts.size() <= 0) return null;
    //將部門加入到list中 for(int i=0; i<parentdeparts.size(); i++){ String dep_id = parentdeparts.get(i).get("DEP_ID").toString(); String dep_name = parentdeparts.get(i).get("DEP_NAME").toString(); String super_id = parentdeparts.get(i).get("SUPER_ID").toString(); TdDepartment td = new TdDepartment(); td.setId(dep_id); td.setPid(super_id); td.setName(dep_name); if(parentdeparts.get(i).get("FOLDER") != null){ String folder = parentdeparts.get(i).get("FOLDER").toString(); if("Y".equals(folder)){ td.setOpen("true");//非葉子結點則需要展開 }else{ td.setOpen("false"); } } //取消迴圈讀取 //td.setChild(createDepartments(dep_id)); dd.add(td); }     //將子部門加入到list中  for(int i=0; i<departs.size(); i++){ String dep_id = departs.get(i).get("DEP_ID").toString(); String dep_name = departs.get(i).get("DEP_NAME").toString(); String super_id = departs.get(i).get("SUPER_ID").toString(); TdDepartment td = new TdDepartment(); td.setId(dep_id); td.setPid(super_id); td.setName(dep_name); if(departs.get(i).get("FOLDER") != null){ String folder = departs.get(i).get("FOLDER").toString(); if("Y".equals(folder)){ td.setOpen("true");//非葉子結點則需要展開 }else{ td.setOpen("false"); } } //取消迴圈讀取 //td.setChild(createDepartments(dep_id)); dd.add(td); } return dd; }

需要最佳化點:

思考一:通過sql語句的最佳化來最佳化

思考二:通過程式遞迴的方法來最佳化

Oracle語句最佳化之一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.