c#通过Oracle.DataAccess访问Oracle数据库的性能及访问方式小结
2017-11-27 18:59
465 查看
由于做一个同步Oracle数据库数据的软件,遇到一些性能问题,因此重点测试了一下调用Oracle.DataAccess.dll执行数据库操作的性能,只是对软件中存在的一些问题做了一些针对性的测试,因此,测试说不上全面,只是记录了一下这次测试的结果及由此产生的一些延伸。
测试使用了OracleConnection,OracleCommand,OracleDataReader这一组组合,以及OracleConnection,OracleDataAdapter,DataSet组合。在测试中发现在本机第一次打开数据库时,大概需要1.6秒的时间,如果不关闭数据库连接,大概以后每次执行需要1.2秒的时间。
在打开数据库后,每次操作完成,关闭数据库连接。这时,除第一次大概需要1.6秒的时间,其余时间基本为0。说明在这种情况下,C#内部存在优化机制,复用上次已打开的数据库连接,而未新打开数据库连接。从Oracle数据库查看连接也印证了这个机制。
在Oracle数据库的连接字符串中有这样一个设置:“Pooling=True”,这是设置数据库的连接池是否启用,启用的情况下,最大使用100个连接,超过这个数字,会产生数据库超时的错误。在不启用数据库的连接池时,在超过一定数目时,Oracle一次性的抛弃所有连接。
另外一个问题,数据库的游标,在记录集打开之后,如果不关闭,那么这个表的游标会不断增加,最后导致的结果的游标超过最大值。
测试使用了OracleConnection,OracleCommand,OracleDataReader这一组组合,以及OracleConnection,OracleDataAdapter,DataSet组合。在测试中发现在本机第一次打开数据库时,大概需要1.6秒的时间,如果不关闭数据库连接,大概以后每次执行需要1.2秒的时间。
在打开数据库后,每次操作完成,关闭数据库连接。这时,除第一次大概需要1.6秒的时间,其余时间基本为0。说明在这种情况下,C#内部存在优化机制,复用上次已打开的数据库连接,而未新打开数据库连接。从Oracle数据库查看连接也印证了这个机制。
在Oracle数据库的连接字符串中有这样一个设置:“Pooling=True”,这是设置数据库的连接池是否启用,启用的情况下,最大使用100个连接,超过这个数字,会产生数据库超时的错误。在不启用数据库的连接池时,在超过一定数目时,Oracle一次性的抛弃所有连接。
另外一个问题,数据库的游标,在记录集打开之后,如果不关闭,那么这个表的游标会不断增加,最后导致的结果的游标超过最大值。
相关文章推荐
- C#通过Oracle.ManagedDataAccess无法访问Oralce
- C#连接Oracle数据库使用Oracle.ManagedDataAccess.dll
- C#远程连接Oracle数据库(通过System.Data.OracleClient)
- C#连接Oracle数据库(直接引用dll使用-Oracle.ManagedDataAccess.dll)
- 使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
- 【转】使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
- 使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
- 使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
- Oracle.DataAccess.Client.OracleException ORA-00600: 内部错误代码,通过C#执行上面存储过程报错,而通过PLSQL执行不报错。谁知道原因。
- 通过OleDB连接方式,访问Access,Excel数据库.
- Microsoft Enterprise Library June 2005--Data Access Application Block访问Oracle数据库(1)
- C#用Oracle.DataAccess中连接Oracle要注意版本问题!转)
- 各方式连接oracle db 的性能测试(c#)
- ADO.NET(二) oracle数据库链接、和Oracle.DataAccess.dll 有关异常的各种问题
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- C# 所生成项目的处理器架构“MSIL”与引用“Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=x86”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。
- C# 连接Oracle数据库 遇到“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”的解决方案
- 通过odbc的方式在64位服务器访问32位oracle
- Oracle.ManagedDataAccess.dll 连接Oracle数据库不需要安装客户端
- Android通过oracle的jdbc驱动直接访问oracle数据库