Oracle分区和性能简析

WBOY
发布: 2016-06-07 14:59:08
原创
1035 人浏览过

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 理论上,我们进行表分区都是为了提升性能,加快查询速度。但是有的时候,不但不能加快查询速度,反而拖累的查询速度。下面举的一个例子就是这样的: 假设某一个表是按照主键散列分区,创建表如下所

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

    理论上,我们进行表分区都是为了提升性能,加快查询速度。但是有的时候,不但不能加快查询速度,反而拖累的查询速度。下面举的一个例子就是这样的:

    假设某一个表是按照主键散列分区,创建表如下所示:

    Sql代码

    create table t

    ( OWNER, OBJECT_NAME, SUBOBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID,

    OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUS,

    TEMPORARY, GENERATED, SECONDARY )

    partition by hash(object_id)

    partitions 16

    as

    select * from all_objects;

    我们经常要在表上面,根据owner 或者 object_type,object_name 或者owner, object_type,object_name进行查询。于是我们想到在这三列上建立一个局部索引。如下所示:

    Sql代码

    create index t_idx

    on t(owner,object_type,object_name)

    LOCAL

    运行一个存储过程收集cpu耗用等信息:

    Sql代码

    begin

    dbms_stats.gather_table_stats

    ( user, 'T', cascade=>true);

    end;

    /

    改变几个会话属性,便于允许TKPROF

    Sql代码

    alter session set timed_statistics=true;

    alter session set events '10046 trace name context forever,level 12';

    执行如下SQL语句:

    Sql代码

    select * from t where owner='SCOTT' and object_type = 'TABLE' and object_name = 'EMP';

    select * from all_objects where owner='SCOTT' and object_type = 'TABLE' and object_name = 'EMP';

[1] [2] 

Oracle分区和性能简析

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!