在IDE上运行与在.exe上运行

时间:2015-09-11 03:49:55

标签: c# oracle

这是代码

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

运行
  • Tooooooooo慢 将其称为简单应用程序。大约需要3到5分钟。
  • 此过程在3-5分钟后结束。我把日志放在代码的每一步上,我注意到using (OracleConnection connection = new OracleConnection(connString))是主要原因。

内存

enter image description here

我不明白为什么它占用超过40MB的内存来执行这个过程。是否有任何其他数据访问库占用类似的内存量?

问题

  1. 在IDE上运行应用程序与.exe?
  2. 之间的区别是什么
  3. 为什么我的应用程序在.exe运行时需要很长时间才能完成工作?
  4. 为什么会有这么大的性能差异?
  5. 这是一个已知的Oracle.DataAccess库问题吗?
  6. 环境信息

    • Oracle数据库11g企业版11.2.0.1.0版 - 64位生产
    • Intel(R)Core(TM)i7-3930K CPU @ 3.20GHz
    • 8.00GB RAM
    • Windows 7家庭高级版64位

1 个答案:

答案 0 :(得分:3)

Oracle过去也遇到过类似的问题,因为日志记录目录不存在。 This blog post可能会对您有所帮助。