优化笔记

1.当in的参数超过达到1千时查询会报错.如果使用or 来连接多个 in(参数列表)会严重影响性能.

这时可以考虑使用临时事务表,将in的参数都插入临时表中再使用exists来查询.

CREATE GLOBAL TEMPORARY TABLE "WSXFBL9"."TMP_PARTYIDLISTFORQUERY" 
   (  "ID" VARCHAR2(80), 
  "PARTYID" VARCHAR2(255), 
  "TYPE" VARCHAR2(255)
   ) ON COMMIT DELETE ROWS ;
  CREATE INDEX "WSXFBL9"."IDX_PTYTREEVIEWPARTY" ON "WSXFBL9"."TMP_PARTYIDLISTFORQUERY" ("TYPE", "PARTYID") ;
2.涉及到时间的查询,如果执行计划中已经使用了组合索引,但是效果不太好时.

可以考虑再使用另一个时间索引,由给定时间查询这段数据的最大与最小时间.然后该索引的条件由最大与最小时间套在这段查询到的数据外层.

你可能感兴趣的:(JAVA,优化笔记)