Здравствуйте
есть процедура
в фб 2.5 join-ы очень быстро проходили, но при переходе на 3.0 начались тормоза 0.3 сек в фб2.5 против 7сек в фб3,
если явно указать
как победить? нет ли в фб3 встроенного split-a более быстрого?
Спасибо!
есть процедура
create or alter procedure Msp_List_To_Rows ( Lst varchar(1000)) returns ( Id integer) AS declare pos_ int; declare offset_ int = 1; declare beg int; declare buf varchar(8000); begin lst = coalesce(LST, ''); while (0=0) do begin buf = substring(lst from offset_ for 8000); pos_ = 1; beg = 1; while (pos_ <= char_length(buf) and pos_ <= 8000) do begin if (substring(buf from pos_ for 1) = ',') then begin if (pos_ > beg) then id = substring(buf from beg for pos_ - beg); else id = null; suspend; beg = pos_ + 1; end pos_ = pos_ + 1; end if (offset_ + pos_ - 2 = char_length(lst)) then leave; offset_ = offset_ + beg - 1; if (offset_ > char_length(lst)) then leave; end if (pos_ > beg) then id = substring(buf from beg for pos_ - beg); else id = null; suspend; end
в фб 2.5 join-ы очень быстро проходили, но при переходе на 3.0 начались тормоза 0.3 сек в фб2.5 против 7сек в фб3,
если явно указать
in (value1, value2...)
то все работает идеально.как победить? нет ли в фб3 встроенного split-a более быстрого?
Спасибо!