C# 最佳/最快方法将Clob数据从csv文件插入oracle数据库
如何将包含clob字段的文件中的数据插入oracle数据库 从文件中读取。 插入到oracle数据库中 当clob数据存在时,可能会出现一些并发症C# 最佳/最快方法将Clob数据从csv文件插入oracle数据库,c#,oracle,file,clob,C#,Oracle,File,Clob,如何将包含clob字段的文件中的数据插入oracle数据库 从文件中读取。 插入到oracle数据库中 当clob数据存在时,可能会出现一些并发症 谢谢,Naveen我通常建议使用SQL*Loader或外部表,具体取决于文件是否(或是否可以)放置在数据库服务器上,或者您是否打算从客户端计算机加载文件 SQL*加载器控制文件的细节将取决于文件的格式,但文档中有一些示例可以让您开始使用。我通常建议使用SQL*加载器或外部表,具体取决于文件是(或可以是)放置在数据库服务器上,或者您是否打算从客户端计算
谢谢,Naveen我通常建议使用SQL*Loader或外部表,具体取决于文件是否(或是否可以)放置在数据库服务器上,或者您是否打算从客户端计算机加载文件
SQL*加载器控制文件的细节将取决于文件的格式,但文档中有一些示例可以让您开始使用。我通常建议使用SQL*加载器或外部表,具体取决于文件是(或可以是)放置在数据库服务器上,或者您是否打算从客户端计算机加载文件
SQL*加载器控制文件的具体内容取决于文件的格式,但文档中有一些示例可以让您开始使用。在我的上一家公司执行此操作时,我们使用存储的进程和多线程编写了一个C程序。上下调节线程有助于减轻数据库的负载。由于某些配置设置,我们无法使用Loader。关联数组也有帮助 在我们的例子中,我们无法进行一些优化,因为表是活动的,但是关闭索引并在加载后重建它们可以提高性能。我们在RAC环境中看到了每个RAC服务器在索引文件、分区和调整索引方面存在的问题,提高了性能,但我并不是一个真正的Oracle专家,因此您可能想问问更聪明的人
我确实知道,我们看到CLOB数据的性能非常差,因此我们将其中一个字段更改为一个压缩字符串,该字符串跨越多个varchar(4000),然后让程序在使用时将它们重新缝合在一起。在我上一家公司这样做时,我们使用存储的过程和多个线程编写了一个C程序。上下调节线程有助于减轻数据库的负载。由于某些配置设置,我们无法使用Loader。关联数组也有帮助 在我们的例子中,我们无法进行一些优化,因为表是活动的,但是关闭索引并在加载后重建它们可以提高性能。我们在RAC环境中看到了每个RAC服务器在索引文件、分区和调整索引方面存在的问题,提高了性能,但我并不是一个真正的Oracle专家,因此您可能想问问更聪明的人 我确实知道,我们看到CLOB数据的性能非常差,因此我们将其中一个字段更改为一个跨多个varchar(4000)的压缩字符串,然后让程序在使用时将它们重新缝合在一起。最小化瓶颈
- 移动文件,以便DB服务器可以通过一根很厚的管道直接访问这些文件
- 您希望数据库数据文件使用RAID 10(而不是RAID 5)
- 确保重做日志文件与数据文件位于不同的轴上。你不希望他们为了磁盘而争吵。您可能需要为此关闭重做日志文件的任何多路复用。您(可能)不希望将其作为生产数据库上的永久固定装置,但如果这是一项一次性工作,则值得这么做
- 关闭archivelog模式可能是值得的,因为可能会禁用任何复制。同样,可能只有在这是一次性的情况下才相关
- 移动文件,以便DB服务器可以通过一根很厚的管道直接访问这些文件
- 您希望数据库数据文件使用RAID 10(而不是RAID 5)
- 确保重做日志文件与数据文件位于不同的轴上。你不希望他们为了磁盘而争吵。您可能需要为此关闭重做日志文件的任何多路复用。您(可能)不希望将其作为生产数据库上的永久固定装置,但如果这是一项一次性工作,则值得这么做
- 关闭archivelog模式可能是值得的,因为可能会禁用任何复制。同样,可能只有在这是一次性的情况下才相关
我怀疑多个线程/进程是否会有很大帮助,因为我预计速度会受到写入磁盘而不是CPU的能力的限制。如果您可以将LOB分散到一个表空间中,其中包含多个轴上的文件,这可能会有所帮助 文件可能包含数千条或有时数百万条记录。我忘了添加此项应使用C#中间层文件可能包含数千条或有时数百万条记录。我忘了添加此项应使用C#中间层数据库来获取有关影响性能的硬件的有价值信息。对于我们来说,我们必须使用C#实现这一点。感谢您提供有关影响性能的硬件的宝贵信息。对于我们来说,我们必须使用C#来实现这一点。Dan OConnell您是如何将数据从文件插入数据库的。多线程。一个线程在文件中读取并填充了我们试图保存的对象列表(或者可能是列表列表,我不再是公司了,所以我面前没有代码)。主线程创建读取文件的线程。在读入足够的对象后,主线程将启动另一个线程以将这些新添加的对象发送到数据库,然后主线程等待,直到读入足够的对象以创建另一个线程。您还希望对thre的数量进行限制