Проверьте наличие данных в нескольких таблицах - PullRequest
0 голосов
/ 23 ноября 2011

Чтобы проверить наличие идентификатора в нескольких таблицах (10 - 15 таблиц), что будет лучшим вариантом? В точке исполнения.

  1. Использование объединений
  2. Использование отдельного запроса для каждой таблицы (вызывается из DAO Spring).
  3. Использование существует.

Необходимость принимать решения на основе существования идентификатора из нескольких таблиц.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2011

Использование UNION ALL:

SELECT 'table1' FROM table1 WHERE id = ?
UNION ALL
SELECT 'table2' FROM table2 WHERE id = ?
UNION ALL
SELECT 'table3' FROM table3 WHERE id = ?

Еще одним решением является использование функций:

select function(id)

Эти решения совершают поездку на сервер базы данных.

0 голосов
/ 23 ноября 2011

Вы можете измерить производительность между запросами в oracle с помощью плана объяснения (например, с помощью Oracle sql developer) и написать некоторый простой класс Java, чтобы увидеть, сколько времени это займет по сравнению с DAO.

Когда вы используете, существует Oracleбудет использовать ваши индексы pk и fk, и вы будете делать все это одним запросом внутри базы данных.Я думаю, что это лучший вариант, но если вы сравните их все, у вас будет точный вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...