数据库的开发经验总结

author:skate
time:2010-10-22


 

 

数据库的开发经验总结

 

一般数据库性能问题都是低效sql的原因,所以在数据库设计开发阶段就要开始考虑,加强数据操作的优化(sqlpl/sql优化),下面是我简单的总结了从建表到代码的一些常用优化经验,以后有时间会逐个部分细化

 

 

一.表/索引的创建

在我们的数据库结构中主要用了两种存储结构,普通堆表和B*索引;为了充分考虑数据存储优化,我们还要引入IOT和聚簇表;针对表使用频繁度、并发度,数据增长量等因素为表和索引设计pctfreeinittrans等存储参数;还有如何创建合适索引,这些都是我们在数据库设计阶段要考虑的。

 

二.Sql部分

Sql优化非常重要,需要考虑表的连接方式、表访问路径等,应该用索引的地方一定要用索引;在书写sql的时候,像distinctorder bygroup by* 尽量避免使用,如果无法避免那就尽可能的优化;还有像用union all 替代union,使用decode,使用表别名等,这些都是我们在写sql时要注意的

 

三.Pl/sql部分

优化的核心思想:

1. 避免过多复杂的sql脚本,避免过多的无用计算,如:嵌套循环,死循环等

2. 避免过多、过大的磁盘排序,尽量在内存中操作数据

3. 尽量减少单io磁盘访问数量和磁盘访问次数

 

 

在写pl/sql代码的时候,合理设计逻辑,避免大事务操作,下面几点也是需要特别注意的

1. 避免使用游标,如果一定要用,要尽可能的优化,避免在游标里有查询,尽量在循环外部操作

2. 使用本地动态sql, 批量处理,returning等优化pl/sql代码

3. 高效的使用流程控制语句,pl/sql内存表等,避免使用变量约束,隐式数据类型转换等

 

 

四.实际优化经验技巧

 

 

1.  批处理dml,合理利用forallbuck

2.  web分页优化

3.  临时表/中间过程表的应用,可以汇总一些需要经常计算的数据

4.  循环逻辑的设计,减少数据访问,避免死循环

5.  游标的使用

6.  pl/sql内存表的使用

7.  inlist增强变量绑定的使用

-------end------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值