ITPub博客

首页 > 数据库 > Oracle > 微课sql优化(1)、基础概念介绍

微课sql优化(1)、基础概念介绍

原创 Oracle 作者:orastar 时间:2020-03-03 14:56:17 0 删除 编辑
信息系统运行缓慢,服务器已无法扩展?                --烦恼
系统性能时快时慢,不知如何优化?                    --郁闷
每次程序发布后,系统异常缓慢?                      --痛苦
各种报表程序,查不出结果?                          --迷茫
《微课sql优化》帮您消除以上困惑,优化Oracle数据库性能,提升用户体验,希望以下内容,对您有所帮助!

1、SQL优化的核心思想及目的


1、SQL优化的核心思想: 减少IO次数 (物理和逻辑)
2、SQL优化的目的:减少SQL执行时间

2、练习环境说明


create user  ht identified by ht;   --创建优化用户
grant dba to ht;  --授权
create tablespace yh datafile '/u01/app/oracle/oradata/sndb1/yh01.dbf' size 1g autoextend off;--创建优化数据表空间
drop table ht.c_cons;
drop table ht.a_amt;
create table ht.c_cons(      --用户信息表
cons_no number primary key,   --用户编号,主键
cons_name varchar2(100),       --用户姓名
org_name varchar2(100),         --用户单位
build_date date,                      --建户日期
status varchar2(20)                 --用户状态,open、creating、close
) tablespace yh;
create table ht.a_amt(            --账务信息表
amt_id number primary key,   --账务编号,主键
cons_no number,                   --用户编号
amt_ym varchar2(20),            --账务年月
amt number                          --出账费用
) tablespace yh;


3、Query Optimization


? Rule-based optimizer (RBO):
– Based on fixed ranking of possible access paths
– Will be desupported with Oracle Database 10g 
? Cost-based optimizer (CBO):
– Introduced with Oracle7
– Based on object statistics

4、概念1、sql优化3要素


Cost-Based Optimization (CBO)
CBO uses statistical information about the objects being queried to determine the most cost-effective:
? Access paths   访问路径
? Join methods   联接方式
? Join orders   联接顺序

5、概念2、基数与选择性


基数(Cardinality):基数表示表中的行数。

选择性: 表示谓词从行集过滤特定数量的行。谓词的选择性表示有多少行符合查询条件。选择范围从0.0到1.0。选择性为0.0表示没有从行集中选择行,而选择性为1.0表示选择了所有行。当该值接近1.0时,该谓词变得更具选择性,因为该值接近0.0并且具有较小的选择性(或更多的非选择性),
                                  # rows satisfying a condition
Selectivity   =    -----------------------------------------------------

                                        Total # of rows  

SQL> select job,count(1) from scott.emp group by job;
JOB          COUNT(1)
--------------------------- ----------
CLERK         4
SALESMAN         4
PRESIDENT         1
MANAGER           3
ANALYST           2

6、课后练习


问题1、统计已销户用户数量,请优化以下语句
select count(1) from ht.c_cons where status='close';


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31442014/viewspace-2678248/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
作者简介:惠星星,现就职于云和恩墨,持有OCP 10g、OCP 11g、OCM 11g证书,并有长达8年电力行业业务维护、数据库维护服务经验,擅长Oracle数据库性能优化、故障处理及Oracle internal研究。

注册时间:2017-03-08

  • 博文量
    171
  • 访问量
    429769