ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 56

56

原创 Linux操作系统 作者:simkyo 时间:2013-08-29 11:15:47 0 删除 编辑
 全局索引global index
1.  全局索引的分区键和分区数和表的分区键和分区数可能都不相同,表和全局索引的分区机制不一样。
2.  全局索引可以分区,也可以是不分区索引,全局索引必须是前缀索引,即全局索引的索引列必须是以索引分区键作为其前几列。
3.  全局分区索引的索引条目可能指向若干个分区,因此,对于全局分区索引,即使只动,截断一个分区中的数据,都需要rebulid若干个分区甚 至是整个索引。
4.  全局索引多应用于oltp系统中。
5.  全局分区索引只按范围或者散列hash分区,hash分区是10g以后才支持。
6.  oracle9i以后对分区表做move或者truncate的时可以用update global indexes语句来同步更新全局分区索引,用消耗一定资源来换取高度的可用性。
7.  表用a列作分区,索引用b做局部分区索引,若where条件中用b来查询,那么oracle会扫描所有的表和索引的分区,成本会比分区更高,此时可以考虑用b做全局分区索引
exchange
把emp表中分区p_2003的分区数据移到历史表emp_his中,并删除emp表中的p_2003分区数据
create table emp2 as select * from emp where 1=2;
alter table emp exchange partition p_2003 with table emp2;
alter table emp_his exchange partition p_2003 with table emp2;
查看表的大小
avg_row_len. 该值单位为bytes
方法一:查看当前用户每个表占用空间的大小:
    Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
 方法二:另一种表实际使用的空间。这样查询:
analyze table emp compute statistics;
select num_rows * avg_row_len from user_tables where table_name = 'EMP';
SELECT table_name ,num_rows * avg_row_len/1024/1024 "MB" FROM user_tab_statistics;
select num_rows * avg_row_len/1024/1024 "MB"
from user_tables
where table_name = 'EMP';

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

上一篇: 55
下一篇: 57
请登录后发表评论 登录
全部评论

注册时间:2013-06-20

  • 博文量
    193
  • 访问量
    137065