日期:2014-05-16  浏览次数:21090 次

关于大数据量的表的联合查询
本帖最后由 belovedmilan 于 2013-10-17 21:08:49 编辑
1、现在有两张表,
一张表为资产(资产代码,A代码,B代码,C代码),
另一张为关系表(子类型,子代码,父类型,父代码),
关系表里面存了所有资产之间的关系。两张表的数据量差不多,大约都有一百万条数据左右,估计表里面内容的变动不会很频繁。
2、现在要做的事情是根据资产表的资产代码到关系表去查该资产的A,B,C代码。
3、我目前的做法是根据资产代码到关系表去查他的其他ABC代码,因为是树形结构的关系,所以并不是直接在关系表中就可以找到需要的结果,而是要根据资产代码到关系表里面去查的父亲或者祖先相应的A,B,C代码。写了一个存储过程,根据每一行的资产代码到关系表去查。因为查询的关系表太大,目前这个存储过程的耗时完全无法接受。请问大家有什么好的建议吗? 刚接触到这么大量的数据,完全没有经验,请大家帮忙啊!
大数据 oracle 联合查询

------解决方案--------------------
第一索引必不可少
第二使用start with 和 connect by
------解决方案--------------------
引用:
Quote: 引用:

第一索引必不可少
第二使用start with 和 connect by

谢谢!目前就是使用START WITH语句去查树形结构的东西。。。因为之前是在ETL中调用数据库函数,每一条数据调用一次,根据资产编号到关系表去查。感觉这样效率实在是很低下。有什么建议吗?是应该在ETL做完之后,统一对数据进行UPDATE,还是其他的方法?


怎么又有了函数和update,和一开始的需求不一样啊,老板!

只说查询的话,实际上直接连表查询就行了
update应该也可以连表进行
函数是用来干什么的?