Как сделать пакетный выбор в oracle sql - PullRequest
0 голосов
/ 26 марта 2020

у меня есть одна макетная таблица table_a, как показано ниже:

   id   a   b    c    d  
   1    11  22  33  44  
   2    22  33  44  55  
   3    33  44  55  66  
   4    44  55  66  77  
   5    55  66  77  88  
   6    66  77  88  99  
   7    77  88  99  100  
   8    88  99  11  22  

предположим, что известная информация c и d, если я хочу получить id 2 и 6, я могу запустить 'select * from table_a где (c, d) в ((44,55), (88,99)) '.

Вот мой вопрос. Если в этой таблице 1 миллион строк, и я хочу получить 1 тысячу строк, просто зная их значения c и d, есть ли лучший способ сделать это? Моя задача - использовать приведенный выше скрипт для производительности . Спасибо.

1 Ответ

1 голос
/ 26 марта 2020

Если у вас есть индекс для (c, d), тогда Oracle должен использовать индекс для запроса in:

create index idx_table_a_c_d on table_a(c, d);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...