如何在DB2中为父行的特定子集获取子行?

时间:2011-08-30 17:56:09

标签: sql db2 hierarchical-data

我在7-10个单独的表上有一个父行和子行,并使用一个唯一键将子表上的行绑定到父行。对于搜索功能,我需要根据对父表中数据的查询来检索父级和所有匹配的子行。最多有5000个匹配的父行。目前,我们正在针对每个子表重新运行查询,例如:

select data from child 
where key in (select key from parent where search_criteria)

这似乎非常不优雅,特别是当我们继续添加更多子表时。有没有更好的方法在DB2中执行此操作?

我的一些想法:

  • DB2会重用那个选择的结果吗?如果有大量查询怎么办?
  • 我知道父查询后的密钥,所以我可以在SQL中传递它们,但是SQL会因为5000密钥而疯狂,并且可能超过了SQL限制。
  • 将密钥存储为临时表是否值得,或者设置/拆卸是否过度?

1 个答案:

答案 0 :(得分:0)

这听起来像是使用RPG程序并使用调用/使用它的存储过程的理想方案。这样,你就不会进行那么多的往返旅行。将搜索条件传递给存储过程,存储过程调用RPG程序。让RPG将“文件”链接在一起,这样可以加快查询速度。