IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Virtual Indexes

玉面飞龙的BLOG 2010-04-12 09:21:01 累计浏览 3,249 次
本机暂存

Oracle11g 中有个invisiable index的新功能,它的前身或许就是virtual index (虚拟索引)。

在建新索引的时候,Virtual Index和invisiable index都可以用来确保其他SQL的执行计划不会改变。特别是当表上索引结构比较复杂,为了优化某个SQL而新建的索引可能会导致其它SQL执行计划变糟糕。

CREATE INDEX INDEX_NAME
ON TABLE_NAME (INDEX_COLUMN)
NOSEGMENT;

建立虚拟索引后,可以使用dbms_stats.generate_stats收集该虚拟索引的统计信息,以便更好的帮助CBO判断。

SQL> select OBJ#,DATAOBJ#,BLEVEL,LEAFCNT,DISTKEY,LBLKKEY,DBLKKEY,CLUFAC,ROWCNT from ind$ where obj#=57598;

OBJ#   DATAOBJ#     BLEVEL    LEAFCNT    DISTKEY    LBLKKEY    DBLKKEY     CLUFAC     ROWCNT
―――- ―――- ―――- ―――- ―――- ―――- ―――- ―――- ―――-
57598      57598          1        272      17389          1          2      47175     100000

dbms_stats.gather_index_stats无法分析virtual index。

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. Oracle MTS模式下 进程地址与会话信息 (累计阅读 14,409)
  2. 那些在11gR2中可能惹祸的新特性,一张列表帮助你摆脱升级11gR2带来的烦恼 (累计阅读 6,881)
  3. 如何建立合适的索引? (累计阅读 6,781)
  4. 一次SQL优化记录 (累计阅读 6,072)
  5. 性能测试工具sysbench简介 (累计阅读 6,027)
  6. 大于2GB的Listener.log和运行超过198天的主机上的Oracle实例 (累计阅读 5,863)
  7. 仅仅只备份是不够的 (累计阅读 5,825)
  8. Oracle Database 12c 新特性 - Native Top N 查询 (累计阅读 5,751)
  9. ORACLE最大可以存储多少数据量 (累计阅读 5,730)
  10. Oracle DBA的学习进阶成长树-从初出茅庐到高瞻远瞩 (累计阅读 5,603)