【问题标题】:Create Index options explanation (Oracle)创建索引选项说明 (Oracle)
【发布时间】:2015-12-08 07:41:45
【问题描述】:

我有一个用于在 oracle DB 中创建复合索引的 sql。但是有些话我听不懂。

create index "index01" on “table01”("name","age")
PCTFREE 20 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL xxxx NEXT xxxx MINEXTENTS xx MAXEXTENTS xxxx
PCTINCREASE x FREELISTS xx FREELIST GROUPS xx
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "Table-space" ;

我不清楚'COMPUTE STATISTICS',必须使用'COMPUTE STATISTICS'、'storage'、'tablespace'吗?

【问题讨论】:

  • 你读过documentation吗?
  • 无论如何,计算统计在 11g 中是自动完成的。如果不指定表空间,它将在默认表空间中创建。

标签: oracle indexing ddl


【解决方案1】:
  • (PCTFREE 20 INITRANS 2 MAXTRANS 255) - 描述如何填充 DB 块
  • (COMPUTE STATISTICS) - 告诉 Oracle 为创建的索引收集性能统计信息
  • (STORAGE(INITIAL xxxx NEXT xxxx MINEXTENTS xx MAXEXTENTS xxxx PCTINCREASE) - 描述如何为数据文件中的索引分配磁盘空间
  • (BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT) - 描述如何将索引的块存储到内存中(缓冲区缓存)。
  • TABLESPACE "Table-space" - 在那个表空间中创建索引

一般创建索引只需要create index "index01" on "table01"("name","age"),其余的有一个默认值(只有当你想覆盖默认值时才指定其余参数)

【讨论】:

  • 请注意 MAXTRANS 已过时,现在无论输入什么值,它始终是 255。
【解决方案2】:

您需要创建一个基本索引是 在“table01”(“name”,“age”)上创建索引“index01”;

其余的都是可选的。包含最后一行可能是明智之举,因此您可以将索引放在另一个表空间中。

【讨论】:

  • 以及何时使用“计算统计”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 2010-11-16
相关资源
最近更新 更多