熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle分區表全分區掃描問題

2022-06-13   來源: Oracle 

  分區表將一個大表根據某種規則分成多個小表從而提高檢索效率

  查詢分區表sql

  Sql代碼

  select user_tablestable_name

  from user_tables

  where user_tablespartitioned = YES

  通過以上命令可查詢出數據庫中登陸用戶下的全部分區表

  查詢分區表分區字段sql

  Sql代碼

  select atable_name apartitioned bpartition_count lumn_name

  from user_tables a user_part_tables b user_part_key_columns c

  where atable_name = btable_name

  and btable_name = cname

  and cname = &table_name;

  通過以上命令可查詢出某個分區表中的分區字段查詢條件中的表名需要大寫

  知道了那些是分區表和分區字段後就可以分析具體某個含有分區表sql的執行計劃

  看執行了表的全分區掃描還是單分區掃描它們的執行效率相差很大

  通過cost值可以看出下面使用事例詳細介紹一下

  典型案例

  Sql代碼

  select arc_e_cons_prc_amtmp_name

  arc_e_cons_snapelec_addr

  from arc_e_cons_prc_amt

  sa_org

  arc_e_cons_snap

  e_cat_prc

  sa_c_trade_type

  where (arc_e_cons_prc_amtCALC_ID = arc_e_cons_snapCALC_ID and

  arc_e_cons_prc_amtORG_NO = sa_orgORG_NO and

  arc_e_cons_prc_amtPRC_CODE = e_cat_prcPRC_CODE and

  arc_e_cons_prc_amtPARA_VN = e_cat_prcPARA_VN and

  arc_e_cons_prc_amtTRADE_TYPE_CODE = sa_c_trade_typeTRADE_CODE)

  and (arc_e_cons_prc_amtYM >= and

  arc_e_cons_prc_amtYM <= and

  arc_e_cons_prc_amtORG_NO = )

  修改為如下sql:

  Sql代碼

  select arc_e_cons_prc_amtmp_name

  arc_e_cons_snapelec_addr

  from arc_e_cons_prc_amt

  sa_org

  arc_e_cons_snap

  e_cat_prc

  sa_c_trade_type

  where (arc_e_cons_prc_amtCALC_ID = arc_e_cons_snapCALC_ID and

  arc_e_cons_prc_amtORG_NO = sa_orgORG_NO and

  arc_e_cons_prc_amtPRC_CODE = e_cat_prcPRC_CODE and

  arc_e_cons_prc_amtPARA_VN = e_cat_prcPARA_VN and

  arc_e_cons_prc_amtTRADE_TYPE_CODE = sa_c_trade_typeTRADE_CODE)

  and (arc_e_cons_prc_amtYM >= and

  arc_e_cons_prc_amtYM <= and

  arc_e_cons_prc_amtORG_NO = )

  and arc_e_cons_snapORG_NO = arc_e_cons_prc_amtORG_NO

  注上面的sql中存在兩個分區表arc_e_cons_snap和arc_e_cons_prc_amt

  查詢條件中要有兩個表的分區字段條件

  Labels parameters


From:http://tw.wingwit.com/Article/program/Oracle/201311/17248.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.