ITPUB论坛 » Oracle开发 » 奇怪的SQL問題,format以后运行速度加快?


2008-7-3 12:06 olive
奇怪的SQL問題,format以后运行速度加快?

我有一条SQL,比较长,一开始写的时候没有换行,运行的时候奇慢,甚至撑爆temp空间,但是我用toad的format功能整理了一下,就运行的很快。
format没有做任何的改动,只是把原来的一行改成了多行,加了一些空格之类,改善了可读性而已,怎么会造成运行速度的差异?

2008-7-3 12:21 DragonBill
这个速度跟SQL的排版没有关系吧?

2008-7-3 12:38 jvkojvko
很纳闷,怎么会这样呢?

2008-7-3 12:50
有加提示?

2008-7-3 15:30 yuchangle
服务器原因

2008-7-3 15:34 shiguibao
莫非是format成了oracle喜欢的格式,哈哈:)

2008-7-3 15:47 棉花糖ONE
最好对比下前后的执行计划

2008-7-3 18:18 olive
[quote]原帖由 [i]棉花糖ONE[/i] 于 2008-7-3 15:47 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10843242&ptid=1015926][img]http://www.itpub.net/images/common/back.gif[/img][/url]
最好对比下前后的执行计划 [/quote]
对,应该对比一下执行计划。
另,这里简直成了水版。

2008-7-3 20:50 zhangfengh
水吗?哪个帖子?pm给我,我处理去

2008-7-3 21:21 laobai1982
tode 我不用但是pl/sqldevenper的格式化肯定没这功能!肯定不是格式化的问题!

2008-7-3 23:02 cosio
最好贴代码!

2008-7-4 16:51 olive
代码贴出来没有什么用,因为没有数据,也运行不了。

2008-7-4 22:24 newkid
不是格式化的问题,是因为数据进了CACHE,第二次就比较快。
alter system flush buffer_cache;
再运行一次看看是不是变慢了?

2008-7-4 23:33 olive
[quote]原帖由 [i]newkid[/i] 于 2008-7-4 22:24 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10860582&ptid=1015926][img]http://www.itpub.net/images/common/back.gif[/img][/url]
不是格式化的问题,是因为数据进了CACHE,第二次就比较快。
alter system flush buffer_cache;
再运行一次看看是不是变慢了? [/quote]
不是这个原因,反反复复运行好几次了。

2008-7-5 00:02 liangf215
第二次执行时有第一次的执行 oracle已经解析了语句而且把数据放到缓存了

2008-7-5 08:36 sunfly1983
同意楼上的观点,第二次执行是不用在从磁盘度数据了!速度会大幅度增加!

2008-7-5 09:30 alantany
应该是optmizer_mode不同导致的

2008-7-5 10:52 newkid
跟optmizer_mode无关,他两次编译又没有改变optmizer_mode,两个等价SQL应该生成同样的计划。

2008-7-5 12:41 caizhuoyi
是不是你格式化的同时cursor_sharing参数被人改了。


2008-7-5 12:57 ispu
感觉上可能是优化器变化了。有可能那个表原来没做统计,但扫描一次后也重新生成执行策略了,相当于重新分析了一下表。

页: [1] 2


Powered by ITPUB论坛