公司说要把ORACLE一些表的数据导成一个二进制文件。
为了提高导出速度,我又了一个疯狂的想法。只要输入一个ID,我把相关的10张表可能有上千万行的数据全部弄到一个BLOB字段返回给前端,觉得可行么?
具体要怎么操作?请各位达人帮忙思考一下,万分感谢!!!
为了提高导出速度,我又了一个疯狂的想法。只要输入一个ID,我把相关的10张表可能有上千万行的数据全部弄到一个BLOB字段返回给前端,觉得可行么?
具体要怎么操作?请各位达人帮忙思考一下,万分感谢!!!
没有多大的意义.感觉你并没有降低消耗呀.还不如直接用exp导出,direct=y.来的方便. 关键是看你们的用途了.
那这位兄台,给个方案?exp 多表多查询怎么导出到一个文件?然后又能导入?
如果你的应用只是很少情况才这么做,那么你也不必写程序了。 1-7楼可以解决你的需要,就是exp,imp或者expdp,impdp。不知到你的具体,只能这么建议。
如果是并发的,并却网络中存在其它应用,不建议这么处理,因为大量的CPU,I/O,和网络可能让其它应用缓慢甚至瘫痪。
也许你们可以采取更好的方式。
-----------------------------------
以上纯属妄言!
应另有高人能够指点一二。
自己可以实现的,不过上千万的数据,效率的问题是关键。
2.导出数据关系到10个表(多层关联),上千万行数据。导出条件为父表的一个ID
3.exp能导出单表的查询条件,但不知道多表的查询如何导出?或者我必须要根据表关系次序做10次exp?现在明白我的需求了么?
1)数据仓库,涉及到数据挖掘的,有巨量的数据库,如果是这样必须改变硬件以及ORACLE的安装,例如使用RAC,
通过分区,并行等方式解决,硬件成本较高.
这方面我所知有限.
2)如果你的条件无法达到(包括硬件和软件),那么可以采取差一个级别的设计(其实不一定能够更差),安装更多的ORACLE实例在不同的硬件上,
而这些硬件要求不那么高。
按照时间或者其它条件把数据转储到不同的其它机器上(我相信这个归档的过程不会比你的设计慢),在需要的时候查询备份及其即可,
这需要修改你的应用程序的设计思路-这种思路在大型的网站上多有应用.其它可以解决的方式没有尝试过,但估计需要用时间来换空间,如果不在乎时间也是可以尝试的.
如果你的系统是需要需要处理比如连续10几20年的银行明细之类的,我不知道如何处理更好一些,因为很多和应用有关.
我那个设计确实有点惊世骇俗的,目前还是觉得用exp/imp(oracle还是817的,好汗)比较好,不过有一个问题就是exp的参数query不支持多个值,所以我没办法一次性导出10个表。这样,莫非我非得要用10次EXP?再用10次IMP?
1)数据仓库,涉及到数据挖掘的,有巨量的数据库,如果是这样必须改变硬件以及ORACLE的安装,例如使用RAC,
通过分区,并行等方式解决,硬件成本较高.
这方面我所知有限.
2)如果你的条件无法达到(包括硬件和软件),那么可以采取差一个级别的设计(其实不一定能够更差),安装更多的ORACLE实例在不同的硬件上,
而这些硬件要求不那么高。
按照时间或者其它条件把数据转储到不同的其它机器上(我相信这个归档的过程不会比你的设计慢),在需要的时候查询备份及其即可,
这需要修改你的应用程序的设计思路-这种思路在大型的网站上多有应用. 其它可以解决的方式没有尝试过,但估计需要用时间来换空间,如果不在乎时间也是可以尝试的.
如果你的系统是需要需要处理比如连续10几20年的银行明细之类的,我不知道如何处理更好一些,因为很多和应用有关.