浅谈Oracle数据库调优(3完)

一.Tuning Tip的各个方面

1.不要让Oracle做得太多;

(1)避免复杂的多表关联

select ...

from user_files uf , df_money_files  dm,cw_charge_record cc

where uf.user_no = dm.user_no

and dm.user_no = cc.user_no

and ...

and not exists(select ...大表)

随着数据量的增加性能的风险很大。

(2)避免使用‘ * ’

当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用’*’是一个方便的方法。不幸的是,这是一个非常低效的方法。实际上,Oracle在解析的过程中,会将‘*’依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间;

只提取你所要使用的列.

扫描二维码关注公众号,回复: 14463430 查看本文章

(3)避免使用耗费资源的操作

带有DISTINCT , UNION , MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎执行耗费资源的排序(SORT)功能。DISTINCT需要一次排序操作,而其他的至少需要执行两次排序。

通常,带有UNION,MINUS,INTERSECT的SQL语句都可以用其他方式重写。

2.给优化器更明确得命令;

(1)自动选择索引

如果表

猜你喜欢

转载自blog.csdn.net/sj349781478/article/details/126264305