目前许多的应用中我们多用到了oracle数据库,作为一名程序员,我们不需要太精通数据库的优化,但是基本的技能我们还是要掌握的,下面我们就oracle的性能优化做出一个总结:
1.优化表的结构
正常情况下我们设计出的表要满足3NF的要求,否则表中会有大量的冗余数据,这对我们以后的增删改非常的不利,加大了数据量,同时过分的追求3NF的设计原则,加大了我们查询过程中连接量,是造成系统性能低下的主要原因,因此我们需在实际应用做出决策,对于增删改多的表设计时要满足3范式的要求,而对于查询要求多的表可以允许存在一定数据冗余,提高查询性能
2.优化sql文
查询是我们系统开发室用到比较多的一个操作,因此sql文的好坏直接影响系统的性能。
对于oracle的sql文的优化,我们可以通过下列的方式获取性能低下的是sql文:
我们可以通过查询sql_area表来确定性能低下的sql文,结合sql执行计划表对sql文进行优化
通常我们的sql文需要满足下列的条件:
1. 连接查询的时候,我们队表的顺序要有规定,通常以记录表少的为主表,或者中间表为主表
2. 对于查询的字段,我们要在适当的字段建立适当的索引
3.查询的语句尽量大写
4.不要在查询的字段上进行计算
5.用>=代替>
6.用exists代替in
7.分组查询的时候尽量在where语句后面对记录进行过滤
8.全表删除是用truncat代替delete
9.不要用*进行查询
10.少用消耗资源的查询操作:having,union
11.限定查询返回的记录数
3.对数据库中经常用到的数据进行缓存,比如80%的时间在使用20%的数据,此时我们就应该使用查询
4.对数据库进行读写分离或者集群,例如mysql的主从复制,oracle的RAC
5.对数据库进行分区或者分表
6.利用大数据处理数据库如Memcache,monogodb等等
总之,实际中的应用我们要具体情况具体分析,找出适合的解决方案