Страница 1 из 1

Использование параметров в Stored Procedure

Добавлено: 09 апр 2005, 20:07
MirrorBoy
У меня есть хранимая процедура (ХП),использующая входной параметра.
В ней выполняется запрос, использующий этот параметр
Время выполнения запроса в чистом виде: 15 секунд
Время выполнения хранимой процедуры: 15 секунд
Создаю запрос, использующий мою ХП и сортирующий даные, полученные из нее
Время выполнения запроса: 15 секунд
Создаю новую ХП. В нее запихиваю этот запрос
Эта вторая ХП тоже использует входной параметр. Я его "сквозняком" передаю в вызов первой ХП
Время выполнения этой второй хранимой процедуры: 6 минут!!!!!!!
Если не использую входной параметр, а в вызов первой ХП подставляю "живое значение" то ХП2 выполняется 15 секунд
Напрашивающийся вывод: почему-то использование входного параметра при ВЛОЖЕННЫХ хранимых процедурах приводит к НЕИСПОЛЬЗОВАНИЮ индексов.
Может кто подскажет в чем может быть проблема?
Использую Windows 2000 и Interbase 5.5

Добавлено: 09 апр 2005, 22:01
kdv
какие, блин, индексы. процедура это "черный" ящик. Если выборка идет из процедуры, то фактически на самом деле тебе показывается только часть данных. Полностью данные ты увидишь только при FetchAll.
Когда же ты первую процедуру вызываешь из второй, то тут опять же, ни о каких индексах не может быть и речи.

То есть, разница в количестве обрабатываемых (показываемых) данных. Производительность определяет только сам запрос (его можно проверить отдельно).

Добавлено: 10 апр 2005, 14:01
MirrorBoy
kdv писал(а):какие, блин, индексы. процедура это "черный" ящик. Если выборка идет из процедуры, то фактически на самом деле тебе показывается только часть данных. Полностью данные ты увидишь только при FetchAll.
Все замеры времени я проводил с учетом FetchAll
kdv писал(а):То есть, разница в количестве обрабатываемых (показываемых) данных. Производительность определяет только сам запрос (его можно проверить отдельно).
Опять же, я проверял время выполнения запроса и по отдельности и в составе процедуры. Во всех случаях кроме как с использованием сквозной передачи параметров запрос работает БЫСТРО. С учетом FetchAll

Добавлено: 10 апр 2005, 19:45
kdv
тогда пример давай. чудес не бывает.

Добавлено: 11 апр 2005, 19:46
MirrorBoy
Проблема решилась полной переинсталляцией Interbase :shock:
Большое спасибо за помощь