c#连接Oracle客户端对比

起因

工作这些年,使用Oracle数据库相不是很多,且Oracle数据库都是在Java项目中使用的.没有在.Net项目中使用过.今年从北京回来,换了工作,数据库主力是Oracle.最近的工作都是在和其他系统进行数据对接,提供数据给其他系统使用.对接的方式是提供视图.写完视图后,便写代码进行测试.

因为公司项目中是比较老的.使用的是System.Data.Oracle.dll,便突然想起使用Oracle.DataAccess.dll进行对比.因为原先有同事和其他公司做数据对接的时候,使用就是Oracle.DataAccess.dll,说实话对于使用Oracle的连接驱动,还一直停留不支持.Net Core的状态.刚才在.Net Core项目中使用Nuget管理器查看了一下.
DotNet Core连接Oracle驱动
最怕先入为主呀!

代码

string conStr = "xxxx";
using (IDbConnection con = new OracleConnection(conStr))
{
    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();
    int count = con.Query<int>("select count(NId) from D_PatientInfo").FirstOrDefault();
    stopwatch.Stop();
    Console.WriteLine(count);
    Console.WriteLine($"time:{stopwatch.ElapsedMilliseconds / 1000}");
}

代码一样,主要使用System.Data.Oracle.dll的时候,创建OracleConnection对象的时候,会提示过时的.在使用Oracle.DataAccess.dll获取数据的时候,比System.Data.Oracle.dll要快一半,可能是测试不严谨.明天使用BenchmarkDotNet进行多次测试对比一下.

秋风 2020-08-18