ITPub博客

首页 > 数据库 > Oracle > 星型查询

星型查询

原创 Oracle 作者:1006356403 时间:2016-06-21 11:56:33 0 删除 编辑
1、查询是否开启星型查询
SYS@PROD1>show parameter star_t


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
star_transformation_enabled          string      FALSE
SYS@PROD1>
2、开启星型查询
SYS@PROD1>alter system set star_transformation_enabled=true;


System altered.

SYS@PROD1>show parameter star_t


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
star_transformation_enabled          string      TRUE
SYS@PROD1>
3、查询表中是否有主外键关系

select col.table_name,col.constraint_name,col.column_name,con.constraint_type from user_cons_columns col,user_constraints con where col.constraint_name=con.constraint_name and constraint_type in ('P','R') and col.table_name in ('SALES','TIMES','CHANNELS','CUSTOMERS')
SH@PROD1>/


TABLE_NAME   CONSTRAINT_NAME      COLUMN_NAME      C
------------ -------------------- ---------------- -
CUSTOMERS    CUSTOMERS_PK         CUST_ID          P
CHANNELS     CHANNELS_PK          CHANNEL_ID       P
TIMES        TIMES_PK             TIME_ID          P
SALES        SALES_CUSTOMER_FK    CUST_ID          R
SALES        SALES_PRODUCT_FK     PROD_ID          R
SALES        SALES_TIME_FK        TIME_ID          R
SALES        SALES_CHANNEL_FK     CHANNEL_ID       R
SALES        SALES_PROMO_FK       PROMO_ID         R
CUSTOMERS    CUSTOMERS_COUNTRY_FK COUNTRY_ID       R


9 rows selected.

4、为sales表外键建立位图索引
SH@PROD1>create bitmap index sales_time_bix on sales(time_id) local;


Index created.


SH@PROD1>create bitmap index sales_cust_bix on sales(cust_id) local;


Index created.


SH@PROD1>create bitmap index sales_channel_bix on sales(channel_id) local;


Index created.

5、收集统计信息

SH@PROD1>exec dbms_stats.gather_schema_stats('SH');


PL/SQL procedure successfully completed.

6、执行查询脚本,查看星型查询是否生效


SH@PROD1>set autot trace exp
SH@PROD1>@/home/oracle/star.sql


Execution Plan
----------------------------------------------------------
Plan hash value: 3070449514


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


| Id  | Operation                           | Name                      | Rows | Bytes | Cost (%CPU
)| Time     | Pstart| Pstop |


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


|   0 | SELECT STATEMENT                    |                           |   506 | 40986 |   600   (1
)| 00:00:08 |       |       |


|   1 |  TEMP TABLE TRANSFORMATION          |                           |      ||
 |          |       |       |


|   2 |   LOAD AS SELECT                    | SYS_TEMP_0FD9D6611_1218EB |      ||
 |          |       |       |


|*  3 |    TABLE ACCESS FULL                | CUSTOMERS                 |   383 |  9958 |   406   (1
)| 00:00:05 |       |       |


|   4 |   HASH GROUP BY                     |                           |   506 | 40986 |   194   (2
)| 00:00:03 |       |       |


|*  5 |    HASH JOIN                        |                           |   506 | 40986 |   193   (2
)| 00:00:03 |       |       |


|   6 |     TABLE ACCESS FULL               | SYS_TEMP_0FD9D6611_1218EB |   383 |  5745 |     2   (0
)| 00:00:01 |       |       |


|*  7 |     HASH JOIN                       |                           |   506 | 33396 |   191   (2
)| 00:00:03 |       |       |


|*  8 |      TABLE ACCESS FULL              | CHANNELS                  |     2 |    42 |     3   (0
)| 00:00:01 |       |       |


|*  9 |      HASH JOIN                      |                           |   506 | 22770 |   187   (1
)| 00:00:03 |       |       |


|* 10 |       TABLE ACCESS FULL             | TIMES                     |   365 |  5840 |    18   (0
)| 00:00:01 |       |       |


|  11 |       VIEW                          | VW_ST_62EEF96F            |   507 | 14703 |   169   (1
)| 00:00:03 |       |       |


|  12 |        NESTED LOOPS                 |                           |   507 | 28899 |   146   (1
)| 00:00:02 |       |       |


|  13 |         PARTITION RANGE SUBQUERY    |                           |   506 | 14195 |    58   (2
)| 00:00:01 |KEY(SQ)|KEY(SQ)|


|  14 |          BITMAP CONVERSION TO ROWIDS|                           |   506 | 14195 |    58   (2
)| 00:00:01 |       |       |


|  15 |           BITMAP AND                |                           |      ||
 |          |       |       |


|  16 |            BITMAP MERGE             |                           |      ||
 |          |       |       |


|  17 |             BITMAP KEY ITERATION    |                           |      ||
 |          |       |       |


|  18 |              BUFFER SORT            |                           |      ||
 |          |       |       |


|* 19 |               TABLE ACCESS FULL     | CHANNELS                  |     2 |    26 |     3   (0
)| 00:00:01 |       |       |


|* 20 |              BITMAP INDEX RANGE SCAN| SALES_CHANNEL_BIX         |      ||
 |          |KEY(SQ)|KEY(SQ)|


|  21 |            BITMAP MERGE             |                           |      ||
 |          |       |       |


|  22 |             BITMAP KEY ITERATION    |                           |      ||
 |          |       |       |


|  23 |              BUFFER SORT            |                           |      ||
 |          |       |       |


|* 24 |               TABLE ACCESS FULL     | TIMES                     |   365 |  5840 |    18   (0
)| 00:00:01 |       |       |


|* 25 |              BITMAP INDEX RANGE SCAN| SALES_TIME_BIX            |      ||
 |          |KEY(SQ)|KEY(SQ)|


|  26 |            BITMAP MERGE             |                           |      ||
 |          |       |       |


|  27 |             BITMAP KEY ITERATION    |                           |      ||
 |          |       |       |


|  28 |              BUFFER SORT            |                           |      ||
 |          |       |       |


|  29 |               TABLE ACCESS FULL     | SYS_TEMP_0FD9D6611_1218EB |   383 |  1915 |     2   (0
)| 00:00:01 |       |       |


|* 30 |              BITMAP INDEX RANGE SCAN| SALES_CUST_BIX            |      ||
 |          |KEY(SQ)|KEY(SQ)|


|  31 |         TABLE ACCESS BY USER ROWID  | SALES                     |     1 |    29 |   111   (1
)| 00:00:02 | ROWID | ROWID |


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




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


   3 - filter("C"."CUST_STATE_PROVINCE"='CA')
   5 - access("ITEM_2"="C0")
   7 - access("ITEM_1"="CH"."CHANNEL_ID")
   8 - filter("CH"."CHANNEL_DESC"='Catalog' OR "CH"."CHANNEL_DESC"='Internet')
   9 - access("ITEM_3"="T"."TIME_ID")
  10 - filter("T"."CALENDAR_QUARTER_DESC"='1999-01' OR "T"."CALENDAR_QUARTER_DESC"='1999-02' OR
              "T"."CALENDAR_QUARTER_DESC"='2000-03' OR "T"."CALENDAR_QUARTER_DESC"='2000-04')
  19 - filter("CH"."CHANNEL_DESC"='Catalog' OR "CH"."CHANNEL_DESC"='Internet')
  20 - access("S"."CHANNEL_ID"="CH"."CHANNEL_ID")
  24 - filter("T"."CALENDAR_QUARTER_DESC"='1999-01' OR "T"."CALENDAR_QUARTER_DESC"='1999-02' OR
              "T"."CALENDAR_QUARTER_DESC"='2000-03' OR "T"."CALENDAR_QUARTER_DESC"='2000-04')
  25 - access("S"."TIME_ID"="T"."TIME_ID")
  30 - access("S"."CUST_ID"="C0")


Note
-----
   - star transformation used for this statement


SH@PROD1>


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30317998/viewspace-2120587/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
精通Oracle,mysql等常用数据库.精通Oracle主从架构,ogg同步复制,集群操作等.mysql主备复制,双活架构配置,数据库优化等

注册时间:2015-06-30

  • 博文量
    43
  • 访问量
    47609