Oracle如何预估即将创建索引的大小?

0    148    2

Tags:

👉 本文共约505个字,系统预计阅读时间或需2分钟。

如果当前表大小是1TB,那么在某一列上创建索引的话索引大概占用多大的空间?对于这个问题,Oracle提供了2种可以预估将要创建的索引大小的办法:

① 利用系统包DBMS_SPACE.CREATE_INDEX_COST直接得到。利用DBMS_SPACE.CREATE_TABLE_COST可以获得将要创建的表的大小。

② 利用Oracle 11g新特性NOTE RAISED WHEN EXPLAIN PLAN FOR CREATE INDEX。

下面分别举例说明。

数据库版本为Oracle 11.2.0.3,实验过程如下所示:

第一种办法:DBMS_SPACE.CREATE_INDEX_COST

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

说明:USED_BYTES代表实际使用的字节数,而ALLOCATED代表申请的字节数。

第二种办法:Oracle 11g新特性:NOTE RAISED WHEN EXPLAIN PLAN FOR CREATE INDEX

这是一个非常实用的小特性,在Oracle 11gR2中使用EXPLAIN PLAN FOR CREATE INDEX时,Oracle会提示评估的索引大小(ESTIMATED INDEX SIZE)了:

创建真实索引查看占用的字节数:

从上面的内容可以看到,两种办法给出的索引评估大小与实际索引占用空间大约都为2M,所以,差别并不大,但这里有个前提条件就是预估索引大小之前必须对表进行分析过。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部