当前位置: > 数据库 > Oracle >

Oracle数据库后端优化建议

时间:2019-03-06 16:56来源:linux.it.net.cn 作者:IT
一、使用参数化sql语句:
          非参数化的sql语句一般都需要硬解析,使用参数化的sql语句就能充分使用解析后的sql语句,从而达到了优化的效果。

二、管理对数据量巨大的表的访问:
          前期表的数据量都不会太大,因此我们要提前预估到那些表的数据量将是巨大的,并提前规划和管理对这些表的访问。

          数据量大的表的全表查询不但会产生文件读取(磁盘IO)还会使Oracle实例系统全局区中的数据缓冲区充满,因而当用户访问其它比较常用的数据时就需要从文件读取,产生了磁盘IO因此大大地降低了效率。

三、数据量大的时候避免在数据库中进行排序
          中间数据量过大会导致计算产生中间数据从内存中置换到temp表空间从而产生不必要的磁盘IO。

四、优化子查询
          避免在子查询中使用group by和order by,主要是为了减小中间数据量。中间数据量过大会导致计算产生中间数据从内存中置换到temp表空间从而产生不必要的磁盘IO。

五、视图
          如果视图中存在group by,尽量先用where过滤,也是为了减小中间数据量。中间数据量过大会导致计算产生中间数据从内存中置换到temp表空间从而产生不必要的磁盘IO。

六、使用UNION ALL代替UNION
          UNION相当于多使用了一个distinct,而distinct去重复效率不高尽量避免。

七、避免在SQL中使用PL/SQL的功能
          库缓存中sql解析缓存区和pl/sql解析缓存区是分开的,在sql中调用存储过程的话,系统在sql解析缓存中找不到pl/sql,因此会重新解析一次

 

(责任编辑:IT)
------分隔线----------------------------