powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация select-запросов с хранимыми функциями.
3 сообщений из 3, страница 1 из 1
Оптимизация select-запросов с хранимыми функциями.
    #32144582
solovey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет,
столкнулся с такой проблемой...

Select-запрос на пересечение таблиц, где в качестве условия пересечения
выступает выражение с использованием хранимых функций, повергает базу
в недоуменее на долгое-долгое время. Все, конечно, выполняется,
но за неприемлемое время!!!

А теперь подробнее,
есть объектный тип, например:
create or replace type TestType as object
(
...
member function getValue return integer,
...
);

и есть таблица, например:

create or replace table TestTable(
Temp TestType;
...
);

В таблице около 200 записей, но запрос, например, такой:

select t1.Temp, t2.Temp
from TestTable t1, TestTable t2
where t1.Temp.getValue()>t2.Temp.getValue() and ...;

выводит Oracle в нокаут примерно на минуту.

Насколько я понимаю, это происходит потому, что при пересечении
двух таблиц для каждых двух строк вызывается метод getValue(), то
есть он вызывается 200*200 - примерно 40000 раз. Но даже ежу понятно,
что гораздо эффективнее сначала выбрать в какой-нибудь буфер значения
getValue() для всех строк таблицы (тем более, что их не так уж и много), а
затем использовать эти значения при пересечении таблиц. При этом
getValue() надо вызвать только 200 раз и все будет летать.

Как заставить Oracle оптимизировать запросы именно так, а не иначе?
Или как это обойти? Танцы с бубном, типа создадим сначала вьюшку,
в которой будем вызывать getValue() и т.п. не помогают.

Может кто сталкивался с такой проблемой или знает как это лечится?
Заранее благодарен.
...
Рейтинг: 0 / 0
Оптимизация select-запросов с хранимыми функциями.
    #32145155
Alex623
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Индекс на функцию создать не пробовал?
...
Рейтинг: 0 / 0
Оптимизация select-запросов с хранимыми функциями.
    #32145286
Фотография viman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай
http://www.infocity.kiev.ua/db/content/db144.phtml
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Оптимизация select-запросов с хранимыми функциями.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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