查看: 4475|回复: 18

[FAQ] sql 优化之千奇百怪

[复制链接]
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:43:35优秀写手
日期:2013-12-18 09:29:14
发表于 2011-12-2 10:20 | 显示全部楼层 |阅读模式
写在前面的废话:
现在林子大了。什么数据库都有,
有个公司使用 物理dg 来进行查询。策略是晚上进行日志aplly ,白天只读打开。然后开发通过物理dg来进行查询。之前一直很正常。直到有个sql的出现:

Select b.Uppercomcode As 机构代码, (Select Comcname From Report.Viewdcompany21100 Where Comcode = b.Uppercomcode) As 机构名称,a.Comcode As 团队代码, b.Comcname As 团队名称, a.Handler1code As 归属业务员代码, c.Username As 归属业务员名称, a.Agentcode As 代理人代码,d.Agentname As 代理人名称, a.Riskcode As 险种代码, e.Riskcname As 险种名称, a.Insuredcode As 被保险人代码, a.Insuredname As 被保险人姓名,a.Certitype 单证类型, a.Policyno As 保单号,
  Case
    When a.Certitype = 'E' Then
      a.Certino
       Else
       Null
       End As 批单号, a.Serialno As 计划缴费期数, a.Payreftimes As 期次,
       a.Startdate As 起保日期, a.Enddate As 终保日期,
       a.Underwritedate As 核保核批日期, a.Validdate As 生效日期,
       Round(a.Planfee * g.Exchrate, 2) As 保费金额, a.Plandate 应缴费日期,
       Decode(a.Certitype, 'P',
       (Case
        When a.Startdate < a.Underwritedate Then
                  To_Date(:statistics_time, 'yyyymmdd') - a.Underwritedate + 1
                 Else
                  To_Date(:statistics_time, 'yyyymmdd') - a.Startdate + 1
               End),
              (Case
                 When a.Validdate < a.Underwritedate Then
                  To_Date(:statistics_time, 'yyyymmdd') - a.Underwritedate + 1
                 Else
                  To_Date(:statistics_time, 'yyyymmdd') - a.Validdate + 1
               End)) 账龄
From Report.Viewplanfeedetail21100 a, Report.Viewdcompany21100 b, Report.Viewduser21100 c,
Report.Viewdagent21100 d,Report.Viewdrisk21100 e, Report.Viewdexch21100 g,Report.ViewJAccmainvoucher21100 f
Where a.Comcode = b.Comcode And a.Handler1code = c.Usercode
And a.Agentcode = d.Agentcode
And a.Riskcode = e.Riskcode
And a.Currency1 = g.Basecurrency
And g.Exchcurrency = 'CNY'
and a.comcode !='2119900601'
And f.Voucherdate >= g.Exchdate And Not Exists
(Select 1 From Report.Viewdexch21100 Gg Where a.Currency1 = Gg.Basecurrency And f.Voucherdate >= Gg.Exchdate
       And Gg.Exchcurrency = 'CNY' And Gg.Exchdate > g.Exchdate)
       And a.Centercode = f.Centercode And a.Voucherno = f.Voucherno
       And a.Comcode In
       (Select Comcode From Report.Viewdcompany21100
          Start With Comcode = rg_code
          Connect By Prior Comcode = Uppercomcode And Comcode <> Uppercomcode) And Not Exists
(Select 1 From (Select Policyno, Sum(Planfee) Planfee
From Report.Viewplanfeedetail21100 Where comcode !='2119900601' Group By Policyno) Aa
       Where a.Policyno = Aa.Policyno And Aa.Planfee = 0);

用户在主库上进行查询速度很快,执行计划如下
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:43:35优秀写手
日期:2013-12-18 09:29:14
 楼主| 发表于 2011-12-2 10:20 | 显示全部楼层
SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3867963052

------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                               | Name                         | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                        |                              |     1 |   463 |   171   (1)| 00:00:03 |
|*  1 |  FILTER                                 |                              |       |       |            |          |
|   2 |   TABLE ACCESS BY INDEX ROWID           | PRPDCOMPANY                  |     1 |    40 |     2   (0)| 00:00:01 |
|*  3 |    INDEX UNIQUE SCAN                    | PK_PRPDCOMPANY               |     1 |       |     1   (0)| 00:00:01 |
|*  4 |   TABLE ACCESS FULL                     | PRPDCOMPANY                  |     1 |    22 |     3   (0)| 00:00:01 |
|*  5 |  FILTER                                 |                              |       |       |            |          |
|*  6 |   FILTER                                |                              |       |       |            |          |
|*  7 |    HASH JOIN SEMI                       |                              |     1 |   463 |   164   (1)| 00:00:02 |
|   8 |     TABLE ACCESS BY INDEX ROWID         | PRPDEXCH                     |     1 |    21 |     2   (0)| 00:00:01 |
|   9 |      NESTED LOOPS                       |                              |     1 |   456 |    43   (0)| 00:00:01 |
|  10 |       NESTED LOOPS                      |                              |     1 |   435 |    41   (0)| 00:00:01 |
|  11 |        NESTED LOOPS SEMI                |                              |     1 |   409 |     8   (0)| 00:00:01 |
|  12 |         NESTED LOOPS SEMI               |                              |     1 |   387 |     7   (0)| 00:00:01 |
|  13 |          NESTED LOOPS                   |                              |     1 |   365 |     6   (0)| 00:00:01 |
|  14 |           NESTED LOOPS                  |                              |     1 |   336 |     5   (0)| 00:00:01 |
|  15 |            NESTED LOOPS                 |                              |     1 |   304 |     4   (0)| 00:00:01 |
|  16 |             NESTED LOOPS                |                              |     1 |   280 |     3   (0)| 00:00:01 |
|  17 |              TABLE ACCESS BY INDEX ROWID| PRPJPLANFEEDETAIL            |     1 |   229 |     2   (0)| 00:00:01 |
|* 18 |               INDEX RANGE SCAN          | IDX_PLANFEEDETAIL_COMCODE    |     1 |       |     2   (0)| 00:00:01 |
|  19 |              TABLE ACCESS BY INDEX ROWID| PRPDCOMPANY                  |     1 |    51 |     1   (0)| 00:00:01 |
|* 20 |               INDEX UNIQUE SCAN         | PK_PRPDCOMPANY               |     1 |       |     0   (0)| 00:00:01 |
|  21 |             TABLE ACCESS BY INDEX ROWID | PRPDRISK                     |     1 |    24 |     1   (0)| 00:00:01 |
|* 22 |              INDEX UNIQUE SCAN          | PK_PRPDRISK                  |     1 |       |     0   (0)| 00:00:01 |
|  23 |            TABLE ACCESS BY INDEX ROWID  | PRPDAGENT                    |     1 |    32 |     1   (0)| 00:00:01 |
|* 24 |             INDEX UNIQUE SCAN           | PK_DAGENT                    |     1 |       |     0   (0)| 00:00:01 |
|  25 |           TABLE ACCESS BY INDEX ROWID   | PRPDUSER                     |     1 |    29 |     1   (0)| 00:00:01 |
|* 26 |            INDEX UNIQUE SCAN            | PK_PRPDUSER                  |     1 |       |     0   (0)| 00:00:01 |
|* 27 |          TABLE ACCESS BY INDEX ROWID    | PRPDCOMPANY                  |    18 |   396 |     1   (0)| 00:00:01 |
|* 28 |           INDEX UNIQUE SCAN             | PK_PRPDCOMPANY               |     1 |       |     0   (0)| 00:00:01 |
|* 29 |         TABLE ACCESS BY INDEX ROWID     | PRPDCOMPANY                  |     6 |   132 |     1   (0)| 00:00:01 |
|* 30 |          INDEX UNIQUE SCAN              | PK_PRPDCOMPANY               |     1 |       |     0   (0)| 00:00:01 |
|* 31 |        TABLE ACCESS BY INDEX ROWID      | ACCMAINVOUCHER               |     1 |    26 |    33   (0)| 00:00:01 |
|* 32 |         INDEX RANGE SCAN                | IDX_ACCMANVCHER_VOUCHERNO    |    32 |       |     2   (0)| 00:00:01 |
|* 33 |       INDEX RANGE SCAN                  | PK_DEXCH                     |     1 |       |     1   (0)| 00:00:01 |
|* 34 |        FILTER                           |                              |       |       |            |          |
|* 35 |         INDEX RANGE SCAN                | PK_DEXCH                     |     1 |    16 |     2   (0)| 00:00:01 |
|* 36 |     VIEW                                | VW_NSO_1                     |     7 |    49 |   120   (0)| 00:00:02 |
|* 37 |      CONNECT BY WITH FILTERING          |                              |       |       |            |          |
|* 38 |       FILTER                            |                              |       |       |            |          |
|  39 |        TABLE ACCESS BY INDEX ROWID      | PRPDCOMPANY                  |     1 |    66 |     2   (0)| 00:00:01 |
|* 40 |         INDEX UNIQUE SCAN               | PK_PRPDCOMPANY               |     1 |       |     1   (0)| 00:00:01 |
|* 41 |        TABLE ACCESS FULL                | PRPDCOMPANY                  |   148 |  4884 |   113   (0)| 00:00:02 |
|* 42 |       FILTER                            |                              |       |       |            |          |
|  43 |        NESTED LOOPS                     |                              |       |       |            |          |
|  44 |         CONNECT BY PUMP                 |                              |       |       |            |          |
|* 45 |         TABLE ACCESS BY INDEX ROWID     | PRPDCOMPANY                  |     7 |   154 |     7   (0)| 00:00:01 |
|* 46 |          INDEX RANGE SCAN               | IDX_PRPDCOMPANY_UPPERCOMCODE |     7 |       |     1   (0)| 00:00:01 |
|* 47 |        TABLE ACCESS FULL                | PRPDCOMPANY                  |   148 |  3256 |   113   (0)| 00:00:02 |
|* 48 |    TABLE ACCESS FULL                    | PRPDCOMPANY                  |     1 |    22 |     3   (0)| 00:00:01 |
|* 49 |   FILTER                                |                              |       |       |            |          |
|  50 |    SORT GROUP BY NOSORT                 |                              |     1 |    33 |     2   (0)| 00:00:01 |
|* 51 |     TABLE ACCESS BY INDEX ROWID         | PRPJPLANFEEDETAIL            |     1 |    33 |     2   (0)| 00:00:01 |
|* 52 |      INDEX RANGE SCAN                   | IDX_PLANFEEDETAIL_POLICYNO   |     1 |       |     2   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter( EXISTS (SELECT /*+ */ 0 FROM "BUSINESS"."PRPDCOMPANY" "PRPDCOMPANY" WHERE
              "ACNTUNIT"='2110000000'))
   3 - access("COMCODE"=:B1)
   4 - filter("ACNTUNIT"='2110000000')
   5 - filter( NOT EXISTS (SELECT /*+ */ 0 FROM "BUSINESS"."PRPJPLANFEEDETAIL" "PRPJPLANFEEDETAIL" WHERE
              "POLICYNO"=:B1 AND "COMCODE" LIKE '211%' AND "COMCODE"<>'2119900601' GROUP BY "POLICYNO" HAVING
              SUM("PLANFEE")=0))
   6 - filter( EXISTS (SELECT /*+ */ 0 FROM "BUSINESS"."PRPDCOMPANY" "PRPDCOMPANY" WHERE
              "ACNTUNIT"='2110000000'))
   7 - access("COMCODE"="$nso_col_1")
  18 - access("COMCODE" LIKE '211%')
       filter("COMCODE" LIKE '211%' AND "COMCODE"<>'2119900601')
  20 - access("COMCODE"="COMCODE")
       filter("COMCODE" LIKE '211%' AND "COMCODE"<>'2119900601')
  22 - access("RISKCODE"="RISKCODE")
  24 - access("AGENTCODE"="AGENTCODE")
  26 - access("HANDLER1CODE"="USERCODE")
  27 - filter("ACNTUNIT"='2110000000')
  28 - access("COMCODE"="PRPDAGENT"."COMCODE")
  29 - filter("ACNTUNIT"='2110000000')
  30 - access("COMCODE"="PRPDUSER"."COMCODE")
  31 - filter(SUBSTR("CENTERCODE",1,3)='211' AND SUBSTR("SYS_ALIAS_5"."CENTERCODE",1,5)=SUBSTR("SYS_ALIAS_3"."CE
              NTERCODE",1,5) AND SUBSTR("SYS_ALIAS_5"."CENTERCODE",1,3)=SUBSTR("SYS_ALIAS_3"."CENTERCODE",1,3) AND
              "CENTERCODE"="CENTERCODE")
  32 - access("VOUCHERNO"="VOUCHERNO")
  33 - access("CURRENCY1"="BASECURRENCY" AND "EXCHCURRENCY"='CNY' AND "VOUCHERDATE">="EXCHDATE")
       filter("EXCHCURRENCY"='CNY' AND "CURRENCY1"="BASECURRENCY" AND  NOT EXISTS (SELECT /*+ */ 0 FROM
              "BUSINESS"."PRPDEXCH" "PRPDEXCH" WHERE :B1>:B2 AND "EXCHDATE"<=:B3 AND "EXCHDATE">:B4 AND "BASECURRENCY"=:B5
              AND "EXCHCURRENCY"='CNY'))
  34 - filter(:B1>:B2)
  35 - access("EXCHDATE">:B1 AND "BASECURRENCY"=:B2 AND "EXCHCURRENCY"='CNY' AND "EXCHDATE"<=:B3)
       filter("BASECURRENCY"=:B1 AND "EXCHCURRENCY"='CNY')
  36 - filter("$nso_col_1"<>'2119900601' AND "$nso_col_1" LIKE '211%')
  37 - access("UPPERCOMCODE"=PRIOR "COMCODE")
       filter("COMCODE"<>"UPPERCOMCODE")
  38 - filter( EXISTS (SELECT /*+ */ 0 FROM "BUSINESS"."PRPDCOMPANY" "PRPDCOMPANY" WHERE
              "ACNTUNIT"='2110000000'))
  40 - access("COMCODE"=:ORG_CODE)
  41 - filter("ACNTUNIT"='2110000000')
  42 - filter( EXISTS (SELECT /*+ */ 0 FROM "BUSINESS"."PRPDCOMPANY" "PRPDCOMPANY" WHERE
              "ACNTUNIT"='2110000000'))
  45 - filter("COMCODE"<>"UPPERCOMCODE")
  46 - access("UPPERCOMCODE"=PRIOR "COMCODE")
  47 - filter("ACNTUNIT"='2110000000')
  48 - filter("ACNTUNIT"='2110000000')
  49 - filter(SUM("PLANFEE")=0)
  51 - filter("COMCODE" LIKE '211%' AND "COMCODE"<>'2119900601')
  52 - access("POLICYNO"=:B1)

111 rows selected.

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:43:35优秀写手
日期:2013-12-18 09:29:14
 楼主| 发表于 2011-12-2 10:21 | 显示全部楼层
Elapsed: 00:02:04.97

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:43:35优秀写手
日期:2013-12-18 09:29:14
 楼主| 发表于 2011-12-2 10:23 | 显示全部楼层
速度很快。2分多钟。在物理背库上执行则 一天也不出结果
SQL>  select * from table(dbms_xplan.display_cursor('99syh5zgba70f',NULL,'allstats'));

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL_ID  99syh5zgba70f, child number 0
-------------------------------------
Select b.Uppercomcode As 机构代码, (Select Comcname From Report.Viewdcompany21100 Where Comcode =
b.Uppercomcode) As 机构名称,a.Comcode As 团队代码, b.Comcname As 团队名称, a.Handler1code As 归属业务员代码, c.Username As
归属业务员名称, a.Agentcode As 代理人代码,d.Agentname As 代理人名称, a.Riskcode As 险种代码, e.Riskcname As 险种名称, a.Insuredcode
As 被保险人代码, a.Insuredname As 被保险人姓名,a.Certitype 单证类型, a.Policyno As 保单号,   Case     When a.Certitype = 'E'
Then       a.Certino        Else        Null        End As 批单号, a.Serialno As 计划缴费期数, a.Payreftimes As 期次,
      a.Startdate As 起保日期, a.Enddate As 终保日期,        a.Underwritedate As 核保核批日期, a.Validdate As 生效日期,
Round(a.Planfee * g.Exchrate, 2) As 保费金额, a.Plandate 应缴费日期,        Decode(a.Certitype, 'P',        (Case
      When a.Startdate < a.Underwritedate Then                   To_Date(:statistics_time, 'yyyymmdd') -
a.Underwritedate + 1                  Else

Plan hash value: 1648616083

--------------------------------------------------------------------------------------------------------------------
| Id  | Operation                               | Name                         | E-Rows |  OMem |  1Mem |  O/1/M   |
--------------------------------------------------------------------------------------------------------------------
|*  1 |  FILTER                                 |                              |        |       |       |          |
|   2 |   TABLE ACCESS BY INDEX ROWID           | PRPDCOMPANY                  |      1 |       |       |          |
|*  3 |    INDEX UNIQUE SCAN                    | PK_PRPDCOMPANY               |      1 |       |       |          |
|*  4 |   TABLE ACCESS FULL                     | PRPDCOMPANY                  |      1 |       |       |          |
|*  5 |  FILTER                                 |                              |        |       |       |          |
|*  6 |   FILTER                                |                              |        |       |       |          |
|*  7 |    HASH JOIN SEMI                       |                              |      1 |   693K|   693K|          |
|   8 |     TABLE ACCESS BY INDEX ROWID         | PRPDEXCH                     |      1 |       |       |          |
|   9 |      NESTED LOOPS                       |                              |      1 |       |       |          |
|  10 |       NESTED LOOPS                      |                              |      1 |       |       |          |
|  11 |        NESTED LOOPS SEMI                |                              |      1 |       |       |          |
|  12 |         NESTED LOOPS SEMI               |                              |      1 |       |       |          |
|  13 |          NESTED LOOPS                   |                              |      1 |       |       |          |
|  14 |           NESTED LOOPS                  |                              |      1 |       |       |          |
|  15 |            NESTED LOOPS                 |                              |      1 |       |       |          |
|  16 |             NESTED LOOPS                |                              |      1 |       |       |          |
|  17 |              TABLE ACCESS BY INDEX ROWID| PRPJPLANFEEDETAIL            |      1 |       |       |          |
|* 18 |               INDEX RANGE SCAN          | IDX_PLANFEEDETAIL_COMCODE    |      1 |       |       |          |
|  19 |              TABLE ACCESS BY INDEX ROWID| PRPDCOMPANY                  |      1 |       |       |          |
|* 20 |               INDEX UNIQUE SCAN         | PK_PRPDCOMPANY               |      1 |       |       |          |
|  21 |             TABLE ACCESS BY INDEX ROWID | PRPDRISK                     |      1 |       |       |          |
|* 22 |              INDEX UNIQUE SCAN          | PK_PRPDRISK                  |      1 |       |       |          |
|  23 |            TABLE ACCESS BY INDEX ROWID  | PRPDAGENT                    |      1 |       |       |          |
|* 24 |             INDEX UNIQUE SCAN           | PK_DAGENT                    |      1 |       |       |          |
|  25 |           TABLE ACCESS BY INDEX ROWID   | PRPDUSER                     |      1 |       |       |          |
|* 26 |            INDEX UNIQUE SCAN            | PK_PRPDUSER                  |      1 |       |       |          |
|* 27 |          TABLE ACCESS BY INDEX ROWID    | PRPDCOMPANY                  |     18 |       |       |          |
|* 28 |           INDEX UNIQUE SCAN             | PK_PRPDCOMPANY               |      1 |       |       |          |
|* 29 |         TABLE ACCESS BY INDEX ROWID     | PRPDCOMPANY                  |      6 |       |       |          |
|* 30 |          INDEX UNIQUE SCAN              | PK_PRPDCOMPANY               |      1 |       |       |          |
|* 31 |        TABLE ACCESS BY INDEX ROWID      | ACCMAINVOUCHER               |      1 |       |       |          |
|* 32 |         INDEX RANGE SCAN                | IDX_ACCMANVCHER_CENTERCODE   |      1 |       |       |          |
|* 33 |       INDEX RANGE SCAN                  | PK_DEXCH                     |      1 |       |       |          |
|* 34 |        FILTER                           |                              |        |       |       |          |
|* 35 |         INDEX RANGE SCAN                | PK_DEXCH                     |      1 |       |       |          |
|* 36 |     VIEW                                | VW_NSO_1                     |      7 |       |       |          |
|* 37 |      CONNECT BY WITH FILTERING          |                              |        | 73728 | 73728 |          |
|* 38 |       FILTER                            |                              |        |       |       |          |
|  39 |        TABLE ACCESS BY INDEX ROWID      | PRPDCOMPANY                  |      1 |       |       |          |
|* 40 |         INDEX UNIQUE SCAN               | PK_PRPDCOMPANY               |      1 |       |       |          |
|* 41 |        TABLE ACCESS FULL                | PRPDCOMPANY                  |    148 |       |       |          |
|* 42 |       FILTER                            |                              |        |       |       |          |
|  43 |        NESTED LOOPS                     |                              |        |       |       |          |
|  44 |         CONNECT BY PUMP                 |                              |        |       |       |          |
|* 45 |         TABLE ACCESS BY INDEX ROWID     | PRPDCOMPANY                  |      7 |       |       |          |
|* 46 |          INDEX RANGE SCAN               | IDX_PRPDCOMPANY_UPPERCOMCODE |      7 |       |       |          |
|* 47 |        TABLE ACCESS FULL                | PRPDCOMPANY                  |    148 |       |       |          |
|* 48 |    TABLE ACCESS FULL                    | PRPDCOMPANY                  |      1 |       |       |          |
|* 49 |   FILTER                                |                              |        |       |       |          |
|  50 |    SORT GROUP BY NOSORT                 |                              |      1 |       |       |          |
|* 51 |     TABLE ACCESS BY INDEX ROWID         | PRPJPLANFEEDETAIL            |      1 |       |       |          |
|* 52 |      INDEX RANGE SCAN                   | IDX_PLANFEEDETAIL_POLICYNO   |      1 |       |       |          |
--------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter( IS NOT NULL)
   3 - access("COMCODE"=:B1)
   4 - filter("ACNTUNIT"='2110000000')
   5 - filter( IS NULL)
   6 - filter( IS NOT NULL)
   7 - access("COMCODE"="$nso_col_1")
  18 - access("COMCODE" LIKE '211%')
       filter(("COMCODE" LIKE '211%' AND "COMCODE"<>'2119900601'))
  20 - access("COMCODE"="COMCODE")
       filter(("COMCODE" LIKE '211%' AND "COMCODE"<>'2119900601'))
  22 - access("RISKCODE"="RISKCODE")
  24 - access("AGENTCODE"="AGENTCODE")
  26 - access("HANDLER1CODE"="USERCODE")
  27 - filter("ACNTUNIT"='2110000000')
  28 - access("COMCODE"="PRPDAGENT"."COMCODE")
  29 - filter("ACNTUNIT"='2110000000')
  30 - access("COMCODE"="PRPDUSER"."COMCODE")
  31 - filter("VOUCHERNO"="VOUCHERNO")
  32 - access("CENTERCODE"="CENTERCODE")
       filter(SUBSTR("CENTERCODE",1,3)='211')
  33 - access("CURRENCY1"="BASECURRENCY" AND "EXCHCURRENCY"='CNY' AND "VOUCHERDATE">="EXCHDATE")
       filter(("EXCHCURRENCY"='CNY' AND "CURRENCY1"="BASECURRENCY" AND  IS NULL))
  34 - filter(:B1>:B2)
  35 - access("EXCHDATE">:B1 AND "BASECURRENCY"=:B2 AND "EXCHCURRENCY"='CNY' AND "EXCHDATE"<=:B3)
       filter(("BASECURRENCY"=:B1 AND "EXCHCURRENCY"='CNY'))
  36 - filter(("$nso_col_1"<>'2119900601' AND "$nso_col_1" LIKE '211%'))
  37 - access("UPPERCOMCODE"=PRIOR NULL)
  38 - filter( IS NOT NULL)
  40 - access("COMCODE"=:ORG_CODE)
  41 - filter("ACNTUNIT"='2110000000')
  42 - filter( IS NOT NULL)
  45 - filter("COMCODE"<>"UPPERCOMCODE")
  46 - access("UPPERCOMCODE"=PRIOR NULL)
  47 - filter("ACNTUNIT"='2110000000')
  48 - filter("ACNTUNIT"='2110000000')
  49 - filter(SUM("PLANFEE")=0)
  51 - filter(("COMCODE" LIKE '211%' AND "COMCODE"<>'2119900601'))
  52 - access("POLICYNO"=:B1)

Note
-----
   - Warning: basic plan statistics not available. These are only collected when:
       * hint 'gather_plan_statistics' is used for the statement or
       * parameter 'statistics_level' is set to 'ALL', at session or system level

使用道具 举报

回复
论坛徽章:
188
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
发表于 2011-12-2 10:36 | 显示全部楼层
Plan hash value: 1648616083

Plan hash value: 3867963052

执行计划不一样吗?
对比oracle参数看看。

使用道具 举报

回复
论坛徽章:
311
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
发表于 2011-12-2 11:01 | 显示全部楼层
采集一下SYSTEM的信息,

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:43:35优秀写手
日期:2013-12-18 09:29:14
 楼主| 发表于 2011-12-2 11:20 | 显示全部楼层
这个问题困扰很久了。物理dg数据字典也是readonly的,开始想导出 schmea 的统计信息。然后在备库导入。但是很快否定了。因为导入不了。因为是物理dg,参数都是一样的。我这个之前查询过。关键是为什么主库和背库的执行计划会差别那么大。怎么解决。

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:43:35优秀写手
日期:2013-12-18 09:29:14
 楼主| 发表于 2011-12-2 11:21 | 显示全部楼层
ZALBB 发表于 2011-12-2 11:01
采集一下SYSTEM的信息,

您是指在主库采集? 这个采集出来有什么用呢?

使用道具 举报

回复
论坛徽章:
18
紫蛋头
日期:2011-07-25 08:06:53咸鸭蛋
日期:2011-12-27 11:35:38鲜花蛋
日期:2012-01-11 11:08:36奥运会纪念徽章:射击
日期:2012-09-11 08:56:18奥运会纪念徽章:体操
日期:2012-10-25 09:07:51紫蛋头
日期:2012-12-10 13:46:51灰彻蛋
日期:2013-01-28 14:23:202013年新春福章
日期:2013-02-25 14:51:24
发表于 2011-12-2 11:31 | 显示全部楼层
执行计划完全不一样,从库里面有个很大的hash join...

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:43:35优秀写手
日期:2013-12-18 09:29:14
 楼主| 发表于 2011-12-2 13:51 | 显示全部楼层
jdw618 发表于 2011-12-2 11:31
执行计划完全不一样,从库里面有个很大的hash join...

能说得更清楚点么? 哪一行。怎么在从库中调优呢?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表