oracle使用索引与不使用索引的性能详析
网络编程 2021-07-05 16:09www.168986.cn编程入门
索引是建立在表的一列或多个列上的辅助对象,目的是加快訪问表中的数据,狼蚁网站SEO优化这篇文章主要给大家分析介绍了关于oracle使用索引与不使用索引的性能的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
前言
Oracle存储索引的数据结构是B树。位图索引也是如此,仅仅只是是叶子节点不同B数索引;
索引由根节点、分支节点和叶子节点组成。上级索引块包括下级索引块的索引数据,叶节点包括索引数据和确定行实际位置的rowid。
使用索引的目的
- 加快查询速度
- 降低I/O操作
- 消除磁盘排序
何时使用索引
- 查询返回的记录数
- 排序表<40%
- 非排序表 <7%
- 表的碎片较多(频繁添加、删除)
索引的种类
- 非唯一索引(最经常使用)
- 唯一索引
- 位图索引
- 局部有前缀分区索引
- 局部无前缀分区索引
- 全局有前缀分区索引
- 散列分区索引
- 基于函数的索引
oracle使用索引与不使用的性能
准备一张百万条数据的表,这样分析数据差距更形象!
狼蚁网站SEO优化用分页表数据对表进行分析,根据EMP_ID 字段排序,使用索引和不使用索引性能差距!
sql查询语法准备,具体业务根据具体表书写sql语法:
SELECT FROM (SELECT ROW_., ROWNUM ROWNUM_ FROM (SELECT FROM KQS_SQ_INFO i ORDER BY i.EMP_ID desc ) ROW_ WHERE ROWNUM <= 20) WHERE ROWNUM_ >= 10;
使用 explain plan for
可以分析sql
如下
explain plan for SELECT FROM (SELECT ROW_., ROWNUM ROWNUM_ FROM (SELECT FROM KQS_SQ_INFO i ORDER BY i.EMP_ID desc ) ROW_ WHERE ROWNUM <= 20) WHERE ROWNUM_ >= 10;
计算出SQL性能,使用
select from TABLE(dbms_xplan.display);打印出性能分析表
如下图
使用索引前
使用索引后
可以清晰看到使用后cpu使用率很低,并且检索是从索引开始而不是全文检索
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对狼蚁SEO的支持。
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指