信息系统运行缓慢,服务器已无法扩展? --烦恼
系统性能时快时慢,不知如何优化? --郁闷
每次程序发布后,系统异常缓慢? --痛苦
各种报表程序,查不出结果? --迷茫
《微课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';
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 微课sql优化(1)、基础概念介绍
微课sql优化(1)、基础概念介绍
26-03-03 - 微课sql优化(5)、统计信息收集(3)-关于默认采样率
微课sql优化(5)、统计信息收集(3)-关于默认采样率
26-03-03 - 微课sql优化(11) 、如何查看执行计划
微课sql优化(11) 、如何查看执行计划
26-03-03 - 微课sql优化(12)、表的连接方法(1)-帮助网友优化报表SQL
微课sql优化(12)、表的连接方法(1)-帮助网友优化报表SQL
26-03-03 - 微课sql优化(6)、统计信息收集(4)-关于动态采样
微课sql优化(6)、统计信息收集(4)-关于动态采样
26-03-03 - DB2 v101安装和卸载(Windows)
DB2 v101安装和卸载(Windows)
26-03-03 - 微课sql优化(10)、关于数据访问方法
微课sql优化(10)、关于数据访问方法
26-03-03 - 微课sql优化(15)、表的连接方法(4)-关于Hash Join(哈希连接)
- DB2备份与恢复
DB2备份与恢复
26-03-03 - 微课sql优化(13)、表的连接方法(2)-基础概念
微课sql优化(13)、表的连接方法(2)-基础概念
26-03-03
