Я тут недавно засылал вопрос насчет ошибки которая проявляется в YAffil
Мне ее удалось воспроизвести, а также по-моему тут что-то в Yaffil похожее на
баг.
Создаем процедуру
CREATE PROCEDURE TEST_PROCEDURE
returns (
a varchar(10000),
i integer,
b varchar(10000),
d varchar(10000),
c varchar(10000))
as
begin
i=0;
while (i<5000) do
begin
a=cast('a' as varchar(10000));
b=cast('b' as varchar(10000));
c=cast('c' as varchar(10000));
d=cast('d' as varchar(10000));
i=i+1;
suspend;
end
end
и теперь выполняем запрос
select a, i, b, d, c
from test_procedure
order by i
при этом не фетчим все, а только первые записи. Так, чтобы файл sort был живой.
Запускаем этот запрос несколько раз одновременно. Т.е. держим открытыми
недофетченные запросы.
И после каждого запуска видим что у Yaffil SS 890 размер виртуальной памяти с
каждым новым запросом растет, однако файл сортировки в temp каталоге не
создается.
После нескольких запросов винда начинает ругаться что не хватает виртуальной
памяти.
Я клиенту вываливается эксепшин.
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
operating system directive isc_alloc failed.
unable to allocate memory from operating system.
Это у меня на компе винда хоть сказала, что виртуальная память кончилась. А на
сервере вообще винда молчит. Там своп большой задан, с запасом. и после
примерно 1.6 гига виртуальной памяти у ibserver всеравно эта ошибка.
Очень странно, что ведь физическая память давно кончилась, виртуальная память
кончилась даже, а временных файлов так и нет.
А водь по нормальному массив для sort должен уйти в файл и память не занимать,
особенно когда ее и так нету.
Теперь прогнал этот же тест на FB2
тут все корректно. Пока была память свободная - а это 1 или 2 первых запроса -
сортировка шла в памяти,
дальнейшие же запросы пошли на сортировку в файле. Создались файлы в temp.
При этом никакого такого катастрофического роста виртуальной памяти у fbserver
нет.
Сорри за некоторую сумбурность. Боюсь до завтра забыть, а сегодня уже 2 часа
ночи. :)
--
С уважением
Кочмин Александр
Firebird Foundation associate member #257