您的位置:首页 > 数据库 > Oracle

ORACLE性能优化思路总结,抛砖引玉

2015-10-26 11:04 357 查看
ORACLE性能优化思路总结:

一、索引

适用及原则:

表记录量在3000以上,记录小没有意义

建索引的列为关联比较频繁的列,比如志愿表的报名号,

建索引的列没有空值

建索引的列值基本固定不会修改,否则效率会打折扣,需要做定期重建索引

建了索引会影响对该表的新增和修改的效率,如果可能,生产阶段不建,查询阶段建

--示例:志愿主表索引,志愿完成后创建

create index IDX_RECRUIT_STUWISH_MAIN_2 on RECRUIT_STUWISH_MAIN (examid);

create index IDX_RECRUIT_STUWISH_MAIN_3 on RECRUIT_STUWISH_MAIN (code_student);

create index IDX_RECRUIT_STUWISH_MAIN_4 on RECRUIT_STUWISH_MAIN (signcode);

二、语句写法及程序实现

弄清表结构及关系,SQL少走弯路

外部程序能获取传入的不要再重复到数据库去查

外部程序少做重复劳动,能复用的利用,不是复用方法,是复用数据,一个流程内一个数据只查一次,减少与数据库的交互次数

外部程序使用缓存,减少与数据库的交互

如果可以,尽量利用应用服务器实现业务逻辑,减少数据库服务器的负担

三、根据业务规则减少数据量

物理减少:历史数据迁移

逻辑减少:将普通表改造成分区表,按规则分区,建分区索引

create table tablename

(

CODE_STUDENT VARCHAR2(20) not null,

EXAMID VARCHAR2(8) not null,

SIGNCODE VARCHAR2(20),

CODE_GRADE_EXAM VARCHAR2(2)

)

partition by list (EXAMID)

(

partition P1 values ('14420101', '14420102‘),

partition P2 values (‘14420201’, ‘14420202’),

partition P0 values (default)

);

四、运维层面优化

增强硬件配置,CPU、内存、存储(磁盘阵列,减少磁盘IO)

双机同步,读写分离

部署ORACLE集群,实现高可用,如RAC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: