Хранимая процедура Sybase SQL занимает слишком много памяти - PullRequest
1 голос
/ 19 мая 2010

Я пытаюсь запустить хранимую процедуру с циклом while, используя Aqua Data Studio 6.5, и как только SP запускается, Aqua Data начинает потреблять все больше памяти моего ЦП, что для меня абсолютно бессмысленно, потому что все должно быть выключенным на сервере Sybase, с которым я работаю. Я прокомментировал и протестировал каждую часть SP и сузил проблему до цикла while. Может кто-нибудь объяснить мне, что происходит?

create procedure sp_check_stuff as
begin

declare
    @counter numeric (9),
    @max_id numeric (9),
    @exists numeric (1),
    @rows numeric (1)

select @max_id = max(id) 
    from my_table      

set @counter = 0
set @exists = 0
set @rows = 0

while @count <= @max_id
    begin

     //More logic which doesn't affect memory usage based
     //on commenting it out and running the SP

    set @counter = @counter + 1
    set @exists = 0
    set @rows = 0

   end
end

возвращение

1 Ответ

2 голосов
/ 19 мая 2010

Сколько раз цикл while повторяется? Я подозреваю, что Aqua Data Studio создает структуры данных по мере выполнения запроса, и для каждой итерации цикла необходим дополнительный блок памяти для каталогизации плана / статистики этой итерации.

...