Виктор, Ну мне надо понять почему очень медленно работает
SELECT * FROM MY_TABLE WHERE (COL_1,COL_2) IN
(SELECT COL_1 ,COL_2 FROM MY_TABLE WHERE COL_3 = 4107575)
Учитывая что
FOR a_row IN (SELECT COL_1 ,COL_2 FROM MY_TABLE WHERE COL_3 = 4107575) LOOP
FOR b_row IN (SELECT * FROM MY_TABLE WHERE COL_1=a_row.COL_1,COL_2=a_row.COL_2) LOOP
работает быстро.
Как переделать запрос чтобы он работал быстро?
FOR a_row IN (SELECT COL_1 ,COL_2 FROM MY_TABLE WHERE COL_3 = 4107575) LOOP
FOR b_row IN (SELECT * FROM MY_TABLE WHERE COL_1=a_row.COL_1,COL_2=a_row.COL_2) LOOP
....
END LOOP;
END LOOP;
Вот такой скрипт быстро отрабатывает.
Скриптом можно, но надо запросом, думаю что решение есть.
Rsa97, Что именно смотреть там? Я, кстати, с помощью FOR в скрипте достаточно быстро этот вопрос решаю, но надо именно SELECT. Думаю должно быть решение
Тоже бесконечно долго ищет. Таблица реально огромная, но COL_3 = 4107575 выполняется мгновенно, также как COL_1='значение' AND COL_2='значение'. Индексы так созданы.
#, как мне объяснили, разработчики не смогли "вытащить" IMEI якобы из-за политики производителей. Еще раз повторюсь, что спросить у разработчиков данного конкретного софта скорее всего не получится, вот и хотелось бы у других разработчиков спросить, сталкивались ли они с такой проблемой?
Большое спасибо за ответ!
Остается открытым вопрос почему в данной графе часто сохраняется в чистом виде IMEI?
Спросить у разработчиков у меня, скорее всего, не получится.
Можно ли по GUID как-то установить IMEI? Только через производителя или вообще никак?
Учитывая что
работает быстро.
Как переделать запрос чтобы он работал быстро?