Здравствуйте, у меня есть SQL-запрос, который я пытаюсь оптимизировать.Этот запрос завершается за 0,3 секунды, но мне нужно выполнить один и тот же запрос для множества различных идентификаторов хранилищ. В любом случае можно ли оптимизировать этот запрос, чтобы он выполнялся быстрее, или изменить его так, чтобы он получал все идентификаторы одновременно.
Я всегда могу создать новую команду в C #, которая соответствует команде, чтобы сделать ее объединением множества различных запросов.
select /*+ PUSH_SUBQ */ *
from mytable r
where r.s in (1, 7)
and r.d in (1, 75)
and r.storeid = 1162
and r.period = 20110528
and r.pid in (select /*+ no_unnest qb_name(subq1) */
productid from otherTable where itmid=9999)
Я уже пробовал что-то подобное, но это занимает вечность.
select /*+ PUSH_SUBQ */ *
from mytable r
where r.s in (1, 7)
and r.d in (1, 75)
and r.storeid in (1162, 1223, 1231, 51231, 231, ...)
and r.period = 20110528
and r.pid in (select /*+ no_unnest qb_name(subq1) */
productid from otherTable where itmid=9999)
У MyTable есть такие индексы: pid - НЕ УНИКАЛЬНЫЙ, РАЗДЕЛЕННЫЙ, НЕТ JOIN_INDEX для всех остальных столбцовУНИКАЛЬНЫ, РАЗДЕЛЕНЫ, НЕТ JOIN_INDEX