SQL优化核心思想笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

本博客为SQL优化核心思想学习笔记


提示:以下是本篇文章正文内容,下面案例可供参考

一、基数

 某个列唯一键的数量叫做基数。比如性别列,该列只有男女之分。所以基数是2,主键列的基数等于表的总行数。基数高低影响列的数据分布。

grant dba to scott;

conn scott/tiger

create table test as select * from dba_objects;

SCOTT@PROD> select count(distinct owner),count(distinct object_id),count(*) from test;

COUNT(DISTINCTOWNER) COUNT(DISTINCTOBJECT_ID)   COUNT(*)
-------------------- ------------------------ ----------
                  29                    86970      86970

TEST表86970行,owner列的基数为29,说明该列有大量重复值。OBJECT_ID列的基数等于总行数,说明OBJECT_ID没有重复值,相当于主键。。owner列的数据分布如下

select owner,count(*) from test group by owner order by 2 desc;

owner的数据分布极不均衡,我们运行如下SQL

 select * from test where owner = 'SYS''

SYS列有37786条数据,也就是要返回表43.4%的数据


SCOTT@PROD> select 37786/86970*100 from dual;

37786/86970*100
---------------
     43.4471657
那么请你思考,你认为这样的查询应该走索引吗?

select * from test where owner = 'SCOTT'

 

 select 7/86970*100  Percent from dual;

 

 scott有7条数据,从86970多的表中取7条数据,相当于要返回表中0.009%的数据,那么请思考,返回表中0.08%的数据不应该走索引吗?


总结

如果你现在还不懂索引,那么请记住,当查询结果在5%以内的数据时,应该走索引,但查询结果超过表5%的数据时,应该走全表扫描。

 为什么会有这样的结论,请看下面章节进行概述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是sql性能问题。本书是作者十年磨一剑的成果之一,深入分析与解剖oracle sql优化与调优技术,主要内容包括: 第一篇“执行计划”详细介绍各种执行计划的含义与操作,为后面的深入分析打下基础。重点讲解执行计划在sql语句执行的生命周期中所处的位置和作用,sql引擎如何生成执行计划以及如何获取sql语句的执行计划,如何从各种数据源显示和查看已经生成的执行计划。 第二篇“sql优化技术”深入分析oraclesql优化技术,包括逻辑优化技术和物理优化技术。用大量示例详尽分析oracle 中现有的各种查询转换技术,先分析oracle如何收集、统计系统和对象的数据,然后推导各种代价估算公式,给出各种情形下的代价计算演示。 第三篇“sql调优技术”深入剖析oracle提供的各项调优技术。先对语句实际运行的性能统计数据进行了深度分析,介绍各项统计数据是由什么操作导致的以及如何统计。然后介绍如何对sql语句进行优化以获得稳定、高效的性能。最后,依据对sql优化及调优技术的分析,介绍如何快速优化sql的思路。 《oracle 高性能sql引擎剖析:sql优化与调优机制详解》内容丰富且深入,破解了oracle技术的很多秘密,适合oracle数据库管理员、应用开发人员参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值