性能优化

优化策略:1.服务器操作系统参数配置;2.oracle数据库参数配置;3.SQL语句优化;4.网络性能调整

数据库用户相应时间=系统服务时间+用户等待时间

1.减少系统服务时间,即调高oracle吞吐量;2.减少用户等待时间,即减少用户访问DB的冲突率

数据结构设计:第1范式,没有重复的组或多值的列;第2范式,每个非关键字段都必须依赖于主关键字;第3范式,1个非关键字不能依赖于另个非关键字

a 水平分割:按行分割分成多个表,oracle按行查询的,mysql按列查询,统计汇总时,程序更复杂

b.垂直分割:主键关联多个表,一次IO读取多个行,提高访问速度

访问Table方式:a.全表扫描;b.通过ROWID访表,oracle采用index实现数据和存放数据的物理地址联系rowid联系查询。

共享SQL语句:当同样的简单的sql语句之前已运行了,io已经把数据读入了SGA中,下次原样不需重读IO了

oracle查询多个表时,会以最右端的表为基表,然后排序以及合并,所以应数据量少的表做基表

where连接顺序,自下而上解析where子句,所以能够过滤掉最大的条件应放入最后

解析SQL包括估算索引的利用率、绑定变量、读取数据块,减少oracle访问次算,减少oracle工作量;null不能索引

如:select a.name,b.name from emp a,emp b where a.name='chen' and b.name='yang'

使用DECODE避免重复扫描相同记录或重复连接相同表

删除重复记录,delete from emp e where e.rowid>(select min(x.rowid) from emp x where x.no=e.no)

使用truncate替代delete 不需要commit且占用资源少

select name form emp e where e.no in (select t.no from dept) in比EXITS性能较低 NOT IN需要内部排序合并所以比NOT EXITS更低select name from emp e where EXITS (select 'X' from dept d where d.no=e.no)

order by在子句中不使用,且order by的字段用索引

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值