NHibernate与Oracle插入速度很慢

时间:2013-05-15 16:41:12

标签: oracle nhibernate

我正在使用带有Castle Active Record的NHibernate 3.2。我想在成功使用Postgresql和SQL Server之后在Oracle 11g上实现。

我发现与Postgres或SQL Server相比,在我们的应用程序中插入Oracle需要很长时间。对于可能需要约500毫秒的SQL Server上的Castle AR会话范围配置在Oracle上占用5秒或更多。这两个数据库位于同一台测试机器上,因此它不是网络。

我正在使用Oracle .NET提供程序(稍微提高了速度),并且已将表中的任何CLOB和VARCHAR2替换为NVARCHAR2列。我的配置看起来像

            Dictionary<string, string> oracleProperties = new Dictionary<string, string>
            {
                {"connection.provider", "NHibernate.Connection.DriverConnectionProvider"},
                {"connection.driver_class", "NHibernate.Driver.OracleDataClientDriver"},
                {"dialect", "NHibernate.Dialect.Oracle10gDialect"},
                {"proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"},
                {"adonet.batch_size", NHIBERNATE_BATCH_SIZE.ToString(CultureInfo.InvariantCulture)},
                {"connection.connection_string", this.ConnectionString}
            };
            InPlaceConfigurationSource source = new InPlaceConfigurationSource();

 `ConnectionString` looks like

 "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=serverAddress)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=service)));User Id=id;userName;Password=userPassword;Min Pool Size=25;Decr Pool Size=2;"

关于我可能遗失的任何想法?

感谢。

0 个答案:

没有答案