Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / View обрабатывает долго в WHERE части и быстро в SELECT части / 7 сообщений из 7, страница 1 из 1
20.01.2005, 14:20
    #32874793
apogee
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View обрабатывает долго в WHERE части и быстро в SELECT части
День добрый.
Наблюдаю такой казус - при попытке запросить 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
20.01.2005, 14:22
    #32874802
apogee
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View обрабатывает долго в WHERE части и быстро в SELECT части
сорри помутнило, не тот форум
...
Рейтинг: 0 / 0
20.01.2005, 14:24
    #32874811
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View обрабатывает долго в WHERE части и быстро в SELECT части
ИМХО лучше подобные вопросы задавать на форумах, посвященным используемой БД. А навскидку можно попробовать:

Код: 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
20.01.2005, 15:43
    #32875123
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
View обрабатывает долго в WHERE части и быстро в SELECT части
SELECT FROM TABLE1...

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

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

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


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