powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как это работает?
4 сообщений из 4, страница 1 из 1
Как это работает?
    #32357378
al-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Объясните плиз...
Есть две серверные проседуры, возвращают они одно и тоже, но по отрабтке
(по времени и по сжиранию ресурсов) это "небо и земля" объясните, кто может, почему так?

Процедура 1 (очень медленная и ресурсоемкая)

CREATE PROCEDURE SUM_NACH_ABTRAF_CEPOTHKA (
KOD INTEGER,
DATE_S DATE)
RETURNS (
NACH_AB_TRAF __MONEY)
AS
begin
/* Procedure Text */
SELECT sum(nachisleniy.summa) as NACH_AB_TRAF
FROM nachisleniy
WHERE (nachisleniy.kod_ab in (select cepothka.kod from cepothka(:KOD))
and nachisleniy.date_mount<=:DATE_S)
into :NACH_AB_TRAF;
suspend;
end

Процедура 2 (быстрая)

CREATE PROCEDURE SUM_NACH_ABTRAF_CEPOTHKA_1 (
KOD INTEGER,
DATE_S DATE)
RETURNS (
NACH_AB_TRAF __MONEY)
AS
DECLARE VARIABLE KODDD INTEGER;
DECLARE VARIABLE SUMMA __MONEY;
begin
/* Procedure Text */
SUMMA=0;
NACH_AB_TRAF=0;
for
select cepothka.kod from cepothka(:KOD)
into :KODDD
do
begin
SELECT sum(nachisleniy.summa) as NACH_AB_TRAF
FROM nachisleniy
WHERE (nachisleniy.kod_ab =:KODDD and nachisleniy.date_mount<=:DATE_S)
into :SUMMA;
if (SUMMA is null) then begin SUMMA=0; end
NACH_AB_TRAF=NACH_AB_TRAF+SUMMA;
end
suspend;
end
...
Рейтинг: 0 / 0
Как это работает?
    #32357411
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в первой у тебя выбираются все! строки из "начисление" и для каждой строки выбираетютя все! строки из "цепочки". а затем только отсекаются строки по условию.

а во второй хп у тебя сначала выбираются все! строки из цепочки, а зате выбираются определенные условием строки из "начисления".

сам понимаешь, чем меньше выберется по условию из начисления, тем быстрее будет вторая. а первая всегда одинаково будет перебирать произведение всех строк "начисления" и всех строк "цепочки"
...
Рейтинг: 0 / 0
Как это работает?
    #32357467
al-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Как это работает?
    #32357957
hyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага.. И от меня спасибo :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как это работает?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]