zoukankan      html  css  js  c++  java
  • FILTER 索引扫描多次

    explain plan for SELECT tcnt,
           rn,
           CustomerID,
           CustomerName,
           CustomerType,
           CertType,
           CertID,
           MFCustomerID,
           MCCustomerID,
           ManageOrgName,
           ManageUserName,
           ManageUserID,
           Private,
           Isresure,
           Balance
      FROM (SELECT COUNT(1) OVER() AS tcnt,
                   ROWNUM AS rn,
                   O.CustomerID,
                   O.CustomerName,
                   O.CustomerType,
                   O.CertType,
                   O.CertID,
                   O.MFCustomerID,
                   O.MCCustomerID,
                   GETMANAGEUSERID(O.CustomerID) AS ManageUserID,
                   GETMANAGEORGNAME(O.CustomerID) AS ManageOrgName,
                   GETMANAGEUSERNAME(O.CustomerID) AS ManageUserName,
                   O.Private,
                   O.Isresure,
                   GETCUSTOMERBALANCE3(O.CustomerID) AS Balance
              FROM CUSTOMER_INFO O
             WHERE 1 = 1
               AND (EXISTS (SELECT II.CustomerID
                              FROM IND_INFO II
                             WHERE II.UpdateDate = '2019/10/23'
                               AND II.UpdateUserID = '991735'
                               AND O.CustomerID = II.CustomerID
                            UNION
                            SELECT EI.CustomerID
                              FROM ENT_INFO EI
                             WHERE EI.UpdateDate = '2019/10/23'
                               AND EI.UpdateUserID = '991735'
                               AND O.CustomerID = EI.CustomerID))
               AND NVL(O.belongCorporaTion, '9999') = '9999')
     WHERE rn BETWEEN 1 AND 10;
    select * from table(dbms_xplan.display());
    
    PLAN_TABLE_OUTPUT
    Plan hash value: 2649621158
     
    ---------------------------------------------------------------------------------------------------
    | Id  | Operation                         | Name          | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT                  |               |     1 |  6238 |    28M (25)| 00:18:19 |
    |*  1 |  VIEW                             |               |     1 |  6238 |    28M (25)| 00:18:19 |
    |   2 |   WINDOW BUFFER                   |               |     1 |    84 |    28M (25)| 00:18:19 |
    |   3 |    COUNT                          |               |       |       |            |          |
    |*  4 |     FILTER                        |               |       |       |            |          |
    |*  5 |      TABLE ACCESS FULL            | CUSTOMER_INFO |  3518K|   281M| 18056   (1)| 00:00:01 |
    |   6 |      SORT UNIQUE                  |               |     2 |   120 |     8  (25)| 00:00:01 |
    |   7 |       UNION-ALL                   |               |       |       |            |          |
    |*  8 |        TABLE ACCESS BY INDEX ROWID| IND_INFO      |     1 |    29 |     3   (0)| 00:00:01 |
    |*  9 |         INDEX UNIQUE SCAN         | PK_IND_INFO   |     1 |       |     2   (0)| 00:00:01 |
    |* 10 |        TABLE ACCESS BY INDEX ROWID| ENT_INFO      |     1 |    31 |     3   (0)| 00:00:01 |
    |* 11 |         INDEX UNIQUE SCAN         | PK_ENT_INFO   |     1 |       |     2   (0)| 00:00:01 |
    ---------------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       1 - filter("RN">=1 AND "RN"<=10)
       4 - filter( EXISTS ( (SELECT "II"."CUSTOMERID" FROM "IND_INFO" "II" WHERE 
                  "II"."CUSTOMERID"=:B1 AND "II"."UPDATEUSERID"='991735' AND 
                  "II"."UPDATEDATE"='2019/10/23')UNION (SELECT "EI"."CUSTOMERID" FROM "ENT_INFO" "EI" WHERE 
                  "EI"."CUSTOMERID"=:B2 AND "EI"."UPDATEUSERID"='991735' AND 
                  "EI"."UPDATEDATE"='2019/10/23')))
       5 - filter(NVL("O"."BELONGCORPORATION",'9999')='9999')
       8 - filter("II"."UPDATEUSERID"='991735' AND "II"."UPDATEDATE"='2019/10/23')
       9 - access("II"."CUSTOMERID"=:B1)
      10 - filter("EI"."UPDATEUSERID"='991735' AND "EI"."UPDATEDATE"='2019/10/23')
      11 - access("EI"."CUSTOMERID"=:B1)
    
      
      
    SQL> select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST'));
    
    PLAN_TABLE_OUTPUT
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    SQL_ID	f4zvxt88gr994, child number 0
    -------------------------------------
    SELECT tcnt,	    rn,        CustomerID,	  CustomerName,
    CustomerType,	     CertType,	      CertID,	     MFCustomerID,
      MCCustomerID,        ManageOrgName,	     ManageUserName,
    ManageUserID,	     Private,	     Isresure,	      Balance	FROM
    (SELECT COUNT(1) OVER() AS tcnt,		ROWNUM AS rn,
         O.CustomerID,		  O.CustomerName,
    O.CustomerType, 	       O.CertType,		  O.CertID,
    	   O.MFCustomerID,		  O.MCCustomerID,
     GETMANAGEUSERID(O.CustomerID) AS ManageUserID,
    GETMANAGEORGNAME(O.CustomerID) AS ManageOrgName,
    GETMANAGEUSERNAME(O.CustomerID) AS ManageUserName,
    O.Private,		  O.Isresure,
    GETCUSTOMERBALANCE3(O.CustomerID) AS Balance	       FROM
    CUSTOMER_INFO O 	 WHERE 1 = 1		AND (EXISTS (SELECT
    II.CustomerID				FROM IND_INFO II
    
    Plan hash value: 2649621158
    
    -------------------------------------------------------------------------------------------------------------------------------------------------
    | Id  | Operation			  | Name	  | Starts | E-Rows | A-Rows |	 A-Time   | Buffers | Reads  |	OMem |	1Mem | Used-Mem |
    -------------------------------------------------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT		  |		  |	 1 |	    |	  10 |00:01:01.57 |	 20M|  18924 |	     |	     |		|
    |*  1 |  VIEW				  |		  |	 1 |	  1 |	  10 |00:01:01.57 |	 20M|  18924 |	     |	     |		|
    |   2 |   WINDOW BUFFER 		  |		  |	 1 |	  1 |	  18 |00:01:01.50 |	 20M|  18895 |	4096 |	4096 | 4096  (0)|
    |   3 |    COUNT			  |		  |	 1 |	    |	  18 |00:01:01.50 |	 20M|  18895 |	     |	     |		|
    |*  4 |     FILTER			  |		  |	 1 |	    |	  18 |00:01:01.50 |	 20M|  18895 |	     |	     |		|
    |*  5 |      TABLE ACCESS FULL		  | CUSTOMER_INFO |	 1 |   3518K|	3574K|00:00:02.39 |   66444 |	   0 |	     |	     |		|
    |   6 |      SORT UNIQUE		  |		  |   3574K|	  2 |	  18 |00:00:56.23 |	 20M|  18895 |	2048 |	2048 |		|
    |   7 |       UNION-ALL 		  |		  |   3574K|	    |	  18 |00:00:52.23 |	 20M|  18895 |	     |	     |		|
    |*  8 |        TABLE ACCESS BY INDEX ROWID| IND_INFO	  |   3574K|	  1 |	  17 |00:00:35.99 |	 13M|  18895 |	     |	     |		|
    |*  9 | 	INDEX UNIQUE SCAN	  | PK_IND_INFO   |   3574K|	  1 |	3267K|00:00:13.16 |	 10M|	   1 |	     |	     |		|
    |* 10 |        TABLE ACCESS BY INDEX ROWID| ENT_INFO	  |   3574K|	  1 |	   1 |00:00:08.47 |    6750K|	   0 |	     |	     |		|
    |* 11 | 	INDEX UNIQUE SCAN	  | PK_ENT_INFO   |   3574K|	  1 |	 307K|00:00:05.71 |    6441K|	   0 |	     |	     |		|
    -------------------------------------------------------------------------------------------------------------------------------------------------
    
    Predicate Information (identified by operation id):
    ---------------------------------------------------
    
       1 - filter(("RN">=1 AND "RN"<=10))
       4 - filter( IS NOT NULL)
       5 - filter(NVL("O"."BELONGCORPORATION",'9999')='9999')
       8 - filter(("II"."UPDATEUSERID"='991735' AND "II"."UPDATEDATE"='2019/10/23'))
       9 - access("II"."CUSTOMERID"=:B1)
      10 - filter(("EI"."UPDATEUSERID"='991735' AND "EI"."UPDATEDATE"='2019/10/23'))
      11 - access("EI"."CUSTOMERID"=:B1)
    
    
    48 rows selected.
    
    
    
  • 相关阅读:
    MarkDown 语言简单使用
    开机自启宽带连网设置问题
    JqueryEasyUI EasyLoader
    JqueryEasyUI $.Parser
    FileUpload一键自动上传
    Git读档
    JavaScript typeof运算符和数据类型
    JavaScript 函数 (function)
    Javascript 对象(Object)
    JavaScript 数组(Array)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348672.html
Copyright © 2011-2022 走看看