Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我们可以进一步优化Oracle查询吗?_Sql_Oracle_Query Optimization - Fatal编程技术网

Sql 我们可以进一步优化Oracle查询吗?

Sql 我们可以进一步优化Oracle查询吗?,sql,oracle,query-optimization,Sql,Oracle,Query Optimization,此查询需要2.17秒的时间,输出中的行数为128000。所有源表都有大约100k行。但同一查询有时会在生产时间内花费更多的时间,这是系统运行缓慢的原因,如Oracle 11g中前5个非常耗时的查询所示。我们可以进一步优化它吗 注意:为Where和On条件中使用的所有列创建索引。还可以找到附加的查询计划 SELECT (ROWNUM)ROWNUMBER, RES.* FROM (SELECT PID

此查询需要2.17秒的时间,输出中的行数为128000。所有源表都有大约100k行。但同一查询有时会在生产时间内花费更多的时间,这是系统运行缓慢的原因,如Oracle 11g中前5个非常耗时的查询所示。我们可以进一步优化它吗

注意:为Where和On条件中使用的所有列创建索引。还可以找到附加的查询计划

    SELECT (ROWNUM)ROWNUMBER, RES.* 
                  FROM         
                  (SELECT PIDS,        
                  FILENUM,
                  FILETYPE,
                  ATT,        
                  FILESTA,        
                  WSNAME,        
                  CMP5.CLT_NAME AS CLIENT,        
                  CLT_CODE,
                  CLTREF,
                  TMTYPE,
                  ASSOCNAME,
                  FFCOUNTRY,
                  APPLICATIONNO,
                  FF_APPLICATIONNO,
                  FILING_TRADEMARKTITLE,
                  FF_TRADEMARKTITLE,
                  QUERY_TRADEMARKTITLE,
                  CMP6.DOCNAME AS SEARCH_TRADEMARKTITLE,
                  CMP7.DOCUMENTNAME as FF_SEARCH_TRADEMARK,
                  CMP.CLASS AS CLASSES,        
                  CMP4.CLASS AS CLASSESFF,        
                  CMP2.NAME             AS PROPRIETER,        
                  CMP2.CODE             AS PROPRIETERCODE,
                  CMP5.CNTRY AS CNTRY,
                  CMP5.STATE AS STATE,
                  CMP5.CITY AS CITY         
                  FROM        
                  (SELECT EXT.PID         AS PIDS,            
                  EXT.FILE_NUMBER       AS FILENUM,
                  EXT.proceeding_assignmenttype       AS FILETYPE,
                  EXT.ATTORNEY          AS ATT,          
                  EXT.FILE_STATUS        AS FILESTA,            
                  CURRENTWS AS WSNAME,         
                  EXT.CLIENT_CODE       AS CLT_CODE,
                  EXT.client_ref       AS CLTREF,
                  EXT.FP_APP_TYPE       AS TMTYPE,
                  EXT.ff_nameofassociate       AS ASSOCNAME,
                  EXT.ff_nameofcountry       AS FFCOUNTRY,
                  EXT.filing_trademarkno   AS APPLICATIONNO,
                  EXT.ff_trademarknumber   AS FF_APPLICATIONNO,
                  EXT.FILING_TRADEMARK AS FILING_TRADEMARKTITLE,
                  EXT.FF_TRADMARK AS FF_TRADEMARKTITLE,
                  EXT.Q_TRADEMARK AS QUERY_TRADEMARKTITLE
                  FROM EXT_TRADEMARK EXT         
                  WHERE CURRENTWSSTATUS = '1'      
                  ORDER BY EXT.FILE_NUMBER DESC
                  )EXTTABLE         
                  LEFT JOIN COMPLEX_TM_CLASS CMP         
                  ON EXTTABLE.PIDS = CMP.PROCESSINSTANCEID                           
                  LEFT JOIN COMPLEX_TM_PROPRIEATOR CMP2         
                  ON EXTTABLE.PIDS = CMP2.PROCESSINSTANCEID     
                  LEFT JOIN COMPLEX_TM_FF_CLASS CMP4         
                  ON EXTTABLE.PIDS = CMP4.PROCESSINSTANCEID         
                  LEFT JOIN FA_CLT_MSTR CMP5
                  ON EXTTABLE.CLT_CODE = CMP5.CLT_COD
                  LEFT JOIN COMPLEX_TM_SEARCH CMP6         
                  ON EXTTABLE.PIDS = CMP6.PID
                  LEFT JOIN COMPLEX_TM_FF_SEARCH CMP7         
                  ON EXTTABLE.PIDS = CMP7.PID order by FILENUM desc
                  ) RES ;

您可以从删除嵌套子查询开始。这完全没有必要。另外,
CURRENTWSSTATUS
列的类型是什么?如果它是一个数字,你不应该使用单引号,因为这将做隐式转换,速度非常慢。如果它是一个VARCHAR栏,你只在上面有数字,考虑改变它的类型。谢谢@ JorgeCampos评论。在CURRENTWSSTATUS列中有字母数字值。直接用表名替换子查询可以提高性能,对吗?。将在这里分享结果。是的,它肯定会改进它。此外,在您的解释计划中没有提到正在使用的索引。为左联接操作中使用的表/列创建索引。这将改进得更好。您可以从删除嵌套子查询开始。这完全没有必要。另外,
CURRENTWSSTATUS
列的类型是什么?如果它是一个数字,你不应该使用单引号,因为这将做隐式转换,速度非常慢。如果它是一个VARCHAR栏,你只在上面有数字,考虑改变它的类型。谢谢@ JorgeCampos评论。在CURRENTWSSTATUS列中有字母数字值。直接用表名替换子查询可以提高性能,对吗?。将在这里分享结果。是的,它肯定会改进它。此外,在您的解释计划中没有提到正在使用的索引。为左联接操作中使用的表/列创建索引。这将改善得更好。