暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

估算创建一个索引所需要的空间

原创 章芋文 2014-04-14
429
在生产环境中,对空间紧张的系统,需要创建一个索引,在创建之前可以根据下面方法估算索引所占的空间,然后再考虑是否需要创建:
[code]SQL> select count(*) from t_test;

COUNT(*)
----------
11879

SQL> desc t_test;
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)

SQL> set serverout on
SQL> exec dbms_stats.gather_table_stats(user,'T_TEST');

PL/SQL procedure successfully completed.

SQL> set serverout on
SQL> variable used_bytes number
SQL> variable alloc_bytes number
SQL> exec dbms_space.create_index_cost('create index ind_t_test_id on t_test(OBJECT_ID)',:used_bytes,:alloc_bytes);

PL/SQL procedure successfully completed.

SQL> print :used_bytes

USED_BYTES
----------
59395

SQL> print :alloc_bytes

ALLOC_BYTES
-----------
327680[/code]
USED_BYTES为估算索引数据需要的空间,alloc_bytes为估算表空间中将分配多少空间
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论