Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 最佳/最快方法将Clob数据从csv文件插入oracle数据库_C#_Oracle_File_Clob - Fatal编程技术网

C# 最佳/最快方法将Clob数据从csv文件插入oracle数据库

C# 最佳/最快方法将Clob数据从csv文件插入oracle数据库,c#,oracle,file,clob,C#,Oracle,File,Clob,如何将包含clob字段的文件中的数据插入oracle数据库 从文件中读取。 插入到oracle数据库中 当clob数据存在时,可能会出现一些并发症 谢谢,Naveen我通常建议使用SQL*Loader或外部表,具体取决于文件是否(或是否可以)放置在数据库服务器上,或者您是否打算从客户端计算机加载文件 SQL*加载器控制文件的细节将取决于文件的格式,但文档中有一些示例可以让您开始使用。我通常建议使用SQL*加载器或外部表,具体取决于文件是(或可以是)放置在数据库服务器上,或者您是否打算从客户端计算

如何将包含clob字段的文件中的数据插入oracle数据库

从文件中读取。 插入到oracle数据库中

当clob数据存在时,可能会出现一些并发症


谢谢,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模式可能是值得的,因为可能会禁用任何复制。同样,可能只有在这是一次性的情况下才相关
一旦您的硬件适应了沉重的写负载,那么就使用SQL*加载器/外部表

我怀疑多个线程/进程是否会有很大帮助,因为我预计速度会受到写入磁盘而不是CPU的能力的限制。如果您可以将LOB分散到一个表空间中,其中包含多个轴上的文件,这可能会有所帮助

最小化瓶颈

  • 移动文件,以便DB服务器可以通过一根很厚的管道直接访问这些文件
  • 您希望数据库数据文件使用RAID 10(而不是RAID 5)
  • 确保重做日志文件与数据文件位于不同的轴上。你不希望他们为了磁盘而争吵。您可能需要为此关闭重做日志文件的任何多路复用。您(可能)不希望将其作为生产数据库上的永久固定装置,但如果这是一项一次性工作,则值得这么做
  • 关闭archivelog模式可能是值得的,因为可能会禁用任何复制。同样,可能只有在这是一次性的情况下才相关
一旦您的硬件适应了沉重的写负载,那么就使用SQL*加载器/外部表


我怀疑多个线程/进程是否会有很大帮助,因为我预计速度会受到写入磁盘而不是CPU的能力的限制。如果您可以将LOB分散到一个表空间中,其中包含多个轴上的文件,这可能会有所帮助

文件可能包含数千条或有时数百万条记录。我忘了添加此项应使用C#中间层文件可能包含数千条或有时数百万条记录。我忘了添加此项应使用C#中间层数据库来获取有关影响性能的硬件的有价值信息。对于我们来说,我们必须使用C#实现这一点。感谢您提供有关影响性能的硬件的宝贵信息。对于我们来说,我们必须使用C#来实现这一点。Dan OConnell您是如何将数据从文件插入数据库的。多线程。一个线程在文件中读取并填充了我们试图保存的对象列表(或者可能是列表列表,我不再是公司了,所以我面前没有代码)。主线程创建读取文件的线程。在读入足够的对象后,主线程将启动另一个线程以将这些新添加的对象发送到数据库,然后主线程等待,直到读入足够的对象以创建另一个线程。您还希望对thre的数量进行限制