Stored procedures 使用.NET core时,Oracle托管访问存储过程性能较慢

Stored procedures 使用.NET core时,Oracle托管访问存储过程性能较慢,stored-procedures,.net-core,oracle-sqldeveloper,Stored Procedures,.net Core,Oracle Sqldeveloper,我正在使用.NET Core 2.0控制台应用程序和Oracle SQL Developer 19。我创建了一个存储过程,每次提取数据(~10000) 在Oracle Server上运行存储过程大约需要15秒,但是,当我尝试从.NET Core 2.0客户端获取数据时,需要1分钟:30秒。我正在使用Oracle.ManagedAccess.Core v2.19和动态参数Dapper 我不知道是什么原因造成了这次延误。我没有办法启用跟踪 OracleDynamicParameters param

我正在使用.NET Core 2.0控制台应用程序和Oracle SQL Developer 19。我创建了一个存储过程,每次提取数据(~10000)

在Oracle Server上运行存储过程大约需要15秒,但是,当我尝试从.NET Core 2.0客户端获取数据时,需要1分钟:30秒。我正在使用Oracle.ManagedAccess.Core v2.19动态参数Dapper

我不知道是什么原因造成了这次延误。我没有办法启用跟踪

 OracleDynamicParameters parameters = new OracleDynamicParameters();
            parameters.Add("METADATA_CURSOR", dbType: OracleDbType.RefCursor, direction: System.Data.ParameterDirection.Output);
            parameters.Add("p_batchsize", batchSize, dbType: OracleDbType.Int32, direction: System.Data.ParameterDirection.Input);
            parameters.Add("p_offset", offset, dbType: OracleDbType.Int32, direction: System.Data.ParameterDirection.Input);
            parameters.Add("p_IsIncrementalLoad", IsIncremental, dbType: OracleDbType.Int32, direction: System.Data.ParameterDirection.Input);
 results = _baseRepository.ExecuteQuery<MetaDataDBModel>(Schema + "." + Constants.GetMetadataDetails, System.Data.CommandType.StoredProcedure, parameters).ToList();
OracleDynamicParameters参数=新的OracleDynamicParameters();
parameters.Add(“METADATA_CURSOR”,dbType:OracleDbType.RefCursor,direction:System.Data.ParameterDirection.Output);
parameters.Add(“p_batchsize”,batchsize,dbType:OracleDbType.Int32,direction:System.Data.ParameterDirection.Input);
parameters.Add(“p_offset”,offset,dbType:OracleDbType.Int32,direction:System.Data.ParameterDirection.Input);
parameters.Add(“p_IsIncrementalLoad”,IsIncremental,dbType:OracleDbType.Int32,direction:System.Data.ParameterDirection.Input);
结果=_baseRepository.ExecuteQuery(Schema+““+Constants.GetMetadataDetails,System.Data.CommandType.StoredProcess,parameters)。ToList();
我的BaseRepository执行方法

 public IEnumerable<T> ExecuteQuery<T>(string query, CommandType commandType, OracleDynamicParameters parameters)
    {
        try
        {
            using (OracleConnection conn = new OracleConnection(_connectionString))
            {
                return conn.Query<T>(query, param: parameters, commandType: commandType);
            }
        }
        catch (Exception ex)
        {
            //_log.Error(ex.Message);
            throw;// new Exception(ex.Message);
        }
        return null;
    }
公共IEnumerable ExecuteQuery(字符串查询、CommandType CommandType、OracleDynamicParameters参数) { 尝试 { 使用(OracleConnection conn=新的OracleConnection(_connectionString)) { 返回conn.Query(Query,param:parameters,commandType:commandType); } } 捕获(例外情况除外) { //_日志错误(例如消息); throw;//新异常(例如Message); } 返回null; } 我尝试设置语句缓存,但运气不佳

非常感谢您的帮助。先谢谢你