【问题标题】:Running sql scripts from sqldeveloper vs from java code从 sqldeveloper 与从 java 代码运行 sql 脚本
【发布时间】:2011-08-18 07:12:57
【问题描述】:

我正在尝试在 Oracle 11g R2 中运行一些 sql 脚本

当我尝试从独立的 java 代码运行这些脚本时,查询会运行 40 多分钟,但当我从 sqldeveloper 客户端运行相同的脚本时,它会在 4 分钟内运行

可能是什么原因?


编辑

我正在做一些更新脚本,调用一个 pl/sql 过程

是的,我正在做一个字符串连接

【问题讨论】:

  • 你正在执行什么样的语句和多少条语句? (选择、插入、更新)
  • 您发送了多少数据(对于写入语句)以及您检索的行数。
  • 您没有向我们展示的所有内容:您的代码。我怀疑你在一个紧密的循环中做一些可疑的事情,比如字符串连接。
  • 只是在黑暗中的一个镜头:SQLDeveloper 是 ODBC,而从 java 中你可以使用 JDBC。
  • @avid:SQLDeveloper(来自 Oracle)是一个基于 Java/JDBC 的工具

标签: java sql oracle11g oracle-sqldeveloper


【解决方案1】:

要从 java 中执行 sql,请执行以下步骤:

  • 打开连接(700 毫秒)
  • 准备一个语句(80 毫秒)
  • 执行语句(10ms)

时序示例来自我的环境,作一个简单的陈述。您的环境会有所不同,但时间比例会相似。关键是打开连接可能比实际执行语句要昂贵得多。

检查您的代码是否打开连接并在循环内准备语句。这可能占您时间的很大一部分,并解释了为什么脚本比使用 sql developer 启动时要慢。您应该打开一次连接,然后重新使用该连接。如果不是上传大量数据,那么无论是从 sql developer 还是其他客户端启动,代码在数据库服务器上运行所需的时间都是相同的。

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 2018-09-08
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2023-03-05
    • 2011-07-12
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多