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