我正在使用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位客户端的情况下运行相同的代码,并为他快速运行。
我的环境必须有一些独特的东西导致减速。我在哪里可以确定发生了什么?
答案 0 :(得分:5)
尝试在Oracle主目录中创建“log \ diag \ clients”目录结构。请参阅this blog post - 博主遇到了同样的问题,并通过创建该目录结构解决了这个问题。