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

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

0

积分

1

好友

29

主题
1#
发表于 2013-1-21 10:24:45 | 查看: 3762| 回复: 6
数据库:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

现在有3张表,数据量都在100万左右,我通过select from group by找出每张表都有四五列左右适合建位图索引,表空间不是很充足,从节省表空间的角度我是对每一列建位图索引好还是把每张表,适合建的所有列,结合起来进能更节省一些空间?

找出来觉得适合的列都是像vat_tax_id
org_id
uom_code
accounting_rule_id
line_type
这些不经常增删改的列,而且返回结果最多几十行的
7#
发表于 2013-1-21 11:19:55
本帖最后由 张沛 于 2013-1-21 11:25 编辑

一条回复贴不全,分的两次,例如9,21,42,46中org_id我觉得就比较适合建位图索引,不知道对不对?
  1. SQL> set lines 200
  2. SQL> select vat_tax_id,org_id,uom_code,accounting_rule_id,line_type
  3.   2  from ra_customer_trx_lines_all
  4.   3  group by vat_tax_id,org_id,uom_code,accounting_rule_id,line_type;

  5. VAT_TAX_ID     ORG_ID UOM_CO ACCOUNTING_RULE_ID LINE_TYPE
  6. ---------- ---------- ------ ------------------ ------------------------------
  7. --------
  8.                   136 PCS                       LINE
  9.      10021        136 PCS                       LINE
  10.      10023        136                           TAX
  11.      10003        103                           TAX
  12.      10007        103 PCS                       LINE
  13.                   136                           LINE
  14.      10023        136 PCS                       LINE
  15.      10063        136 PCS                       LINE
  16.      10023        136                           LINE
  17.      10005        103                           TAX
  18.      10003        103 PCS                       LINE

  19. VAT_TAX_ID     ORG_ID UOM_CO ACCOUNTING_RULE_ID LINE_TYPE
  20. ---------- ---------- ------ ------------------ ------------------------------
  21. --------
  22.      10009        104 PCS                       LINE
  23.      10021        136                           LINE
  24.      10063        136                           TAX
  25.      10101        103                           LINE
  26.                   103 PCS                       LINE
  27.                   104                           LINE
  28.      10005        103 PCS                       LINE
  29.      10101        103                           TAX
  30.      10003        103                           LINE
  31.      10007        103                           TAX
  32.      10009        104                           TAX

  33. VAT_TAX_ID     ORG_ID UOM_CO ACCOUNTING_RULE_ID LINE_TYPE
  34. ---------- ---------- ------ ------------------ ------------------------------
  35. --------
  36.      10063        136                           LINE
  37.                   103                           LINE
  38.      10021        136                           TAX
  39.      10007        103                           LINE

  40. 已选择26行。
复制代码

回复 只看该作者 道具 举报

6#
发表于 2013-1-21 11:10:47
  1. 61        Predicate Information (identified by operation id):
  2. 62        ---------------------------------------------------
  3. 63         
  4. 64           1 - access("UOM_CODE"(+)="CTL"."UOM_CODE")
  5. 65           2 - filter("LANGUAGE"(+)=USERENV('LANG'))
  6. 66           6 - access("LV"."LOOKUP_CODE"(+)="CTL"."LINE_TYPE")
  7. 67           8 - access("LV"."LOOKUP_TYPE"(+)='STD_LINE_TYPE' AND "LV"."VIEW_APPLICATION_ID"(+)=222 AND
  8. 68                      "LV"."SECURITY_GROUP_ID"(+)=0 AND "LV"."LANGUAGE"(+)=USERENV('LANG'))
  9. 69               filter("LV"."LANGUAGE"(+)=USERENV('LANG') AND "LV"."SECURITY_GROUP_ID"(+)=0)
  10. 70           9 - access("AVT"."VAT_TAX_ID"(+)="CTL"."VAT_TAX_ID" AND NVL("AVT"."ORG_ID"(+),(-99))=NVL("CTL"."ORG_ID",(-99)))
  11. 71          14 - access("CT"."DOC_SEQUENCE_ID"="FD"."DOC_SEQUENCE_ID"(+))
  12. 72          16 - access("LV"."LOOKUP_CODE"="CTT"."TYPE")
  13. 73          18 - access("LV"."LOOKUP_TYPE"='INV/CM' AND "LV"."VIEW_APPLICATION_ID"=222 AND "LV"."SECURITY_GROUP_ID"=0 AND
  14. 74                      "LV"."LANGUAGE"=USERENV('LANG'))
  15. 75               filter("LV"."LANGUAGE"=USERENV('LANG') AND "LV"."SECURITY_GROUP_ID"=0)
  16. 76          19 - access("CT"."CUST_TRX_TYPE_ID"="CTT"."CUST_TRX_TYPE_ID" AND
  17. 77                      NVL("CT"."ORG_ID",(-99))=NVL("CTT"."ORG_ID",(-99)))
  18. 78          21 - access("CT"."BATCH_SOURCE_ID"="BS"."BATCH_SOURCE_ID" AND NVL("CT"."ORG_ID",(-99))=NVL("BS"."ORG_ID",(-99)))
  19. 79          23 - access("CT"."CUSTOMER_TRX_ID"="CTLGD"."CUSTOMER_TRX_ID" AND
  20. 80                      NVL("CT"."ORG_ID",(-99))=NVL("CTLGD"."ORG_ID",(-99)))
  21. 81               filter(NVL("CT"."ORG_ID",(-99))=DECODE(TO_CHAR("S"."SALESREP_ID"),NULL,NVL("CT"."ORG_ID",(-99)),NVL("S"."ORG_I
  22. 82                      D",(-99))))
  23. 83          24 - access("LV"."LOOKUP_TYPE"=DECODE(TO_CHAR("CTLGD"."COLLECTED_TAX_CCID"),NULL,'AUTOGL_TYPE','DISTRIBUTION_SOURCE
  24. 84                      _TYPE') AND "LV"."LOOKUP_CODE"=DECODE(TO_CHAR("CTLGD"."COLLECTED_TAX_CCID"),NULL,NVL("CTLGD"."ACCOUNT_CLASS",'REV'),'
  25. 85                      DEFERRED_TAX'))
  26. 86          25 - filter("LV"."VIEW_APPLICATION_ID"=222 AND "LV"."LANGUAGE"=USERENV('LANG') AND "LV"."SECURITY_GROUP_ID"=0)
  27. 87          26 - access("S"."SALESREP_ID"(+)="CTLGD"."CUST_TRX_LINE_SALESREP_ID")
  28. 88          28 - access("LV"."LOOKUP_CODE"=DECODE("CTLGD"."POSTING_CONTROL_ID",(-3),'N','Y'))
  29. 89          32 - access("LV"."LOOKUP_TYPE"='VIEW_ACCOUNTING' AND "LV"."VIEW_APPLICATION_ID"=222 AND "LV"."LOOKUP_CODE"='LINE'
  30. 90                      AND "LV"."SECURITY_GROUP_ID"=0 AND "LV"."LANGUAGE"=USERENV('LANG'))
  31. 91          34 - access("LV"."LOOKUP_TYPE"='VIEW_ACCOUNTING' AND "LV"."VIEW_APPLICATION_ID"=222 AND
  32. 92                      "LV"."LOOKUP_CODE"='DETAIL_LINE' AND "LV"."SECURITY_GROUP_ID"=0 AND "LV"."LANGUAGE"=USERENV('LANG'))
  33. 93          36 - access("LV"."LOOKUP_TYPE"='YES/NO' AND "LV"."VIEW_APPLICATION_ID"=222 AND "LV"."SECURITY_GROUP_ID"=0 AND
  34. 94                      "LV"."LANGUAGE"=USERENV('LANG'))
  35. 95               filter("LV"."LANGUAGE"=USERENV('LANG') AND "LV"."SECURITY_GROUP_ID"=0)
  36. 96          37 - filter("CTLGD"."ACCOUNT_SET_FLAG"='N')
  37. 97          40 - access("CT"."EXCHANGE_RATE_TYPE"="GLCT"."CONVERSION_TYPE"(+))
  38. 98          42 - filter(NVL("CTLGD"."ORG_ID",(-99))=NVL("CTL"."ORG_ID"(+),(-99)))
  39. 99          43 - access("CTLGD"."CUSTOMER_TRX_LINE_ID"="CTL"."CUSTOMER_TRX_LINE_ID"(+))
  40. 100          45 - access("RR"."RULE_ID"(+)="CTL"."ACCOUNTING_RULE_ID")
  41. 101          46 - filter(NVL("CTL"."ORG_ID",(-99))=NVL("CTL2"."ORG_ID"(+),(-99)))
  42. 102          47 - access("CTL"."LINK_TO_CUST_TRX_LINE_ID"="CTL2"."CUSTOMER_TRX_LINE_ID"(+))
  43. 103          49 - access("CT"."BILL_TO_CUSTOMER_ID"="CUST_ACCT"."CUST_ACCOUNT_ID")
  44. 104          51 - access("CUST_ACCT"."PARTY_ID"="PARTY"."PARTY_ID")
  45. 105          53 - access("CT"."BILL_TO_SITE_USE_ID"="SU"."SITE_USE_ID")
  46. 106         
  47. 107        Note
  48. 108        -----
  49. 109           - 'PLAN_TABLE' is old version
复制代码

回复 只看该作者 道具 举报

5#
发表于 2013-1-21 11:10:30
  1. 1         
  2. 2        -----------------------------------------------------------------------------------------------------------------------------
  3. 3        | Id  | Operation                                       | Name                         | Rows  | Bytes |TempSpc| Cost (%CPU)|
  4. 4        -----------------------------------------------------------------------------------------------------------------------------
  5. 5        |   0 | SELECT STATEMENT                                |                              |   194 |   174K|       | 28743   (3)|
  6. 6        |*  1 |  HASH JOIN RIGHT OUTER                          |                              |   194 |   174K|       | 28743   (3)|
  7. 7        |*  2 |   TABLE ACCESS FULL                             | MTL_UNITS_OF_MEASURE_TL      |    17 |   221 |       |     5   (0)|
  8. 8        |   3 |   NESTED LOOPS                                  |                              |   194 |   171K|       | 28738   (3)|
  9. 9        |   4 |    NESTED LOOPS                                 |                              |   194 |   167K|       | 28543   (3)|
  10. 10        |   5 |     NESTED LOOPS                                |                              |   194 |   159K|       | 28349   (3)|
  11. 11        |*  6 |      HASH JOIN RIGHT OUTER                      |                              |   194 |   155K|       | 28155   (3)|
  12. 12        |   7 |       TABLE ACCESS BY INDEX ROWID               | FND_LOOKUP_VALUES            |     1 |    71 |       |     5   (0)|
  13. 13        |*  8 |        INDEX RANGE SCAN                         | FND_LOOKUP_VALUES_U1         |     1 |       |       |     3   (0)|
  14. 14        |*  9 |       HASH JOIN RIGHT OUTER                     |                              |   194 |   142K|       | 28150   (3)|
  15. 15        |  10 |        TABLE ACCESS FULL                        | AR_VAT_TAX_ALL_B             |    14 |   266 |       |     5   (0)|
  16. 16        |  11 |        NESTED LOOPS OUTER                       |                              |   194 |   138K|       | 28144   (3)|
  17. 17        |  12 |         NESTED LOOPS OUTER                      |                              |   194 |   135K|       | 27562   (3)|
  18. 18        |  13 |          NESTED LOOPS OUTER                     |                              |   194 |   132K|       | 27561   (3)|
  19. 19        |* 14 |           HASH JOIN OUTER                       |                              |   194 |   112K|       | 27179   (3)|
  20. 20        |  15 |            NESTED LOOPS OUTER                   |                              |   194 |   108K|       | 27154   (3)|
  21. 21        |* 16 |             HASH JOIN                           |                              |   194 |   104K|       | 27153   (3)|
  22. 22        |  17 |              TABLE ACCESS BY INDEX ROWID        | FND_LOOKUP_VALUES            |     1 |    59 |       |     5   (0)|
  23. 23        |* 18 |               INDEX RANGE SCAN                  | FND_LOOKUP_VALUES_U1         |     1 |       |       |     3   (0)|
  24. 24        |* 19 |              HASH JOIN                          |                              |   372 |   179K|       | 27147   (3)|
  25. 25        |  20 |               TABLE ACCESS FULL                 | RA_CUST_TRX_TYPES_ALL        |   246 |  7626 |       |     5   (0)|
  26. 26        |* 21 |               HASH JOIN                         |                              |  1741 |   787K|       | 27142   (3)|
  27. 27        |  22 |                TABLE ACCESS FULL                | RA_BATCH_SOURCES_ALL         |    78 |  2184 |       |     5   (0)|
  28. 28        |* 23 |                HASH JOIN                        |                              |  4240 |  1801K|    13M| 27136   (3)|
  29. 29        |* 24 |                 HASH JOIN                       |                              | 38158 |    13M|       | 15113   (3)|
  30. 30        |* 25 |                  TABLE ACCESS FULL              | FND_LOOKUP_VALUES            | 13561 |   781K|       |  2189   (2)|
  31. 31        |* 26 |                  HASH JOIN RIGHT OUTER          |                              |  1358K|   400M|       | 12911   (4)|
  32. 32        |  27 |                   TABLE ACCESS FULL             | JTF_RS_SALESREPS             |   504 | 11592 |       |     5   (0)|
  33. 33        |* 28 |                   HASH JOIN                     |                              |  1358K|   370M|       | 12892   (3)|
  34. 34        |  29 |                    NESTED LOOPS                 |                              |     1 |   177 |       |     9   (0)|
  35. 35        |  30 |                     NESTED LOOPS                |                              |     1 |   118 |       |     5   (0)|
  36. 36        |  31 |                      TABLE ACCESS BY INDEX ROWID| FND_LOOKUP_VALUES            |     1 |    59 |       |     3   (0)|
  37. 37        |* 32 |                       INDEX UNIQUE SCAN         | FND_LOOKUP_VALUES_U1         |     1 |       |       |     2   (0)|
  38. 38        |  33 |                      TABLE ACCESS BY INDEX ROWID| FND_LOOKUP_VALUES            |     1 |    59 |       |     2   (0)|
  39. 39        |* 34 |                       INDEX UNIQUE SCAN         | FND_LOOKUP_VALUES_U1         |     1 |       |       |     1   (0)|
  40. 40        |  35 |                     TABLE ACCESS BY INDEX ROWID | FND_LOOKUP_VALUES            |     1 |    59 |       |     4   (0)|
  41. 41        |* 36 |                      INDEX RANGE SCAN           | FND_LOOKUP_VALUES_U1         |     1 |       |       |     2   (0)|
  42. 42        |* 37 |                    TABLE ACCESS FULL            | RA_CUST_TRX_LINE_GL_DIST_ALL |  2609K|   271M|       | 12857   (3)|
  43. 43        |  38 |                 TABLE ACCESS FULL               | RA_CUSTOMER_TRX_ALL          |   454K|    29M|       |  9628   (2)|
  44. 44        |  39 |             TABLE ACCESS BY INDEX ROWID         | GL_DAILY_CONVERSION_TYPES    |     1 |    19 |       |     1   (0)|
  45. 45        |* 40 |              INDEX UNIQUE SCAN                  | GL_DAILY_CONVERSION_TYPES_U1 |     1 |       |       |     0   (0)|
  46. 46        |  41 |            TABLE ACCESS FULL                    | FND_DOCUMENT_SEQUENCES       |  3976 | 87472 |       |    25   (0)|
  47. 47        |* 42 |           TABLE ACCESS BY INDEX ROWID           | RA_CUSTOMER_TRX_LINES_ALL    |     1 |   105 |       |     3   (0)|
  48. 48        |* 43 |            INDEX RANGE SCAN                     | RA_CUSTOMER_TRX_LINES_U1     |     1 |       |       |     2   (0)|
  49. 49        |  44 |          TABLE ACCESS BY INDEX ROWID            | RA_RULES                     |     1 |    18 |       |     1   (0)|
  50. 50        |* 45 |           INDEX UNIQUE SCAN                     | RA_RULES_U1                  |     1 |       |       |     0   (0)|
  51. 51        |* 46 |         TABLE ACCESS BY INDEX ROWID             | RA_CUSTOMER_TRX_LINES_ALL    |     1 |    14 |       |     3   (0)|
  52. 52        |* 47 |          INDEX RANGE SCAN                       | RA_CUSTOMER_TRX_LINES_U1     |     1 |       |       |     2   (0)|
  53. 53        |  48 |      TABLE ACCESS BY INDEX ROWID                | HZ_CUST_ACCOUNTS             |     1 |    21 |       |     1   (0)|
  54. 54        |* 49 |       INDEX UNIQUE SCAN                         | HZ_CUST_ACCOUNTS_U1          |     1 |       |       |     0   (0)|
  55. 55        |  50 |     TABLE ACCESS BY INDEX ROWID                 | HZ_PARTIES                   |     1 |    40 |       |     1   (0)|
  56. 56        |* 51 |      INDEX UNIQUE SCAN                          | HZ_PARTIES_U1                |     1 |       |       |     0   (0)|
  57. 57        |  52 |    TABLE ACCESS BY INDEX ROWID                  | HZ_CUST_SITE_USES_ALL        |     1 |    25 |       |     1   (0)|
  58. 58        |* 53 |     INDEX UNIQUE SCAN                           | HZ_CUST_SITE_USES_U1         |     1 |       |       |     0   (0)|
  59. 59        -----------------------------------------------------------------------------------------------------------------------------
复制代码

回复 只看该作者 道具 举报

4#
发表于 2013-1-21 10:58:30
  1. CREATE BITMAP INDEX AR.IDX$$_zpbitmap1 ON AR.RA_CUSTOMER_TRX_LINES_ALL(vat_tax_id)  tablespace APPS_TS_TX_IDX
  2.   pctfree 10
  3.   initrans 2
  4.   maxtrans 255
  5.   storage
  6.   (
  7.     initial 128K
  8.     next 128K
  9.     minextents 1
  10.     maxextents unlimited
  11.     pctincrease 0
  12.   );

  13. CREATE BITMAP INDEX AR.IDX$$_zpbitmap2 ON AR.RA_CUSTOMER_TRX_LINES_ALL(org_id)  tablespace APPS_TS_TX_IDX
  14.   pctfree 10
  15.   initrans 2
  16.   maxtrans 255
  17.   storage
  18.   (
  19.     initial 128K
  20.     next 128K
  21.     minextents 1
  22.     maxextents unlimited
  23.     pctincrease 0
  24.   );
  25. CREATE BITMAP INDEX AR.IDX$$_zpbitmap3 ON AR.RA_CUSTOMER_TRX_LINES_ALL(uom_code)  tablespace APPS_TS_TX_IDX
  26.   pctfree 10
  27.   initrans 2
  28.   maxtrans 255
  29.   storage
  30.   (
  31.     initial 128K
  32.     next 128K
  33.     minextents 1
  34.     maxextents unlimited
  35.     pctincrease 0
  36.   );
复制代码
创建位图索引如上,这是三个列都建位图的,我想要是只在一列上创建位图索引,完了再在这列和另外两列创建复合索引会不会节约一些空间或者更高效一点
应用中select查询用到的就是这三列,执行计划走的全表扫描

回复 只看该作者 道具 举报

3#
发表于 2013-1-21 10:55:45
fengbao 发表于 2013-1-21 10:30
建索引跟需求有关系的,没必要都建吧?

这个我知道,现在有个查询就是查询这些列,执行计划走的全表扫描,完了我就看这个列
例如org_id只有103,104,105三个值,我觉得要是建位图索引应该会好,但是问题是生产库表空间使用90%了,我正拿测试库试,就是不知道建完会多大,有多大影响?

回复 只看该作者 道具 举报

2#
发表于 2013-1-21 10:30:54
建索引跟需求有关系的,没必要都建吧?

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-11-16 08:48 , Processed in 0.051837 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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