Как получить дочерние строки в DB2 для определенного подмножества родительских строк? - PullRequest
0 голосов
/ 30 августа 2011

У меня есть родительская строка и дочерние строки в 7-10 отдельных таблицах, а уникальный ключ связывает строки в дочерних таблицах с родительской строкой.Для функции поиска мне нужно получить родительский и все соответствующие дочерние строки на основе запроса к данным в родительской таблице.Есть до 5000 соответствующих родительских строк.В настоящее время мы перезапускаем запрос к каждой из дочерних таблиц, например:

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

Это выглядит довольно не элегантно, особенно когда мы продолжаем добавлять дополнительные дочерние таблицы.Есть ли лучший способ сделать это в DB2?

Некоторые из моих мыслей:

  • Будет ли DB2 повторно использовать результаты этого выбора?А как насчет большого количества запросов?
  • Я знаю ключи после родительского запроса, так что я могу передать их в SQL, но этот SQL сойдет с ума с 5000 ключами и предположительно превзойдет SQLlimit.
  • Стоит ли хранить ключи как временную таблицу или установка / разборка будет чрезмерной?

1 Ответ

0 голосов
/ 30 августа 2011

Это звучит как идеальный сценарий для использования программы RPG и использования хранимой процедуры, которая вызывает / потребляет ее.Таким образом, вы не совершаете так много поездок в оба конца.Передайте критерии поиска хранимой процедуре, и сохраненный процесс вызовет программу RPG.Пусть RPG объединит в цепочку «файлы», что ускорит ваш запрос.

...