powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / gbak: activating and creating deferred index - слишком много чтений на маленькой таблице
6 сообщений из 6, страница 1 из 1
gbak: activating and creating deferred index - слишком много чтений на маленькой таблице
    #39890423
bsv9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird 3.0.5.33178, Classic. Page size = 16384.
gbak восстанавливает базу из бакапа (размером ~90Gb). В логе gbak я обратил внимание на не пропорционально огромное время и количество прочитанных и записанных страниц, при построении очень маленького индекса AC_TRF_PERCENTS_ACC:
gbakgbak: time delta reads writes
..
gbak: 17.987 0.000 0 0 restoring index AC_TRF_PERCENTS_ACC
..
gbak: 13642.734 483.083 2393059 103595 activating and creating deferred index AC_TRF_PERCENTS_ACC
...

Таблица объявлена так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE AC_TARIFPERCENTS (
    ID              INTEGER NOT NULL,
    CARDPERCENT     DOUBLE PRECISION DEFAULT 0 NOT NULL,
    CARDPERCENTSUM  NUMERIC(15,2) DEFAULT 0 NOT NULL,
    CURRENCYID      INTEGER,
    MAXPERCENTSUM   NUMERIC(15,2),
    MINPERCENTSUM   NUMERIC(15,2),
    OPERCODE        SMALLINT NOT NULL,
    TARIFID         INTEGER NOT NULL
);

ALTER TABLE AC_TARIFPERCENTS ADD CONSTRAINT PK_AC_TARIFPERCENTS PRIMARY KEY (ID);
ALTER TABLE AC_TARIFPERCENTS ADD CONSTRAINT AC_TRF_PERCENTS_ACC FOREIGN KEY (TARIFID) REFERENCES D_TARIFFS (ID) ON DELETE CASCADE ON UPDATE CASCADE;



Таблица и связанный справочник - очень маленькие - помещаются в одну страницу:
GSTATAC_TARIFPERCENTS (999)
Primary pointer page: 10198528, Index root page: 10214005
Total formats: 1, used formats: 1
Average record length: 36.50, total records: 2
Average version length: 0.00, total versions: 0, max versions: 0
Average fragment length: 0.00, total fragments: 0, max fragments: 0
Average unpacked length: 80.00, compression ratio: 2.19
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 1%
Primary pages: 1, secondary pages: 0, swept pages: 1
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0

D_TARIFFS (769)
Primary pointer page: 3615, Index root page: 3616
Total formats: 1, used formats: 1
Average record length: 67.64, total records: 11
Average version length: 0.00, total versions: 0, max versions: 0
Average fragment length: 0.00, total fragments: 0, max fragments: 0
Average unpacked length: 142.00, compression ratio: 2.10
Pointer pages: 1, data page slots: 1
Data pages: 1, average fill: 6%
Primary pages: 1, secondary pages: 0, swept pages: 1
Empty pages: 0, full pages: 0
Fill distribution:
0 - 19% = 1
20 - 39% = 0
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0


От куда взялось такое гигантское количество чтений - 2393059 ?
...
Рейтинг: 0 / 0
gbak: activating and creating deferred index - слишком много чтений на маленькой таблице
    #39890425
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.11.2019 13:19, bsv9 пишет:
> Firebird 3.5.33178

не пуХай народ!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
gbak: activating and creating deferred index - слишком много чтений на маленькой таблице
    #39890432
bsv9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийне пуХай народ!
3.0.5, конечно. Исправил.
...
Рейтинг: 0 / 0
gbak: activating and creating deferred index - слишком много чтений на маленькой таблице
    #39890444
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gbak
gbak: 13642.734 483.083 2393059 103595 activating and creating deferred index AC_TRF_PERCENTS_ACC
Тут написано, что с момента начала рестора прошло 13642.734 сек,
с момента начала выполнения действия в предыдущей строке прошло 483.083 сек
и было сделано 2393059 reads и 103595 writes,
и что теперь он начинает строить индекс AC_TRF_PERCENTS_ACC
...
Рейтинг: 0 / 0
gbak: activating and creating deferred index - слишком много чтений на маленькой таблице
    #39890456
bsv9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не ожидал. Значит, статистику создания индекса AC_TRF_PERCENTS_ACC, надо брать из следующей строки лога? Вот кусок с соседними записями:
gbakgbak: 13159.651 490.817 2393044 126820 activating and creating deferred index D_ACCDOCUMENTS_DOCTYPEID_AX
gbak: 13642.734 483.083 2393059 103595 activating and creating deferred index AC_TRF_PERCENTS_ACC
gbak: 13642.764 0.029 27 36 activating and creating deferred index AC_TRF_PERCENTS_MCCGROUP
gbak: 13642.780 0.015 6 9 activating and creating deferred index AC_TRF_PERCENTS_OPERCODE_FK

Я правильно понимаю, что на построение индекса AC_TRF_PERCENTS_ACC было затрачено
0.029 секунд, чтений= 27, записано= 36?
...
Рейтинг: 0 / 0
gbak: activating and creating deferred index - слишком много чтений на маленькой таблице
    #39890482
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bsv9
Не ожидал.
Тут вроде всё понятно написано
https://www.firebirdsql.org/file/documentation/release_notes/html/en/2_5/rnfb25-util-gbak.html#rnfb25-util-gbakstats

bsv9
Значит, статистику создания индекса AC_TRF_PERCENTS_ACC, надо брать из следующей
строки лога?
...
Я правильно понимаю, что на построение индекса AC_TRF_PERCENTS_ACC было затрачено
0.029 секунд, чтений= 27, записано= 36?
Да
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / gbak: activating and creating deferred index - слишком много чтений на маленькой таблице
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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