powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / View обрабатывает долго в WHERE части и быстро в SELECT части
7 сообщений из 7, страница 1 из 1
View обрабатывает долго в WHERE части и быстро в SELECT части
    #32874793
apogee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый.
Наблюдаю такой казус - при попытке запросить view чем-то типа
Код: plaintext
SELECT custcode FROM MyView 
результат выдаёт 2-4 сек.
еслиже добавить этот MyView в параметр запроса
Код: plaintext
SELECT * FROM AnyTable WHERE param= 1 ... and AnyTable.custcode not in (select MyView.custcode from MyView)
исполняется 5..10 мин. а иногда и более

Если сделать MyTable содержание которой = MyView и использовать MyTable вместо MyView всё обрабатывает быстро.

Так что вот приходится содержание MyView сохранять в temp таблицу чтобы вернуло результат в реальном времени.
...
Рейтинг: 0 / 0
View обрабатывает долго в WHERE части и быстро в SELECT части
    #32874802
apogee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри помутнило, не тот форум
...
Рейтинг: 0 / 0
View обрабатывает долго в WHERE части и быстро в SELECT части
    #32874811
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО лучше подобные вопросы задавать на форумах, посвященным используемой БД. А навскидку можно попробовать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT * 
FROM AnyTable 
WHERE param= 1 ... 
and not exists (
  select  1  from MyView
  where MyView.custcode = AnyTable.custcode
);
...
Рейтинг: 0 / 0
View обрабатывает долго в WHERE части и быстро в SELECT части
    #32875123
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT FROM TABLE1...

просто выбирает записи из таблицы, а

SELECT FROM TABLE1... WHERE... NOT IN(SELECT...

выполняет подчинённый запрос для каждой строки таблицы TABLE1, что конечно же сильно сказывается на времени выполнения процедуры.
...
Рейтинг: 0 / 0
View обрабатывает долго в WHERE части и быстро в SELECT части
    #32876788
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrickдля каждой строки таблицы TABLE1
правда, что ли?
...
Рейтинг: 0 / 0
View обрабатывает долго в WHERE части и быстро в SELECT части
    #32876794
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dogen Garrickдля каждой строки таблицы TABLE1
правда, что ли?:)
...
Рейтинг: 0 / 0
View обрабатывает долго в WHERE части и быстро в SELECT части
    #32876959
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотря когда. Если подзапрос является соотнесенным (или кореллированным, не момню точное определение) с верхним запросом, то будет выполняться на каждую запись. Иначе - единожды. Впрочем, вдруг стоимостные оптимизаторы доросли до того, что и первый случай могут выполнять как-то иначе.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / View обрабатывает долго в WHERE части и быстро в SELECT части
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]