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

oracle优化sql详解

2011-10-22 21:28 176 查看
我们在写查询方法的时候,一定要优化下sql语句,不然会很麻烦。。记得我上次写过一个查询语句,然后查询的速度很慢,然后就交给项目经理了,之后给测试测的时候,硬是等了10多分钟才出来,然后找同事分析了下,是因为索引排列的不对,没有用到索引。。汗死,然后同事帮我调了好久,终于查询速度快了很多。 还有我们尽量使用Union all ,几条sql的合并,下面是我从网上找到的一些优化的sql,分享给大家。

No1:选择合适的优化器 No2:共享SQL 为了不重复解析相同的SQL语句,在第一次解析之后, ORACLE将SQL语句存放在内存中.这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享. 因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它

和之前的执行过的语句完全相同, ORACLE就能很快获得已经被解析的语句以及最好的

执行路径. ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用.

可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询.

数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性也就越大了.

当你向ORACLE 提交一个SQL语句,ORACLE会首先在这块内存中查找相同的语句.

这里需要注明的是,ORACLE对两者采取的是一种严格匹配,要达成共享,SQL语句必须

完全相同(包括空格,换行等).

转自:http://www.csdnjava.com/forum.php?mod=viewthread&tid=679
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: