4

Oracleデータベースに接続するためにOracleODP.Net11.2.0.2プロバイダーを使用しています。次のコードをコンソールアプリケーションとして実行すると、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ビットクライアントがインストールされている状態で同じコードを実行でき、彼のためにすばやく実行されます。

速度低下を引き起こしている私の環境に固有の何かがあるに違いありません。何が起こっているのかを判断するためにどこを見ればよいですか?

4

1 に答える 1

5

Oracleホームに「log\diag\clients」ディレクトリ構造を作成してみてください。このブログ投稿を参照してください-ブロガーはあなたが持っていたのと同じ問題を抱えていて、そのディレクトリ構造を作成することによってそれを解決しました。

于 2013-02-21T19:59:14.650 に答える