如何将包含 clob 字段的文件中的数据插入到 oracle 数据库。
从文件中读取。插入oracle数据库
当存在 clob 数据时,可能会涉及一些复杂情况。
谢谢,纳文
我通常建议使用 SQL*Loader 或外部表,具体取决于文件是否(或可以)放在数据库服务器上,或者您是否打算从客户端计算机加载文件。
SQL*Loader 控制文件的细节取决于文件的格式,但文档中有加载存储在数据文件中的 CLOB 数据的示例,这些示例应该可以帮助您入门。
在为我的上一家公司做这件事时,我们使用存储过程和多线程编写了一个 C# 程序。上下限制线程有助于减轻数据库的负载。由于某些配置设置,我们无法使用 Loader。关联数组也有帮助。
在我们的例子中,我们无法进行一些优化,因为表是活动的,但是关闭索引并在加载后重建它们可以提高性能。我们在 RAC 环境中看到了问题,每个 rac 服务器争夺索引文件、分区和调整索引提高了性能,但我并不是真正的 Oracle 专家,所以你可能想问更聪明的人。
我确实知道我们看到 CLOB 数据的性能非常差,因此我们将其中一个字段更改为跨越多个 varchar(4000) 的压缩字符串,然后让程序在使用时将它们缝合在一起。
尽量减少瓶颈。
一旦你的硬件准备好应对繁重的写入负载,然后使用 SQL*Loader / 外部表。
我怀疑多个线程/进程是否会有所帮助,因为我希望速度会受到写入磁盘而不是 CPU 的能力的限制。如果您可以将 LOB 分布到具有多个轴上的文件的表空间中,那可能会有所帮助。