我正在使用 Oracle ODP.Net 11.2.0.2 提供程序连接到 Oracle 数据库。当我将以下代码作为控制台应用程序运行时,OracleConnection 对象的创建需要 2 分钟以上:
using System;
using Oracle.DataAccess.Client;
namespace OracleConnectionTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Creating connection...");
OracleConnection conn = new OracleConnection("Data Source=mydatabase;User Id=myuserid;Password=mypassword");
Console.WriteLine("Opening connection...");
conn.Open();
Console.WriteLine("Closing connection");
conn.Close();
Console.WriteLine("Done");
}
}
}
无论我是从命令行还是从 Visual Studio 运行控制台应用程序,都会出现缓慢的创建。但是,如果我在启用调试器的情况下运行它(使用 F5),它会运行得非常快。如果我将 .Net 项目编译为 64 位(并使用 64 位 Oracle 客户端),它会运行得很快。如果我在 Windows 服务应用程序中创建连接并启动服务,它会快速连接。一位同事能够在安装相同的 32 位客户端的情况下运行相同的代码,并且对他来说运行速度很快。
我的环境必须有一些独特的东西导致速度变慢。我在哪里可以确定正在发生的事情?