【问题标题】:Running on IDE vs Running by .exe在 IDE 上运行与通过 .exe 运行
【发布时间】:2015-12-07 12:34:07
【问题描述】:

这是密码

using System;
using Oracle.DataAccess.Client;
using System.Text;

namespace Insert
{
    class Program
    {
        static void Main(String[] args) 
        {
            String param = "1";
            if (args.Length > 0)
            {
                param = args[0];
            }
            String connString = "User Id=****;Password=*******;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=*********)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl))); Connection Timeout=5";

            using (OracleConnection connection = new OracleConnection(connString))
            {
                connection.Open();

                OracleCommand cmd = connection.CreateCommand();

                cmd.CommandText = String.Format("INSERT INTO PROCESS_TEST ( SEQ, TEST ) VALUES ( TEST_SEQ.nextval, '{0}' )", param);
                cmd.ExecuteNonQuery();

                connection.Close();
            }
        }
    }
}

如您所见,这是非常简单的 C# 代码

它所要做的就是连接到数据库并插入一个字符串数据(默认为“1”)............好吧,我知道在连接工作下它可能会很乱Oracle.DataAccess.Client 但我不认为它是一个如此沉重的库,它会对应用程序性能产生如此大的影响。


在 IDE 上运行(我的情况是 Visual Studio 2013)

  • 眨眼间的速度很快,不到一秒。

由 .exe 运行

  • 太慢了称它为简单的应用程序。大约需要 3 到 5 分钟。
  • 此过程在 3-5 分钟后完成。我在代码的每一步都记录了日志,我注意到using (OracleConnection connection = new OracleConnection(connString)) 是主要原因。

内存

而且我不明白为什么执行该进程会占用超过 40MB 的内存。其他任何数据访问库是否会占用类似的内存量?


问题

  1. 在 IDE 上运行应用程序和通过 .exe? 运行应用程序有什么区别?
  2. 为什么我的应用程序在由 .exe 运行时需要这么长时间才能完成其工作?
  3. 为什么会有如此巨大的性能差异?
  4. 这是一个已知的Oracle.DataAccess 库问题吗?

环境信息

  • Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64 位生产
  • Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
  • 8.00GB 内存
  • Windows 7 家庭高级版 64 位

【问题讨论】:

    标签: c# oracle


    【解决方案1】:

    Oracle 过去曾遇到过类似问题,因为日志目录不存在。 This blog post 可以帮到你。

    【讨论】:

    • 从那里提到类似症状的评论(调试时快速)看来,当从调试器运行时,日志记录逻辑被跳过或修改
    • 谢谢,显然这就是原因。更改另一个数据访问库显然解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 2018-05-18
    • 2014-12-30
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多