sql语句如下
SELECT * FROM (
SELECT ROWNUM R,REPORT_ID,REG_ACCOUNT,TITLE,TEMPLATE_ID,STATE_GROUP,STATE,ADATE_FROM, DATA_8103,DATA_8105,MASTER_ID,NAME ,OPERATION_ID,OPERATION_NAME FROM (
SELECT REPORT.REPORT_ID,REPORT.REG_ACCOUNT,REPORT.TITLE,REPORT.TEMPLATE_ID,REPORT.STATE_GROUP,REPORT.STATE,REPORT.ADATE_FROM,NVL (REPORT.DATA_8103,'') DATA_8103,NVL (REPORT.DATA_8105,'') DATA_8105,REPORT.MASTER_ID,CUSTOMER.NAME,OPERATION.OPERATION_ID,OPERATION.OPERATION_NAME
 FROM TBL_ERM_REPORT_DATA_CACHE REPORT,TBL_SAL_CUSTOMER CUSTOMER,TBL_ERM_OPERATION OPERATION,TBL_CACHE_DATA_SET_6303 DATASET
 WHERE REPORT.MASTER_ID=CUSTOMER.MASTER_ID AND REPORT.DATA_6303=DATASET.DATA_SET_ID AND DATASET.PARAM=OPERATION.OPERATION_ID AND REPORT.DEL_FLAG=0 AND CUSTOMER.DEL_FLAG=0 AND REPORT.REPORT_KIND =1  AND (OPERATION.OPERATION_ID  in (315134,315135) ) 
AND REPORT.ADATE_FROM>='2007-02-23 15:00:00' AND REPORT.ADATE_FROM<='2012-03-03 14:59:59'
 ORDER BY REPORT.ADATE_FROM ASC  ) WHERE ROWNUM<=20  ) WHERE R> 0这个语句在客户端软件中执行很快,没有任何全表扫描,但是在java程序中通过jdbc就运行的很慢,不知道是为什么?还有如果在java程序中,AND REPORT.ADATE_FROM>='2007-02-23 15:00:00' AND REPORT.ADATE_FROM<='2012-03-03 14:59:59'任意一个过滤条件注释掉,也是很快的,求大家帮助