powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Быстрый рост объема базы Interbase/Firebird
21 сообщений из 246, страница 10 из 10
Быстрый рост объема базы Interbase/Firebird
    #38417516
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНу какой может получиться вариант из этогоТаблоид%list\(% escape \БЕЗ escape ?мну подумкалось, что без дописки "escape \" это не будет работать, т.к. внутри шаблона юзается круглая скобка.
Но оказалось, что работает :-)
Правда, трейс с таким шаблоном не отлавливает вот такой изврат:
Код: sql
1.
2.
3.
4.
5.
SQL> select char_length( list    (rdb$field_name) ) from rdb$fields; -- да-да, пробелы между `list` и `(`

 CHAR_LENGTH
============
        3999

Но вряд ли это вообще есть у кого-то из ФБ-собратьев :-)
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38417524
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидПравда, трейс с таким шаблоном не отлавливает вот такой изврат:
А добавить в шаблон "[:WHITESPACE:]*" мешает что?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38417528
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТаблоидПравда, трейс с таким шаблоном не отлавливает вот такой изврат:
А добавить в шаблон "[:WHITESPACE:]*" мешает что?..мне ? ничего :-)
Но пущай Drag займётся усовершенствованием, это ведь ему надо.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38417537
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

Ты опять напоролся на багофичу, на этот раз в парсере конфигурации трейса.
Он игнорирует второе и остальные слова в значениях параметров, т.е. из твоего шаблона

Код: plaintext
%list\(% escape \

он взял только %list\(% и выкинул остальную ересь.

Для того, чтобы учитывались все слова, нужно взять в шаблон в кавычки, вот так
Код: plaintext
1.
2.
3.
4.
5.
<database>
    enabled true
    include_filter "%list\(% escape \"
...
</database>

И при первом же коннекте, в трейсе появляется
Error creating trace session for database "xxx.FDB":
error while compiling regular expression "%list\(% escape \"

Насколько я помню, эта багофича даже обсуждалась. Изменяться в 2.5 это не будет.
В 3 я это не проверял, но парсер конфигов там другой.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38417884
oleg_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dragда вот незадача. он же (fbscanner) как прокси выступает. Все клиенты коннектятся к нему, а он транслирует на FB Server. Так вот он нагружает только одно ядро. Все простаивают, а одно на 100%.

Какое количество соединений пропущено через FBScanner? Ну и покажи FBScannerSVC.cfg
Было недавно похожее обращение в саппорт про CPU 100%, но там была явная ошибка в настройках.
(пока не исправил этот случай)

У меня стоит в продакшене, коннектов < 80шт, никогда не видел нагрузки на одно ядро даже в 15%.
Сейчас специально поделил время работы сервиса на CPUTime. Получилось в среднем 3,8% CPU usage (от одного ядра).
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38417914
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oleg_mDragда вот незадача. он же (fbscanner) как прокси выступает. Все клиенты коннектятся к нему, а он транслирует на FB Server. Так вот он нагружает только одно ядро. Все простаивают, а одно на 100%.

Какое количество соединений пропущено через FBScanner? Ну и покажи FBScannerSVC.cfg
Было недавно похожее обращение в саппорт про CPU 100%, но там была явная ошибка в настройках.
(пока не исправил этот случай)

У меня стоит в продакшене, коннектов < 80шт, никогда не видел нагрузки на одно ядро даже в 15%.
Сейчас специально поделил время работы сервиса на CPUTime. Получилось в среднем 3,8% CPU usage (от одного ядра).

Может быть из-за того, то пользовал бесплатную версию?
Если да, то завтра же пойду к начальству вытряхивать на покупку полной версии.

-----

По поводу листов... пересмотрел опять все упоминания этих (г)Листов в коде, нет ничего подозрительного... так что трейсить буду всё... скажем раз в 30 сек все активные запросы... тот что нужен мне скорее всего будет светится так долго как будет расти база...
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38417928
oleg_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DragМожет быть из-за того, то пользовал бесплатную версию?
Нет. Бесплатная версия отличается не количеством багов.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38418080
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oleg_m,

написал. правда, решил смотреть только MON$STATE = 1... не знаю правильно ли...
Кстати... вывел все колонки, что и в IBExpert'e в датабейс мониторинге.
Какая из них должна стать невероятно огромная? MON$PAGE_WRITES?
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38418083
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такие колонки вывожу. Какие из них мне убрать (для анализа причин увеличения не нужны?):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
A.MON$USER
ST.MON$STATEMENT_ID
ST.MON$ATTACHMENT_ID
ST.MON$TRANSACTION_ID
ST.MON$TIMESTAMP
ST.MON$SQL_TEXT
R.MON$RECORD_SEQ_READS
R.MON$RECORD_IDX_READS
R.MON$RECORD_INSERTS
R.MON$RECORD_UPDATES
R.MON$RECORD_DELETES
R.MON$RECORD_BACKOUTS
R.MON$RECORD_PURGES
R.MON$RECORD_EXPUNGES
IO.MON$PAGE_READS
IO.MON$PAGE_WRITES
IO.MON$PAGE_FETCHES, IO.MON$PAGE_MARKS
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38418348
oleg_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dragoleg_m,

написал.
куда?


Drag правда, решил смотреть только MON$STATE = 1...
по таблицам монитоинга - не ко мне :-)
не практикую.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38418477
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oleg_m,

сорри, вы оказались правы. перепроверил у себя локально. запустил 4 IBExpert'a и в каждом по запросу... нагрузились все ядра равномерно...
Что-то значит я просмотрел... почему же было все на одно ядро?...
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38423025
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oleg_m,

Извините, что пишу здесь, но на iBase.ru меня не авторизируют, а по почте support@ib-aid.com не отвечают.

Как можно сформировать платежку и оплатить FBScanner?
Или хоть ткните где об этом можно почитать.

Спасибо.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38423423
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drag,

а что, на sales@ibase.ru надо авторизоваться? Отправляете запрос, в ответ шлют счет, оплачиваете, и т.д.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38423498
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

я говорил про форум. (от kdv@ibase.ru: Ваша учётная запись в настоящее время неактивна и должна быть одобрена
администратором прежде, чем вы сможете войти на конференцию.)
А за имейл спасибо. сейчас отправлю.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38423585
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drag,

обращаться за покупкой на форум - по-моему это странно. На ibase.ru все явки и пароли есть. Да и на ib-aid.com есть вверху ссылка Russian, которая тупо указывает на ibase.ru.
IBSurgeon работает на зарубеж, iBase.ru - на Россию. Две компании, а люди одни и те же. Все русские.

DragВаша учётная запись в настоящее время неактивна и должна быть одобрена
администратором прежде, чем вы сможете войти на конференцию.
там засилье спам-регистраций, поэтому активацию учетных записей пришлось перевести в ручной режим, но поскольку из них 99.999% спам, я их и не проверяю вообще.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38428035
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
!!!РАЗОБРАЛСЯ!!!

Написал такую вот утилитку.
Раз в пол минуты мониторит размер БД и если он больше на 100МБ по отношению к прошлому замеру, смотрит все текущие запросы и шлет мне по почте.

Если кому пригодится, то вот код
PAS

Код: pascal
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.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
unit fmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, IdStackWindows,
  Dialogs, IdBaseComponent, IdComponent, DB, FIBDataSet,
  pFIBDataSet, FIBDatabase, pFIBDatabase, cxGraphics, cxControls, cxLookAndFeelPainters, cxContainer,
  cxEdit, cxMaskEdit, cxDropDownEdit, cxMRUEdit, cxTextEdit, cxLabel, cxGroupBox, ExtCtrls, StdCtrls,
  IdMessage, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdSMTPBase, IdSMTP, cxLookAndFeels;

type
  TfMain = class(TForm)
    cxGroupBox1: TcxGroupBox;
    lblLogin: TcxLabel;
    edLoginA: TcxTextEdit;
    lblPassword: TcxLabel;
    edPasswordA: TcxTextEdit;
    lbServer: TcxLabel;
    edServerNameA: TcxMRUEdit;
    lbDataBase: TcxLabel;
    edDBPathA: TcxMRUEdit;
    Timer1: TTimer;
    Button1: TButton;
    DBArch: TpFIBDatabase;
    pFIBTransaction1: TpFIBTransaction;
    ds: TpFIBDataSet;
    SMTP: TIdSMTP;
    IdMsgSend: TIdMessage;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    LastSize: Int64;
    procedure SendMail(AIsTest: Boolean);
    procedure Send;
    function CheckSize(AIsTest: Boolean): Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fMain: TfMain;

implementation

{$R *.dfm}

procedure TfMain.Send;
var
  i: Integer;
begin
  IdMsgSend.From.Text := 'user@mail.ua';
  IdMsgSend.Recipients.EMailAddresses := 'my@mail.ua';
  IdMsgSend.Priority := TIdMessagePriority(2);
  IdMsgSend.Subject := FloatToStrF(LastSize / 1000000000, ffNumber, 4, 2) + 'GB - DB BIG SIZE!';
  IdMsgSend.Body.Text := 'SQLs:';
  for i := 0 to ds.RecordCountFromSrv - 1 do
  begin
    IdMsgSend.Body.Add('USER: ' + ds.Fields[0].AsString);
    IdMsgSend.Body.Add('Statement: ' + ds.Fields[1].AsString);
    IdMsgSend.Body.Add('Attachment: ' + ds.Fields[2].AsString);
    IdMsgSend.Body.Add('Transaction: ' + ds.Fields[3].AsString);
    IdMsgSend.Body.Add('Started: ' + ds.Fields[4].AsString);
    IdMsgSend.Body.Add('SQL: ' + ds.Fields[5].AsString);
    IdMsgSend.Body.Add('Non-indexed R: ' + ds.Fields[6].AsString);
    IdMsgSend.Body.Add('Indexed R: ' + ds.Fields[7].AsString);
    IdMsgSend.Body.Add('Records Ins: ' + ds.Fields[8].AsString);
    IdMsgSend.Body.Add('Records Upd: ' + ds.Fields[9].AsString);
    IdMsgSend.Body.Add('Records Del: ' + ds.Fields[10].AsString);
    IdMsgSend.Body.Add('Records B/O: ' + ds.Fields[11].AsString);
    IdMsgSend.Body.Add('Records Pur: ' + ds.Fields[12].AsString);
    IdMsgSend.Body.Add('Records Exp: ' + ds.Fields[13].AsString);
    IdMsgSend.Body.Add('Page R: ' + ds.Fields[14].AsString);
    IdMsgSend.Body.Add('Page W: ' + ds.Fields[15].AsString);
    IdMsgSend.Body.Add('Page F: ' + ds.Fields[16].AsString);
    IdMsgSend.Body.Add('Page M: ' + ds.Fields[17].AsString);
    IdMsgSend.Body.Add('-------------------');
    IdMsgSend.Body.Add('-------------------');
    IdMsgSend.Body.Add('-------------------');

    ds.Next;
  end;
  IdMsgSend.ContentType := 'text/plain';
  SMTP.Host := 'smtp.mail.ua';
  SMTP.Port := 25;

  SMTP.Connect;
  try
    SMTP.Send(IdMsgSend);
    SMTP.Disconnect;
  except
    on e : exception do
    begin
      Application.MessageBox(PChar('Неможливо надіслати лист: ' + e.Message), PChar(Application.Title), MB_OK or MB_ICONWARNING);
      SMTP.Disconnect;
    end;
  end;
end;

procedure TfMain.SendMail(AIsTest: Boolean);
begin
  try
    DBArch.Connected := False;
    DBArch.DBName := edServerNameA.Text + ':' + edDBPathA.Text;
    DBArch.ConnectParams.UserName := edLoginA.Text;
    DBArch.ConnectParams.Password := edPasswordA.Text;
    DBArch.Connected := True;

    ds.Open;
    if CheckSize(AIsTest) then
      Send;
    ds.Close;

    DBArch.Connected := False;
  except
    on e : exception do
    begin
      Application.MessageBox(PChar('Неможливо з`єднатись з базою: '+e.Message),
                             PChar(Application.Title),
                             MB_OK or MB_ICONWARNING);
       DBArch.Connected := False;
      if edDBPathA.CanFocus then
        edDBPathA.SetFocus;
    end;
  end;
end;

procedure TfMain.Button2Click(Sender: TObject);
begin
  Timer1.Enabled := False;
  LastSize := 0;
  Timer1.Enabled := True;
end;

function TfMain.CheckSize(AIsTest: Boolean): Boolean;
var
  SearchRec: TSearchRec;
begin
  if FindFirst(ExpandFileName(DBArch.DBFileName), faAnyFile, SearchRec) = 0 then
  begin
    Result := SearchRec.Size - LastSize > 100000000;
    LastSize := SearchRec.Size;
  end
  else
    Result := False;
  Result := Result or AIsTest;
  FindClose(SearchRec);
end;

procedure TfMain.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  SendMail(False);
  Timer1.Enabled := True;
end;

procedure TfMain.Button1Click(Sender: TObject);
begin
  SendMail(True);
end;

end.




DFM

Код: pascal
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.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
object fMain: TfMain
  Left = 0
  Top = 0
  Caption = 'fMain'
  ClientHeight = 176
  ClientWidth = 341
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object cxGroupBox1: TcxGroupBox
    Left = 20
    Top = 12
    Caption = #1041#1044
    TabOrder = 0
    Transparent = True
    Height = 121
    Width = 313
    object lblLogin: TcxLabel
      Left = 14
      Top = 17
      Caption = #1051#1086#1075#1110#1085
      FocusControl = edLoginA
    end
    object edLoginA: TcxTextEdit
      Left = 60
      Top = 16
      Properties.CharCase = ecUpperCase
      TabOrder = 1
      Text = 'SYSDBA'
      Width = 241
    end
    object lblPassword: TcxLabel
      Left = 14
      Top = 40
      Caption = #1055#1072#1088#1086#1083#1100
      FocusControl = edPasswordA
    end
    object edPasswordA: TcxTextEdit
      Left = 60
      Top = 39
      Properties.EchoMode = eemPassword
      Properties.PasswordChar = '*'
      TabOrder = 3
      Text = 'masterkey'
      Width = 241
    end
    object lbServer: TcxLabel
      Left = 14
      Top = 63
      Caption = #1057#1077#1088#1074#1077#1088
      FocusControl = edServerNameA
    end
    object edServerNameA: TcxMRUEdit
      Left = 60
      Top = 62
      Properties.ShowEllipsis = False
      TabOrder = 5
      Text = 'localhost'
      Width = 241
    end
    object lbDataBase: TcxLabel
      Left = 14
      Top = 86
      Caption = #1041#1044
      FocusControl = edDBPathA
    end
    object edDBPathA: TcxMRUEdit
      Left = 60
      Top = 85
      Properties.ShowEllipsis = False
      TabOrder = 7
      Text = 'c:\db.fdb'
      Width = 241
    end
  end
  object Button1: TButton
    Left = 258
    Top = 143
    Width = 75
    Height = 25
    Caption = 'TEST'
    TabOrder = 1
    OnClick = Button1Click
  end
  object Button2: TButton
    Left = 20
    Top = 143
    Width = 75
    Height = 25
    Caption = 'Start'
    TabOrder = 2
    OnClick = Button2Click
  end
  object Timer1: TTimer
    Enabled = False
    Interval = 30000
    OnTimer = Timer1Timer
    Left = 18
    Top = 20
  end
  object DBArch: TpFIBDatabase
    DefaultTransaction = pFIBTransaction1
    SQLDialect = 3
    Timeout = 0
    WaitForRestoreConnect = 0
    Left = 24
    Top = 136
  end
  object pFIBTransaction1: TpFIBTransaction
    DefaultDatabase = DBArch
    TimeoutAction = TARollback
    Left = 98
    Top = 138
  end
  object ds: TpFIBDataSet
    SelectSQL.Strings = (
      
        'select A.MON$USER, ST.MON$STATEMENT_ID, ST.MON$ATTACHMENT_ID, ST' +
        '.MON$TRANSACTION_ID, ST.MON$TIMESTAMP, ST.MON$SQL_TEXT,'
      
        '       R.MON$RECORD_SEQ_READS, R.MON$RECORD_IDX_READS, R.MON$REC' +
        'ORD_INSERTS, R.MON$RECORD_UPDATES, R.MON$RECORD_DELETES,'
      
        '       R.MON$RECORD_BACKOUTS, R.MON$RECORD_PURGES, R.MON$RECORD_' +
        'EXPUNGES, IO.MON$PAGE_READS, IO.MON$PAGE_WRITES,'
      '       IO.MON$PAGE_FETCHES, IO.MON$PAGE_MARKS'
      '  from MON$STATEMENTS ST'
      
        '  left join MON$RECORD_STATS R on (ST.MON$STAT_ID = R.MON$STAT_I' +
        'D)'
      '  left join MON$IO_STATS IO on (ST.MON$STAT_ID = IO.MON$STAT_ID)'
      
        '  left join MON$ATTACHMENTS A on A.MON$ATTACHMENT_ID = ST.MON$AT' +
        'TACHMENT_ID'
      '  where ST.MON$STATE = 1'
      '  order by ST.MON$TIMESTAMP  ')
    Transaction = pFIBTransaction1
    Database = DBArch
    Left = 178
    Top = 140
  end
  object SMTP: TIdSMTP
    Host = 'smtp.mail.ua'
    SASLMechanisms = <>
    Left = 220
    Top = 19
  end
  object IdMsgSend: TIdMessage
    AttachmentEncoding = 'UUE'
    BccList = <>
    CharSet = 'windows-1251'
    CCList = <>
    ContentType = 'text/plain'
    Encoding = meDefault
    FromList = <
      item
      end>
    Recipients = <>
    ReplyTo = <>
    ConvertPreamble = True
    Left = 248
    Top = 32
  end
end




Значит нашел, что во время роста БД всюду один запрос с большим количеством Page Read/Write/fetch/mark.
Там вызывалась процедура в которой выходной параметр был "SOME_PAR blob sub_type 1 segment size 80"
В теле процедуры в него пихалось около 100-200 символов на suspend. Но в одном суспенде туда пихалось 170550 символов.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
for select...
begin
  SOME_PAR = '';
  for select...
  begin
    SOME_PAR = SOME_PAR || 'some data1';
    SOME_PAR = SOME_PAR || 'some data1';
    SOME_PAR = SOME_PAR || 'some data1';
    ...
    и так 15 раз...
  end
  suspend;
end



При этом база почему-то росла на 1.5Гб.
Т.к. процедура в одной транзакции вызывалась неоднократно, то база росла большими порциями.
Если транзакцию завершить и выполнить процедуру опять, то база не растет, видимо заполняется уже существующее мусорное пространство.

Конкретно в моем случае есть возможность эту процедуру переписать по другому.
Так что всем спасибо, для меня проблема решена. :)
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38428117
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drag,

А что мешает размер тоже из базы тянуть? У тебя в MON$DATABASE есть MON$PAGES и MON$PAGE_SIZE. Я к тому, что твой FindFirst() не отработает при использовании альясов как минимум. Да и если версия Дельфей старая, то для больших файлов в SearchReс.Size есть возможность получить бред.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38428163
Фотография PEAKTOP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DragЕсли кому пригодится, то вот код
PAS

Здесь Delphi никто не знает... (с) =)
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38428206
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

Про пейджесы как-то не думал. Спасибо за подсказку.
А у FIB компонента есть хак "DB.DBFileName" который дает полный путь к базе даже если "DB.DBName" - алиас.

А про размер файла... А вы и имена файлам даете исключительно на английском и не более 8ми символов? :)
Те давние времена уже прошли.
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38428239
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drag,

Причем тут имена файлов? Я вот возьму твой любезно предоставленный исходник и скормлю его 6-й дельфе. У которой Size в TSearchRec - integer. Угадай, что будет у меня в Size, если я натравлю твой утиль на БД с размером в 10-20-100 Гб...
...
Рейтинг: 0 / 0
Быстрый рост объема базы Interbase/Firebird
    #38428365
Drag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterDrag,

Причем тут имена файлов? Я вот возьму твой любезно предоставленный исходник и скормлю его 6-й дельфе. У которой Size в TSearchRec - integer. Угадай, что будет у меня в Size, если я натравлю твой утиль на БД с размером в 10-20-100 Гб...

Да пожалуйста, можно еще в 3ю делфи попробовать, а вдруг откомпилится ;)

На самом деле смысл был в том, что не нужно коннектится к БД до тех пор пока не нужно получить выборки.
Можно использовать и GetFileSizeEx конечно, но в принципе не отрицаю, что ваш способ тоже вариант.
...
Рейтинг: 0 / 0
21 сообщений из 246, страница 10 из 10
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Быстрый рост объема базы Interbase/Firebird
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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