Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

351

积分

0

好友

8

主题
1#
发表于 2012-5-9 11:32:30 | 查看: 5869| 回复: 10
数据库版本10.2.0.1

SELECT   CASE
               WHEN a.corpareacode = '04'
                  THEN '0401'
               WHEN a.corpareacode = '05'
                  THEN '0402'
               ELSE a.corpareacode || '00'
            END
         || xmcode corpareacode,
         a.corpareaname, a.unitname, a.bankname, a.bankacc, a.xmname,
         NVL (a.beginbmny, 0) + NVL (bbje, 0) hjmny,
         CASE
            WHEN SUBSTR (a.acode, 0, 1) = '1'
               THEN '可动用资金'
         END kyaname,
         CASE
            WHEN SUBSTR (a.acode, 0, 1) = '1'
               THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
         END kymnyb,
         CASE
            WHEN SUBSTR (a.acode, 0, 1) = '2'
               THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
         END hjsxmnyb,
         CASE
            WHEN SUBSTR (a.acode, 0, 1) = '2'
               THEN a.aname
            ELSE '监控户'
         END sxaname,
         CASE
            WHEN SUBSTR (a.acode, 0, 1) = '2'
               THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
            ELSE 0
         END sxmnyb
    FROM v_accid_beginmny a,
         (SELECT   accid.pk_accid pk_accid,
                     SUM (NVL (arap.jfbbje, 0))
                   - SUM (NVL (arap.dfbbje, 0)) bbje,
                     SUM (NVL (arap.jfybje, 0))
                   - SUM (NVL (arap.dfybje, 0)) ybje
              FROM bd_accid accid, v_arap_detail arap
             WHERE accid.pk_accid = arap.accountid
               AND (1 = 1 AND arap.djrq <= '2012-05-06')
          GROUP BY accid.pk_accid) b
   WHERE a.pk_accid = b.pk_accid(+)
     AND (    a.acode IS NOT NULL
          AND NVL (a.beginbmny, 0) + NVL (bbje, 0) <> 0
          AND a.unitcode = '8012501'
         )
ORDER BY a.corpareacode, a.xmname;

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      1.70       1.68          0          5          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch       13     74.28      75.58      22500    4916605          0         173
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total       15     75.99      77.26      22500    4916610          0         173
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 68  
Rows     Row Source Operation
-------  ---------------------------------------------------
    173  SORT ORDER BY (cr=4916605 pr=22500 pw=22500 time=75586105 us)
    173   FILTER  (cr=4916605 pr=22500 pw=22500 time=75586421 us)
    337    HASH JOIN OUTER (cr=4916605 pr=22500 pw=22500 time=75586987 us)
    337     NESTED LOOPS  (cr=31925 pr=0 pw=0 time=156830 us)
   2200      NESTED LOOPS OUTER (cr=26445 pr=0 pw=0 time=380742 us)
   2200       NESTED LOOPS OUTER (cr=19848 pr=0 pw=0 time=283941 us)
   2200        NESTED LOOPS OUTER (cr=13293 pr=0 pw=0 time=189336 us)
   2200         NESTED LOOPS  (cr=6699 pr=0 pw=0 time=92522 us)
   2209          TABLE ACCESS FULL BD_ACCID (cr=99 pr=0 pw=0 time=24379 us)
   2200          TABLE ACCESS BY INDEX ROWID BD_DEFDOC (cr=6600 pr=0 pw=0 time=70961 us)
   2200           INDEX UNIQUE SCAN PK_BD_DEFDOC (cr=4400 pr=0 pw=0 time=32170 us)(object id 77514)
   2198         TABLE ACCESS BY INDEX ROWID BD_ACCBANK (cr=6594 pr=0 pw=0 time=59722 us)
   2198          INDEX UNIQUE SCAN PK_BD_ACCBANK (cr=4396 pr=0 pw=0 time=32171 us)(object id 77260)
   2185        TABLE ACCESS BY INDEX ROWID BD_DEFDOC (cr=6555 pr=0 pw=0 time=58064 us)
   2185         INDEX UNIQUE SCAN PK_BD_DEFDOC (cr=4370 pr=0 pw=0 time=31123 us)(object id 77514)
   2199       TABLE ACCESS BY INDEX ROWID BD_DEFDOC (cr=6597 pr=0 pw=0 time=58002 us)
   2199        INDEX UNIQUE SCAN PK_BD_DEFDOC (cr=4398 pr=0 pw=0 time=31057 us)(object id 77514)
    337      TABLE ACCESS BY INDEX ROWID BD_CORP (cr=5480 pr=0 pw=0 time=55342 us)
   1080       INDEX UNIQUE SCAN PK_BD_CORP (cr=4400 pr=0 pw=0 time=26021 us)(object id 77388)
    996     VIEW  (cr=4884680 pr=22500 pw=22500 time=75190604 us)
    996      HASH GROUP BY (cr=4884680 pr=22500 pw=22500 time=75184616 us)
401632       VIEW  (cr=4884680 pr=22500 pw=22500 time=77050604 us)
401632        HASH UNIQUE (cr=4884680 pr=22500 pw=22500 time=74640805 us)
401632         NESTED LOOPS OUTER (cr=4884680 pr=0 pw=0 time=98351139 us)
401632          HASH JOIN RIGHT OUTER (cr=3679784 pr=0 pw=0 time=81080965 us)
    587           TABLE ACCESS FULL BD_CORP (cr=46 pr=0 pw=0 time=2405 us)
401632           HASH JOIN RIGHT OUTER (cr=3679738 pr=0 pw=0 time=73979441 us)
    195            TABLE ACCESS FULL ARAP_DJLX (cr=23 pr=0 pw=0 time=832 us)
401632            HASH JOIN RIGHT OUTER (cr=3679715 pr=0 pw=0 time=69119777 us)
   2469             TABLE ACCESS FULL BD_COSTSUBJ (cr=53 pr=0 pw=0 time=7460 us)
401632             HASH JOIN  (cr=3679662 pr=0 pw=0 time=64261052 us)
   2209              INDEX FAST FULL SCAN PK_BD_ACCID (cr=17 pr=0 pw=0 time=6687 us)(object id 77265)
401632              NESTED LOOPS OUTER (cr=3679645 pr=0 pw=0 time=59403787 us)
401632               NESTED LOOPS OUTER (cr=2475271 pr=0 pw=0 time=44113796 us)
401632                NESTED LOOPS OUTER (cr=1270384 pr=0 pw=0 time=26843615 us)
401632                 HASH JOIN RIGHT OUTER (cr=65497 pr=0 pw=0 time=9171774 us)
   2209                  TABLE ACCESS FULL BD_ACCID (cr=99 pr=0 pw=0 time=8900 us)
401632                  HASH JOIN  (cr=65398 pr=0 pw=0 time=3955578 us)
209669                   TABLE ACCESS FULL ARAP_DJZB (cr=12632 pr=0 pw=0 time=1048474 us)
404173                   TABLE ACCESS FULL ARAP_DJFB (cr=52766 pr=0 pw=0 time=2436336 us)
401629                 TABLE ACCESS BY INDEX ROWID BD_DEFDOC (cr=1204887 pr=0 pw=0 time=11228348 us)
401629                  INDEX UNIQUE SCAN PK_BD_DEFDOC (cr=803258 pr=0 pw=0 time=6178094 us)(object id 77514)
401629                TABLE ACCESS BY INDEX ROWID BD_DEFDOC (cr=1204887 pr=0 pw=0 time=10700944 us)
401629                 INDEX UNIQUE SCAN PK_BD_DEFDOC (cr=803258 pr=0 pw=0 time=5756133 us)(object id 77514)
401458               TABLE ACCESS BY INDEX ROWID BD_DEFDOC (cr=1204374 pr=0 pw=0 time=10650624 us)
401458                INDEX UNIQUE SCAN PK_BD_DEFDOC (cr=802916 pr=0 pw=0 time=5694073 us)(object id 77514)
401632          TABLE ACCESS BY INDEX ROWID BD_DEFDOC (cr=1204896 pr=0 pw=0 time=13041999 us)
401632           INDEX UNIQUE SCAN PK_BD_DEFDOC (cr=803264 pr=0 pw=0 time=5954173 us)(object id 77514)

Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  library cache lock                              3        0.00          0.00
  SQL*Net message to client                      13        0.00          0.00
  gc cr block 2-way                              11        0.07          0.13
  gc current block 2-way                          5        0.01          0.01
  direct path write temp                       1500        0.00          0.03
  latch: shared pool                             13        0.04          0.05
  gc cr multi block request                       3        0.00          0.00
  gc cr block busy                                1        0.00          0.00
  direct path read temp                        1500        0.00          0.01
  lms flush message acks                          2        0.03          0.03
  SQL*Net message from client                    13        0.00          0.01
********************************************************************************

这条语句执行要20多秒,感觉太慢了,大家帮忙看看。

[ 本帖最后由 gdpr-dba 于 2012-5-9 11:45 编辑 ]
2#
发表于 2012-5-9 14:21:02
根据执行计划,主要是这个视图v_arap_detail 性能比较差,视图的代码和执行计划如下:

  SELECT DISTINCT zb.vouchid, fb.fb_oid, fb.dfbbje AS jfbbje,
                   fb.dfybje AS jfybje, fb.jfbbje AS dfbbje,
                   fb.jfybje AS dfybje, zb.djbh, zb.djdl, djlx.djlxbm,
                   djlx.djlxmc, zb.djkjnd, zb.djkjqj, zb.shrq djrq,
                   SUBSTR (zb.djrq, 0, 4) iyear, SUBSTR (zb.djrq, 6,
                                                         2) imonth, zb.djzt,
                   zb.dwbm, fb.accountid, fb.szxmid,
                   CASE
                      WHEN SUBSTR (subj.costcode, 0, 2) = '07'
                         THEN '0403002'
                      WHEN SUBSTR (subj.costcode, 0, 2) = '08'
                         THEN '0403002'
                      WHEN SUBSTR (subj.costcode, 0, 2) = '20'
                         THEN '0403001'
                      ELSE costcode
                   END costcode,
                   subj.costname, accid.accidcode, accid.beginbmny,
                   accid.beginymny, accidname, defdoc1.pk_defdoc pk_defdoc1,
                   defdoc1.doccode acode, defdoc1.docname aname,
                   defdoc4.pk_defdoc pk_defdoc4, defdoc4.doccode projcode,
                   defdoc4.docname projname, defdoc20.pk_defdoc pk_defdoc20,
                   defdoc20.doccode areacode, defdoc20.docname areaname,
                   corpdef.pk_defdoc pk_corpdefdoc,
                   corpdef.doccode corpareacode, corpdef.docname corpareaname
              FROM arap_djzb zb INNER JOIN arap_djfb fb
                   ON zb.vouchid = fb.vouchid
                   LEFT JOIN arap_djlx djlx
                   ON zb.djdl = djlx.djdl
                 AND zb.dwbm = djlx.dwbm
                 AND zb.djlxbm = djlx.djlxbm
                   LEFT JOIN bd_costsubj subj ON subj.pk_costsubj = fb.szxmid
                   LEFT JOIN bd_accid accid ON accid.pk_accid = fb.accountid
                   LEFT JOIN bd_defdoc defdoc1 ON defdoc1.pk_defdoc =
                                                                    accid.def1
                   LEFT JOIN bd_defdoc defdoc20
                   ON defdoc20.pk_defdoc = accid.def20
                   LEFT JOIN bd_corp corp ON corp.pk_corp = zb.dwbm
                   LEFT JOIN bd_defdoc corpdef ON corpdef.pk_defdoc =
                                                                     corp.def1
                   LEFT JOIN bd_defdoc defdoc4 ON defdoc4.pk_defdoc =
                                                                    accid.def2
             WHERE NVL (zb.dr, 0) = 0
               AND NVL (fb.dr, 0) = 0
               AND zb.djzt = 2
               AND zb.djdl IN ('fk', 'sk', 'fj', 'sj', 'hj')
               AND qcbz = 'N';

Plan
SELECT STATEMENT  ALL_ROWSCost: 107,548  Bytes: 416,026,342  Cardinality: 578,618                                                                                          
        24 HASH UNIQUE  Cost: 107,548  Bytes: 416,026,342  Cardinality: 578,618                                                                                 
                23 HASH JOIN RIGHT OUTER  Cost: 19,844  Bytes: 416,026,342  Cardinality: 578,618                                                                          
                        1 TABLE ACCESS FULL TABLE NC152.ARAP_DJLX Cost: 6  Bytes: 3,496  Cardinality: 184                                                                  
                        22 NESTED LOOPS OUTER  Cost: 19,831  Bytes: 405,032,600  Cardinality: 578,618                                                                  
                                19 HASH JOIN RIGHT OUTER  Cost: 19,822  Bytes: 366,843,812  Cardinality: 578,618                                                         
                                        2 TABLE ACCESS FULL TABLE NC152.BD_CORP Cost: 11  Bytes: 3,522  Cardinality: 587                                                  
                                        18 HASH JOIN RIGHT OUTER  Cost: 19,804  Bytes: 363,372,104  Cardinality: 578,618                                                  
                                                3 TABLE ACCESS FULL TABLE NC152.BD_COSTSUBJ Cost: 13  Bytes: 311,256  Cardinality: 2,358                                          
                                                17 NESTED LOOPS OUTER  Cost: 19,783  Bytes: 286,994,528  Cardinality: 578,618                                          
                                                        14 NESTED LOOPS OUTER  Cost: 19,731  Bytes: 248,805,740  Cardinality: 578,618                                 
                                                                11 NESTED LOOPS OUTER  Cost: 19,678  Bytes: 210,616,952  Cardinality: 578,618                          
                                                                        8 HASH JOIN RIGHT OUTER  Cost: 19,626  Bytes: 172,428,164  Cardinality: 578,618                  
                                                                                4 TABLE ACCESS FULL TABLE NC152.BD_ACCID Cost: 22  Bytes: 143,585  Cardinality: 2,209         
                                                                                7 HASH JOIN  Cost: 19,596  Bytes: 134,817,994  Cardinality: 578,618         
                                                                                        5 TABLE ACCESS FULL TABLE NC152.ARAP_DJZB Cost: 2,817  Bytes: 21,143,000  Cardinality: 211,430  
                                                                                        6 TABLE ACCESS FULL TABLE NC152.ARAP_DJFB Cost: 11,672  Bytes: 76,956,460  Cardinality: 578,620  
                                                                        10 TABLE ACCESS BY INDEX ROWID TABLE NC152.BD_DEFDOC Cost: 1  Bytes: 66  Cardinality: 1                  
                                                                                9 INDEX UNIQUE SCAN INDEX (UNIQUE) NC152.PK_BD_DEFDOC Cost: 1  Cardinality: 1         
                                                                13 TABLE ACCESS BY INDEX ROWID TABLE NC152.BD_DEFDOC Cost: 1  Bytes: 66  Cardinality: 1                          
                                                                        12 INDEX UNIQUE SCAN INDEX (UNIQUE) NC152.PK_BD_DEFDOC Cost: 1  Cardinality: 1                  
                                                        16 TABLE ACCESS BY INDEX ROWID TABLE NC152.BD_DEFDOC Cost: 1  Bytes: 66  Cardinality: 1                                 
                                                                15 INDEX UNIQUE SCAN INDEX (UNIQUE) NC152.PK_BD_DEFDOC Cost: 1  Cardinality: 1                          
                                21 TABLE ACCESS BY INDEX ROWID TABLE NC152.BD_DEFDOC Cost: 1  Bytes: 66  Cardinality: 1                                                         
                                        20 INDEX UNIQUE SCAN INDEX (UNIQUE) NC152.PK_BD_DEFDOC Cost: 1  Cardinality: 1

PS:相关的表都做了分析

回复 只看该作者 道具 举报

3#
发表于 2012-5-9 19:07:40
RUN sql health check  and upload the report

http://www.oracledatabase12g.com ... h-check-script.html

回复 只看该作者 道具 举报

4#
发表于 2012-5-11 17:26:19
刘大,文件已经上传,帮忙看一下。

sqlhc_rac_ncapp1_10.2.0.1.0_1j6n5gtxd19y2_20120511171506.html

77 KB, 下载次数: 628

回复 只看该作者 道具 举报

5#
发表于 2012-5-11 20:28:27
action plan:

alter session set optimizer_index_cost_adj=1;
alter session set optimizer_mode=first_rows;

RUN YOUR STATEMENT


加入 /*+ gather_plan_statstics */


之后  使用一下语句 显示详细的计划

select * from TABLE(dbms_xplan.display_cursor(NULL,NULL,'ALLSTATS LAST'));

回复 只看该作者 道具 举报

6#
发表于 2012-5-12 09:41:30
SQL> show parameter optimizer_mode
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_mode                       string      FIRST_ROWS

SQL> show parameter index
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_caching              integer     0
optimizer_index_cost_adj             integer     1
skip_unusable_indexes                boolean     TRUE

SQL> SELECT /*+ gather_plan_statistics */CASE
  2                 WHEN a.corpareacode = '04'
  3                    THEN '0401'
  4                 WHEN a.corpareacode = '05'
  5                    THEN '0402'
  6                 ELSE a.corpareacode || '00'
  7              END
  8           || xmcode corpareacode,
  9           a.corpareaname, a.unitname, a.bankname, a.bankacc, a.xmname,
10           NVL (a.beginbmny, 0) + NVL (bbje, 0) hjmny,
11           CASE
12              WHEN SUBSTR (a.acode, 0, 1) = '1'
13                 THEN '可动用资金'
14           END kyaname,
15           CASE
16              WHEN SUBSTR (a.acode, 0, 1) = '1'
17                 THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
18           END kymnyb,
19           CASE
20              WHEN SUBSTR (a.acode, 0, 1) = '2'
21                 THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
22           END hjsxmnyb,
23           CASE
24              WHEN SUBSTR (a.acode, 0, 1) = '2'
25                 THEN a.aname
26              ELSE '监控户'
27           END sxaname,
28           CASE
29              WHEN SUBSTR (a.acode, 0, 1) = '2'
30                 THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
31              ELSE 0
32           END sxmnyb
33      FROM v_accid_beginmny a,
34           (SELECT   accid.pk_accid pk_accid,
35                       SUM (NVL (arap.jfbbje, 0))
36                     - SUM (NVL (arap.dfbbje, 0)) bbje,
37                       SUM (NVL (arap.jfybje, 0))
38                     - SUM (NVL (arap.dfybje, 0)) ybje
39                FROM bd_accid accid, v_arap_detail arap
40               WHERE accid.pk_accid = arap.accountid
41                 AND (1 = 1 AND arap.djrq <= '2012-05-11')
42            GROUP BY accid.pk_accid) b
43     WHERE a.pk_accid = b.pk_accid(+)
44       AND (    a.acode IS NOT NULL
45            AND NVL (a.beginbmny, 0) + NVL (bbje, 0) <> 0
46            AND a.pk_defdoc = '0001V5100000000CABMI'
47           )
48  ORDER BY a.corpareacode, a.xmname;

已选择142行。

已用时间:  00: 01: 13.18

还是很慢,执行计划我用附件上传了,用正文提示超过字数限制,刘大帮忙看看,谢谢。

plan.txt

19.28 KB, 下载次数: 675

回复 只看该作者 道具 举报

7#
发表于 2012-5-12 09:46:40
比较奇怪的是这几行:
|  12 |         TABLE ACCESS BY INDEX ROWID        | BD_DEFDOC     |    361 |      1 |    361 |00:00:00.01 |    1083 |       |       |          |                                                      
|* 13 |          INDEX UNIQUE SCAN                 | PK_BD_DEFDOC  |    361 |      1 |    361 |00:00:00.01 |     722 |       |       |          |                                                      
|  14 |        TABLE ACCESS BY INDEX ROWID         | BD_ACCBANK    |    361 |      1 |    360 |00:00:00.01 |    1080 |       |       |          |                                                      
|* 15 |         INDEX UNIQUE SCAN                  | PK_BD_ACCBANK |    361 |      1 |    360 |00:00:00.01 |     720 |       |       |          |                                                      
|  16 |       TABLE ACCESS BY INDEX ROWID          | BD_DEFDOC     |    361 |      1 |    361 |00:00:00.01 |    1083 |       |       |          |                                                      
|* 17 |        INDEX UNIQUE SCAN                   | PK_BD_DEFDOC  |    361 |      1 |    361 |00:00:00.01 |     722 |       |       |          |                                                      
|  18 |      TABLE ACCESS BY INDEX ROWID           | BD_CORP       |    361 |      1 |    245 |00:00:00.01 |     967 |       |       |          |                                                      
|* 19 |       INDEX UNIQUE SCAN                    | PK_BD_CORP    |    361 |      1 |    245 |00:00:00.01 |     722 |       |       |          |

AROW和EROW有出入,为什么PK INDEX UNIQUE SCAN的AROW会大于1呢?

回复 只看该作者 道具 举报

8#
发表于 2012-5-12 10:40:10
重新 收集

BD_DEFDOC   ARAP_DJFB  PK_BD_DEFDOC 这个三个对象的 统计信息包括 histogram ,

再次

alter session set optimizer_index_cost_adj=1;
alter session set optimizer_mode=first_rows;

RUN YOUR STATEMENT


加入 /*+ gather_plan_statstics */


之后  使用一下语句 显示详细的计划

select * from TABLE(dbms_xplan.display_cursor(NULL,NULL,'ALLSTATS LAST'));

回复 只看该作者 道具 举报

9#
发表于 2012-5-12 11:17:06
SQL> show parameter optimizer_mode
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_mode                       string      FIRST_ROWS
SQL> show parameter optimizer_index
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_caching              integer     0
optimizer_index_cost_adj             integer     1

BEGIN
   DBMS_STATS.gather_table_stats
                            (ownname               => 'NC152',
                             tabname               => 'BD_DEFDOC',
                             estimate_percent      => DBMS_STATS.auto_sample_size,
                             method_opt            => 'FOR ALL INDEXED COLUMNS SIZE AUTO',
                             cascade               => TRUE
                            );
END;
BEGIN
   DBMS_STATS.gather_table_stats
                            (ownname               => 'NC152',
                             tabname               => 'ARAP_DJFB',
                             estimate_percent      => DBMS_STATS.auto_sample_size,
                             method_opt            => 'FOR ALL INDEXED COLUMNS SIZE AUTO',
                             cascade               => TRUE
                            );
END;
SQL> SELECT /*+ gather_plan_statistics */CASE
  2                 WHEN a.corpareacode = '04'
  3                    THEN '0401'
  4                 WHEN a.corpareacode = '05'
  5                    THEN '0402'
  6                 ELSE a.corpareacode || '00'
  7              END
  8           || xmcode corpareacode,
  9           a.corpareaname, a.unitname, a.bankname, a.bankacc, a.xmname,
10           NVL (a.beginbmny, 0) + NVL (bbje, 0) hjmny,
11           CASE
12              WHEN SUBSTR (a.acode, 0, 1) = '1'
13                 THEN '可动用资金'
14           END kyaname,
15           CASE
16              WHEN SUBSTR (a.acode, 0, 1) = '1'
17                 THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
18           END kymnyb,
19           CASE
20              WHEN SUBSTR (a.acode, 0, 1) = '2'
21                 THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
22           END hjsxmnyb,
23           CASE
24              WHEN SUBSTR (a.acode, 0, 1) = '2'
25                 THEN a.aname
26              ELSE '监控户'
27           END sxaname,
28           CASE
29              WHEN SUBSTR (a.acode, 0, 1) = '2'
30                 THEN NVL (a.beginbmny, 0) + NVL (bbje, 0)
31              ELSE 0
32           END sxmnyb
33      FROM v_accid_beginmny a,
34           (SELECT   accid.pk_accid pk_accid,
35                       SUM (NVL (arap.jfbbje, 0))
36                     - SUM (NVL (arap.dfbbje, 0)) bbje,
37                       SUM (NVL (arap.jfybje, 0))
38                     - SUM (NVL (arap.dfybje, 0)) ybje
39                FROM bd_accid accid, v_arap_detail arap
40               WHERE accid.pk_accid = arap.accountid
41                 AND (1 = 1 AND arap.djrq <= '2012-05-11')
42            GROUP BY accid.pk_accid) b
43     WHERE a.pk_accid = b.pk_accid(+)
44       AND (    a.acode IS NOT NULL
45            AND NVL (a.beginbmny, 0) + NVL (bbje, 0) <> 0
46            AND a.pk_defdoc = '0001V5100000000CABMI'
47           )
48  ORDER BY a.corpareacode, a.xmname;

已选择142行。
已用时间:  00: 01: 34.49

[ 本帖最后由 gdpr-dba 于 2012-5-12 11:18 编辑 ]

sqlstat.txt

19.27 KB, 下载次数: 661

回复 只看该作者 道具 举报

10#
发表于 2012-5-12 13:44:14
NC152.ARAP_DJFB         Table contains column(s) with outdated CBO statistics for up to 1575 day(s).
               NC152.ARAP_DJLX         Table contains column(s) with outdated CBO statistics for up to 1575 day(s).
        NC152.ARAP_DJZB         Table contains column(s) with outdated CBO statistics for up to 1575 day(s).
         ........


这个SQL 中绝大多数表的 统计信息过期 , 尝试收集  NC152 schema 下的所有对象的信息

对于         NC152.ARAP_DJFB         NC152.ARAP_DJZB  NC152.ARAP_DJLX  NC152.ARAP_DJZB  收集 100%的 sample percent 并 采集 histogram

可以QQ 远程我

回复 只看该作者 道具 举报

11#
发表于 2012-5-12 16:16:19
刘大,收集 100%的 sample percent 并 采集 histogram是不是用这条语句:
BEGIN
   DBMS_STATS.gather_table_stats
                            (ownname               => 'NC152',
                             tabname               => 'BD_DEFDOC',
                             estimate_percent      => 100,
                             method_opt            => 'FOR ALL INDEXED COLUMNS SIZE AUTO',
                             cascade               => TRUE
                            );
END;

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 14:32 , Processed in 0.057723 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569