2010-04-08 46 views
1

我只是想给你一个小背景关于如何从oracle10g中提取600万条记录的建议?

  1. 需要写一个PL-SQL,这将浸汁6万个人次的纪录加入不同的表,并创建一个文件。
  2. 需要更多的建议,特别是如何获取这些记录。由于单次获取这些百万条记录可能会占用大量资源。所以问题是如何获取这些记录?

任何pl-sql将不胜感激。

+0

你是如何测试你的方法是如何表达资源意图的?你为什么考虑改变你的初始方法? – 2015-03-06 07:58:24

回答

0

600万行是不是所有的东西。只需编写查询并让优化器完成它的工作。如果你的统计数据是最新的,这也是自动的,它应该运行得很好。试图调整它可能会使其运行速度变慢,除非您比Oracle工程师团队更好地理解查询优化。

如果你所有的行都足够小,只使用PL/SQL是可以的。 UTL_FILE包将使用PUT_LINE命令将您限制为每行32767个字符。有一种解决方法,但它需要将数据复制到BLOB。

我建议安装Python和cx_Oracle或Perl和DBD :: Oracle。他们将愉快地翻转600万行,没有问题。默认设置是为了保持网络传输不变,设置好一大堆行。

如果你让我知道你想如何继续下去,我可以发布一些示例代码,但是搜索cx_Oracle或DBD的文档:: Oracle将提供关于如何获取记录的基础知识。

+0

您也可以考虑使用Java存储过程并使用标准的java.io类来编写文件。不过,您需要授予相应的Java权限才能写入文件系统。 – 2010-11-26 04:21:38

-2

我写了Java程序将所有记录写入文件。在我的选择上,我有20个线程,它像梦一样工作。

+1

欢迎来到Stack Overflow!这也许应该是一个评论,而不是一个答案,因为它几乎只是说你设法让这个工作没有提供任何具体细节。有了更多的代表,[你将能够发表评论](http://stackoverflow.com/privileges/comment)。 – 2015-03-06 07:36:46

相关问题