powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / rfunc загружает процессор. Базой не возможно пользоваться.
17 сообщений из 42, страница 2 из 2
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982762
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099Как это сделать?
человек, считающий себя админом, никогда не задаст такой вопрос, ибо будет стыдно.
Я, наоборот, не понимаю, как можно не уметь скопировать текст из консольного вывода (или не уметь сделать вывод в текстовый файл, и т.д.).
Вы же там меняете FeedBSD 6 на 9, запускаете ФБ на всяких виндах, убунтах, и прочем, и не знаете, как сделать консольный вывод в текст???
Это как механик в автомастерской не в курсе, что такое гаечный ключ.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982763
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,
По поводу копирования текста и консоли я знаю что к чему. Вопрос "как это сделать" по поводу трассировки, так как с базами данных не имею большого опыта общения.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982764
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvчеловек, считающий себя админом, никогда не задаст такой вопросДумаю, borus099 про трассировку спрашивал :)
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982768
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

читай doc/README.trace_services
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982769
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

тогда ок, извиняюсь. используй fbtracemgr
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38982773
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvborus099,

тогда ок, извиняюсь. используй fbtracemgr
Спасибо. Буду читать
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38983763
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эксперименты для локализации проблемы:

1) Нагрузка увеличивается СРАЗУ при подключении, даже без выполнения запросов?
2) Нагрузка заканчивается через какое-то время либо сваливается в бесконечный цикл?
3) Создать тестовую базу с одной таблицей и проверить функции rfunc на ней
4) Отследить, все ли внешние функции вешают процесс либо только определенные
5) Собрать тестовую udf и проверить, как работает она
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38984337
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099...
Имеется сервер freebsd 6. На нем крутится база данных не большой АТС. (в базе несколько миллионов записей). Firebird 2.1. К Firebird прикручена библиотека rfunc. И это все хорошо работает.
Появилась нужда перенести все это добро на freebsd 9.3.
Установил, настроил, решил пересобрать базу на firebird 2.5
...

Если вы не разработчик - не делайте так. Нельзя самовольно менять версию сервера.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992490
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fr0sT-Brutal,
Есть несколько программ написанных на DELPHI для роботы с данной базой. Все они замечательно работают, (в них не используется rfunc), но одна главная программа, в которой есть окошко в котором используется функция "FirstDayMonth" из rfunc, вот оно и вешает процесс. Нагрузка появляется сразу при открытии программы, затем когда данные загрузятся в это окошко, нагрузка на процессор пропадает, и так постоянно. При пролистывании списка абонентов данные должны обновляться в этом окне, они там обновляются но с опозданием и как раз в это время и вешается процессор.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992537
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

мало полезная функция. Легко заменяется на это

Код: sql
1.
2.
3.
4.
select
  current_timestamp,
  CAST('01.' || EXTRACT(MONTH FROM current_timestamp) || '.' || EXTRACT(YEAR FROM current_timestamp) AS DATE) AS FirstDay
from rdb$database
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992564
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

теоретизирую. функция fn_firstdaymonth вызывает isc_decode_date/isc_encode_date из клиентского API. Следовательно, если зависон происходит сразу при вызове хотя бы этой функции, то проблема именно в том, что через сервер происходит вызов клиентской библиотеки ФБ.
Т.е. что-то там у вас на FreeBSD криво скомпилировано.

borus099Нагрузка появляется сразу при открытии программы, затем когда данные загрузятся в это окошко, нагрузка на процессор пропадает, и так постоянно.
а может просто в приложении код такой, который долбит сервер чем-то таким, что в результате процесс сервера на 100% загружен. Бывает и такое. Что там делается с сервером, если нет исходников программы, можно посмотреть fbscanner-ом.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992581
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЛегко заменяется на это
Код: sql
1.
CURENT_DATE-EXTRACT(DAY FROM CURRENT_DATE)+1

- проще, но исходников приложения
для замены у аффтара нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992618
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,
так в IBEXPERT выглядит процедура этого для окошка. тут есть R_FIRSTDAYMONTH
Код: sql
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.
85.
86.
87.
88.
89.
90.
91.
SET TERM ^ ;

CREATE OR ALTER PROCEDURE NARAH_TREE (
    data date,
    id_abon integer)
returns (
    period date,
    kod integer,
    text varchar(50),
    suma double precision,
    id_parent integer,
    n_tel char(11),
    id integer)
as
declare variable id_tel integer;
declare variable cnt integer;
begin
select max(R_FIRSTDAYMONTH(period)) from narah INTO :DATA;/
                 
select sum(suma) from narah where id_abon=:id_abon and period>=:data into :suma;
ID=:ID_ABON;
ID_PARENT =-1;
KOD=0;
PERIOD=:DATA;
TEXT=NULL;
SUSPEND;
FOR select t.id, t.n_tel
from telephones t
where t.id_abon=:ID_ABON
INTO :ID_TEL, :N_TEL
DO BEGIN
   KOD=1;
   TEXT='телефон '||:N_TEL;
   SUMA=NULL;
   ID_PARENT=:ID_ABON;
   ID=:ID_TEL;

   select count(*)
   from  narah n
   where n.id_tel=:ID_TEL
   and n.period>=:DATA
   into :cnt;

   if (:cnt>0) then SUSPEND;

   ID_PARENT=:ID_TEL;
   FOR select n.kod, n.period, n.suma, n.id , t.type_narah
   from  narah n, type_narah t
   where n.id_tel=:ID_TEL
   and n.kod=t.kod
   and n.period>=:DATA
   INTO :KOD, :PERIOD, :SUMA, :ID, :text DO SUSPEND;
END
FOR select l.id, 'линия '||l.punkt_1||' - '||l.punkt_2
from leaseds l
where l.id_abon=:ID_ABON
INTO :ID_TEL, :text
DO BEGIN
   KOD=7;
   SUMA=NULL;
   ID_PARENT=:ID_ABON;
   ID=:ID_TEL;
   N_TEL=:ID_TEL;

   select count(*)
   from  narah n
   where n.id_tel=:ID_TEL
   and n.period>=:DATA
   into :cnt;

   if (:cnt>0) then SUSPEND;

   ID_PARENT=:ID_TEL;
   FOR select n.kod, n.period, n.suma, n.id , t.type_narah
   from  narah n, type_narah t
   where n.id_tel=:ID_TEL
   and n.kod=t.kod
   and n.period>=:DATA
   INTO :KOD, :PERIOD, :SUMA, :ID, :text DO SUSPEND;
END
end^

SET TERM ; ^

/* Following GRANT statetements are generated automatically */

GRANT SELECT ON NARAH TO PROCEDURE NARAH_TREE;

/* Existing privileges on this procedure */

GRANT EXECUTE ON PROCEDURE NARAH_TREE TO SYSDBA;
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992625
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
borus099,

заменить это
select max(R_FIRSTDAYMONTH(period)) from narah INTO :DATA;

на это
select period - extract(day from period)+1 from narah INTO :DATA;

собственно все.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992640
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyborus099,

заменить это
select max(R_FIRSTDAYMONTH(period)) from narah INTO :DATA;

на это
select period - extract(day from period)+1 from narah INTO :DATA;

собственно все.

точнее на это

Код: sql
1.
select max(period - extract(day from period)+1) from narah INTO :DATA;
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992644
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисточнее на этода проглядел, но я бы менял на

select max(period) from narah INTO :DATA;
DATA = DATA - extract(day from DATA)+1

при наличии убывающего индекса по period оно будет повеселей работать.
...
Рейтинг: 0 / 0
rfunc загружает процессор. Базой не возможно пользоваться.
    #38992660
borus099
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, Ivan_Pisarevsky
СПАСИБО ВАМ ОГРОМНОЕ. ВСЕ ЗАРАБОТАЛО ИДЕАЛЬНО. Я СЧАСТЛИВ.
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / rfunc загружает процессор. Базой не возможно пользоваться.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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