- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当 Oracle 服务器位于另一台计算机上时,我发现 OracleBulkCopy (ODP.NET) 和 SQL*Loader 之间存在一些显着的性能差异。
我在 Oracle 中有一个非常基本的表,其中包含三列(一个 BINARY_FLOAT,两个 NUMBER(18,0))。没有主键、索引、触发器等。它用作临时表将批量数据获取到数据库中。
SQL*Loader 将 450 万行加载到表中大约需要 27 秒。
OracleBulkCopy 只需大约 10 分钟即可加载 100 万行。
OracleBulkCopy,根据文档,*"...使用直接路径加载方法,这与 Oracle SQL*Loader 相似但不同。"* 就性能而言,它可能与 SQL*Loader 不一样,但这种差异是荒谬的。
在对网络流量进行一些基本分析后,我发现 OracleBulkCopy 正在发送和接收大量小数据包。我使用 Wireshark 比较了每个数据包,发现了一些有趣的结果。
SQL*Loader - 在初始连接握手之后 - 发送一系列 8 KB 数据包(TNS 协议(protocol))并接收 60 字节 ACK 作为回应。
OracleBulkCopy 发送一系列 102字节数据包(TNS 协议(protocol))并接收 133字节数据包(TNS 协议(protocol))作为响应。什么……!?就像一次发送一排一样!
对于 OracleBulkCopy 类,我使用 100,000 的批处理大小,并使用自定义 IDataReader 从数据文件中读取。
所以,我的问题是:
最佳答案
我收到了甲骨文产品经理 Alex Keh 的回复,甲骨文“也注意到了这个问题。我们正在评估如何修复这个错误。”
所以在回答我自己的问题时,我猜 OracleBulkCopy 确实 不是 作为批量加载工具表现良好。至少目前不是。
我将包装 SQL*Loader 作为替代解决方案,因为错误修复中没有 ETA。
关于.net - OracleBulkCopy 与 SQL*Loader 性能对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9106366/
我的软件需要一次性插入大约5000条记录到Oracle数据库,所以我用了OracleBulkCopy去做这个。我的表使用触发器自动增加主键。但是OracleBulkCopy抛出“ORA-26086:直
这是我正在执行的代码: public static void Main(string[] args) { var connectionString = "Data Source=dbname;
这是我正在执行的代码: public static void Main(string[] args) { var connectionString = "Data Source=dbname;
我的 C# .NET 应用使用 OracleBulkCopy 将数百万条记录写入临时表。每次应用程序在内存中有 20000 条或更多记录时,它都会调用 OracleBulkCopy 将所有记录写入一个
我有五个线程。他们正在同时将 OracleBulkCopy(每个 100 万条记录)复制到同一个表 (EXCEL_DATA) 中。但是在某个时间点我遇到了以下错误: ORA-00604: error
当 Oracle 服务器位于另一台计算机上时,我发现 OracleBulkCopy (ODP.NET) 和 SQL*Loader 之间存在一些显着的性能差异。 我在 Oracle 中有一个非常基本的表
我使用批量复制将 DataTable 上传到 Oracle 数据库。我想知道有多少行被插入到数据库中。最近我在为 SQL Server 做同样的事情,我发现: FieldInfo rowsCopied
我正在使用 OracleBulkCopy 类并引用 Oracle.DataAccess.dll。我想使用 Oracle.ManagedDataAccess.dll 来轻松部署。但是后来我得到了构建错误
我是一名优秀的程序员,十分优秀!