ORACLE通用查询性能优化
来源:互联网 发布:淘宝优惠链接怎么弄的 编辑:程序博客网 时间:2024/05/23 19:20
声明:测试环境
(1)windows xp,2G内存,2.66G 单核CPU
(2)manager用户有单独的表空间与临时表空间
(3)300万条数据
表结构如下
用来造数据的存储过程,如下:
表的主键序列
表的触发器
一:最常用的ORACLE分页(单表)
(1)
select * from(
select rownum rn, a1.* from(
select u.id, u.name, u.age, u.money, u.class_id, u.rand_code, u.v_date_time, u.d_date_time
from users u
)a1 where rownum <= 10
)where rn >=5
(2)
select * from(
select rownum rn, a1.* from(
select u.id, u.name, u.age, u.money, u.class_id, u.rand_code, u.v_date_time, u.d_date_time
from users u
)a1
)where rn between 5 and 10
结论:(1)的平均时间在0.03xx秒,(2)的平均时间在1.25xx秒, 125/3, 效率大概相差40倍
------1:将(1)和(2)的from user u 改为 from user u order by u.id desc (注:id为PK),
(1)查询时间平均为0.04x秒,(2)的平均查询时间为3.4xx秒,340/4,效率大概相差快100倍
------2:将(1)和(2)的from user u 改为 from user u order by u.age desc (注:age无索引),
(1)查询时间平均为 1.9xx秒,(2)的平均查询时间为30.xxx秒,300/2,效率大概相差快150倍
------3:将(1)和(2)的from user u 改为 from user u order by u.age desc, u.name desc(注:age无索引, name无索引),
(1)查询时间平均为 1.9xx秒,(2)的平均查询时间为32.xxx秒,320/2,效率大概相差快160倍
------4:在3的基础上只加上一个inner join,
(1)查询时间平均为7.1 xx秒,(2)的平均查询时间为33.xxx秒,330/7,效率大概相差快 50倍
二:关于where 1 = 1(单表)
select u.*
from users u
where u.rand_code in (37908470,342553519,417764204)
and 1 = 1
加不加 and 1 = 1 这个条件,查询时间都在0.9xx秒,性能没有大的波动
三:关于 select u.* 和 select u.i, u.name, u.age (单表)
测试用SQL语句同二, 查询时间也在0.9xx秒,性能没有大的波动
四:where u.age = 20 与 where u.age = '20'(单表)
测试用SQL语句同二, 查询时间也在0.9xx秒,性能没有大的波动
五:关于select count(*), count(1) 与 count(u.age)(单表)
测试用SQL语句同二, 查询时间也在0.5xx秒,性能没有大的波动
- ORACLE通用查询性能优化
- oracle查询性能优化
- oracle 查询性能优化
- Oracle查询性能优化
- Oracle查询性能优化
- Oracle查询性能优化
- Oracle分页查询性能优化
- Oracle子查询性能优化一例
- oracle之date 查询性能优化
- (转)Oracle查询性能优化
- Java性能优化通用篇
- cocos2dx 通用性能优化方案
- Unity3D通用的性能优化
- cocos2dx 通用性能优化方案
- 通过调节索引 优化Oracle关联查询性能
- oracle 性能优化操作三:增加查询的范围限制
- oracle 性能优化操作三:增加查询的范围限制
- Oracle笔记第二篇----索引及查询性能优化
- 我的C算法库【3】:MERGE_SORT
- UML类图的几个关系及其区别
- VML教程
- jQuery对象和DOM对象使用说明
- GetAsyncKeyState
- ORACLE通用查询性能优化
- 【其他】【RQNOJ】三值排序
- 如何搭建Subversion服务器
- ERP 理论发展 基本概念 销售管理
- 面向对象设计模式的几个基本原则及其核心思想简介
- imx515 uboot 改变控制台
- VOIP 电话/VOIP网络电话的基本原理
- 一个比较好的代码注释方法
- Linux网络协议栈之网络设备管理