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

来源:这里教程网 时间:2026-03-03 15:13:45 作者:
信息系统运行缓慢,服务器已无法扩展?                --烦恼
系统性能时快时慢,不知如何优化?                    --郁闷
每次程序发布后,系统异常缓慢?                      --痛苦
各种报表程序,查不出结果?                          --迷茫
《微课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;
数据初始化脚本: 链接: https://pan.baidu.com/s/1eqvSSEfqKGOBlFx5z68POg     提取码:eebz

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';

相关推荐