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.
    
    
    
  • 相关阅读:
    机器学习笔记1
    Matlab学习日记之基础知识
    Matlab学习日记之操作界面
    Matlab学习日记之绘图
    Matlab学习日记之数学应用
    Matlab学习日记之映像
    机器学习笔记4
    机器学习笔记2
    在线CHM阅读器(2)——文件提取及关键文件解析
    一步一步打造WebIM(1)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348672.html
Copyright © 2011-2022 走看看