SQL Plus vs Toad IDE-在SQL Plus中运行插入会花费更长的时间
||
我正在运行这样的查询:
INSERT INTO TableA (colA, colB)
Select ColA, ColB
from TableB
这是巨大的插入,因为它要查询200万行,然后将它们插入表中。我的问题是关于表现的。当我在蟾蜍中运行查询时,查询大约需要4-5分钟才能运行。
当我通过sqlplus运行查询时,它花费的时间更长。它已经运行了40分钟以上,尚未完成。我甚至通过关闭服务器输出来进行一些小的调整,以防影响性能。
关于通过sqlplus运行查询,我应该注意任何调优吗?有没有办法找出不同客户端执行/处理查询方式的差异?
注意:这是将数据从表A转移到表B的唯一方法。我已经研究了imp / exp和impdp / expdp,在我的情况下是不可能的。
蟾蜍-9.6.1.1版
SqlPlus-9.2.0.1.0
Oracle数据库-10克
没有找到相关结果
已邀请:
4 个回复
佩疵瓦
门锑腺潮
运行。
和
第二次可能更大(第二条语句需要做一些额外的工作,尽管这可能不足以解释时差)。 缓冲区高速缓存可以使第二个查询更快。以
运行,
可能会有很大差异。尽管有这么多的数据,但是很大一部分被缓存的机会可能很小。 其他会话可能会占用大量资源。看
,或者看v $ sysmetric_history。 您可能需要考虑并行和附加提示。您可能可以使该查询的运行速度提高10倍(尽管该方法存在一些缺点,例如 数据最初无法恢复)。 另外,对于测试,您可能希望使用较小的尺寸。用诸如
之类的文字插入。性能调整非常困难,如果可以运行,它将很有帮助 经常陈述。总会有一些骗局,您想忽略离群值,但是仅凭两个样本就无法做到这一点。 您可以查看每次运行的一些详细统计信息,但您可能需要使用
运行查询。然后运行此命令以找到sql_id:
然后运行此命令以查看每个步骤的详细信息:
(在11g中,可以使用v $ sql_monitor,或者甚至更好的dbms_sqltune.report_sql_monitor。)
膝垫富顷
街茬