powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / procedure time exc
5 сообщений из 5, страница 1 из 1
procedure time exc
    #34531687
odyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
столкнулся с такой проблемой

при исполнении просто запроса время допустим ~5
при запуске єтого ж запроса с процедуры время ~9

в чём может быть проблема куда смотреть что крутить?
...
Рейтинг: 0 / 0
procedure time exc
    #34531969
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
odynстолкнулся с такой проблемой
при исполнении просто запроса время допустим ~5
при запуске єтого ж запроса с процедуры время ~9
в чём может быть проблема куда смотреть что крутить?
Время в чем измеряется?
Тип хранимой процедуры какой sql или plpgsql?
...
Рейтинг: 0 / 0
procedure time exc
    #34532366
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
odynпри исполнении просто запроса время допустим ~5
при запуске єтого ж запроса с процедуры время ~9покажите исходники
...
Рейтинг: 0 / 0
procedure time exc
    #34532896
odyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
CREATE OR REPLACE FUNCTION "analitic"."func_kassa_rest" (date_start date, date_finish date, out branch "main"."domain_branch", out branch_id integer, out curr "main"."domain_curr", out ok double precision, out okv double precision, out kredet double precision, out kredetv double precision, out debet double precision, out debetv double precision) RETURNS SETOF "pg_catalog"."record" AS
$body$
SELECT 
       branch,
       bs.branch_id AS branch_id,
       bs.curr AS curr,
       oborot.sum_ok AS ok,
       oborot.sum_okv AS okv,
       kredit.kredet AS kredet,
       kredit.kredetv AS kredetv,
       debit.debet AS debet,
       debit.debetv AS debetv
FROM
--------------------------------------------------------------------------
  ( SELECT
       b.branch,
       b.branch_id,
       curr AS curr
     FROM main.branches b,
         (SELECT distinct
                 a.acc_curr AS curr
          FROM main.accounts a) c
  ) bs

--------------------------------------------------------------------------

  LEFT OUTER JOIN (
   SELECT
         o.branch_id AS branch_id,
         acc.acc_curr AS curr,
         SUM(o.ok) AS sum_ok,
         SUM(o.okv) AS sum_okv
   FROM
       main.overturn o
         LEFT OUTER JOIN main.accounts acc ON (o.acc_id = acc.acc_id)
   WHERE o.dpd BETWEEN  $ 1  AND $ 2 
   GROUP BY o.branch_id, acc.acc_curr
  ) oborot
  ON (oborot.branch_id = bs.branch_id AND oborot.curr=bs.curr)

--------------------------------------------------------------------------

  LEFT OUTER JOIN (
   SELECT
         j.branch_id as branch_id,
         acr.acc_curr as curr,
         SUM(main.j."sum") AS kredet,
         SUM(main.j."sumv") AS kredetv
   FROM
       main.j
         LEFT OUTER JOIN main.accounts acr ON (acr.acc_id = main.j.cr_acc_id)
         LEFT OUTER JOIN main.accounts acs ON (main.j.cs_acc_id = acs.acc_id)
   WHERE acr.bs in ('1001','1002','1003','1005') AND acs.bs NOT LIKE '100*'
         AND j.dav BETWEEN  $ 1  AND $ 2 
   GROUP BY main.j.branch_id, acr.acc_curr

  ) kredit
  ON (kredit.branch_id = bs.branch_id AND kredit.curr=bs.curr)

--------------------------------------------------------------------------

  LEFT OUTER JOIN (
    SELECT
          j.branch_id as branch_id,
          acr.acc_curr as curr,
          SUM(main.j."sum") AS debet,
          SUM(main.j."sumv") AS debetv
    FROM
        main.j
        LEFT OUTER JOIN main.accounts acs ON (main.j.cs_acc_id = acs.acc_id)
        LEFT OUTER JOIN main.accounts acr ON (acr.acc_id = main.j.cr_acc_id)
    WHERE acs.bs in ('1001','1002','1003','1005') AND acr.bs NOT LIKE '100*'
           AND j.dav BETWEEN  $ 1  AND $ 2 
    GROUP BY main.j.branch_id, acr.acc_curr
  ) debit
  ON (debit.branch_id = bs.branch_id AND debit.curr=bs.curr)
--------------------------------------------------------------------------
WHERE (debit.branch_id is not null OR
       kredit.branch_id is not null OR
       oborot.branch_id is not null)

ORDER BY bs.branch, bs.curr
$body$
LANGUAGE 'sql' STABLE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
...
Рейтинг: 0 / 0
procedure time exc
    #34533183
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск "explain function"

Как посмотреть план запроса внутри функции

EXPLAIN хранимой процедуры
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / procedure time exc
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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