powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / varchar и плотность заполнения страниц данными
8 сообщений из 8, страница 1 из 1
varchar и плотность заполнения страниц данными
    #39093753
Sia-Ori1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IB2007, страничка 4к, база была 15G, после бэкап-рестор с галочкой use all space стала 12 гигов
Есть табличка, 42 миллиона записей, записи только добавляются.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE TADDFIELD (
    FID            INTEGER NOT NULL,
    FMESSID        VARCHAR(90) CHARACTER SET ASCII NOT NULL,
    FMESSFIELDID   INTEGER NOT NULL,
    FHEAD_MESSAGE  INTEGER,
    FNAME          VARCHAR(60) CHARACTER SET ASCII NOT NULL,
    FVALUE         VARCHAR(250) CHARACTER SET UNICODE_FSS
);


во втором поле хранится guid в виде текста

статистика по этой табличке такая

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
TADDFIELD (133)
    Primary pointer page: 195, Index root page: 196
    Average record length: 94.72, total records: 42507686
    Average version length: 0.00, total versions: 0, max versions: 0
    Data pages: 1198784, data page slots: 1198784, average fill: 9%
    Fill distribution:
         0 - 19% = 0
        20 - 39% = 1
        40 - 59% = 0
        60 - 79% = 0
        80 - 99% = 1198783



Бэкап-рестор базе решил сделать увидев fill = 9%. Но ничего не изменилось. Как такое может быть? Варчары помогают?
И попутный вопрос - что такое dp usage, которое для этой таблички 72%
...
Рейтинг: 0 / 0
varchar и плотность заполнения страниц данными
    #39093763
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sia-Ori1Как такое может быть?
Дофига страниц, заполненных полностью и одна, последняя, на которую записей не хватило.
Что именно тебя напрягает?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
varchar и плотность заполнения страниц данными
    #39093765
Sia-Ori1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Если все страницы заполнены, то fill ожидается в 90%, а он в десять раз меньше.
...
Рейтинг: 0 / 0
varchar и плотность заполнения страниц данными
    #39093794
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sia-Ori1с галочкой use all space
я напомню, что use all space (no reserve) рекомендуется только для баз в режиме read-only.
Потому что для "модифицируемых БД" Firebird (и InterBase) специально оставляют примерно 30% свободного места на страницах данных чтобы туда поместились версии записей.
Если же сделать no_reserve, то модификация данных вызовет необходимость создания новой страницы, и тогда записи и версии будут находиться на разных страницах, что плохо для производительности.
Поэтому для read-write баз включать no reserve НЕ НАДО. Если вы хотите "сэкономить" 3 гига на 15-ти гигах, то это копеечная экономия.

p.s. у InterBase XE3 ввели опцию no reserve, чтобы можно было указывать ее для конкретных редко изменяемых таблиц
http://docs.embarcadero.com/products/interbase/IBXE3/Readme.html#new3E
В FB включение-выключение опции возможно только для всей БД (как и у всех FB и предыдущих IB).

Sia-Ori1VARCHAR(90) CHARACTER SET ASCII
интересно, зачем это?

Sia-Ori1Если все страницы заполнены, то fill ожидается в 90%, а он в десять раз меньше.
Тогда просто не верьте gstat. Берете количество Data Pages, умножаете на размер страницы, делите на average record length.
Получаете сколько записей при этих данных. Сравниваете с total records, получаете "процент заполнения".
...
Рейтинг: 0 / 0
varchar и плотность заполнения страниц данными
    #39093829
Sia-Ori1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,
спасибо, полегчало. Перемножением страниц и средней длины записей получается average fill = 0,82
int где-то переполняется и только.
.
3 гига - не самоцель. Малый процент заполненности страниц сподвиг на сжатие. Сперва отресторил её в обычном режиме - не помогло. Со сжатием - те же 9%. а глючила только статистика.
...
Рейтинг: 0 / 0
varchar и плотность заполнения страниц данными
    #39093883
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvя напомню, что use all space (no reserve) рекомендуется только для баз в режиме read-only
вполне можно рекомендовать и для баз append-only, что как раз случай ТС
...
Рейтинг: 0 / 0
varchar и плотность заполнения страниц данными
    #39094122
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

есть некоторые админы или ДБА, которые страдают дурниной (не побоюсь этого слова) в отношении no_reserve. Производительность вставки и обновления они игнорируют, все жадятся до дискового пространства. Автору можно посоветовать обновиться до ХЕ3, и там уже управлять no_reserve на уровне таблиц, если ему так приспичилось.
...
Рейтинг: 0 / 0
varchar и плотность заполнения страниц данными
    #39094242
Sia-Ori1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё раз.
В работе приложения видны торможения. Выборки до конца на клиента не вытягивает, и прочая ересь. Лезу в базу - вижу табличку которая по логике должна быть заполнена на 100%, но она почти пустая. Первая мысль - глюк, кто-то пишет-пишет-пишет в неё, а потом устраивает откат транзакции. И надо что-то делать.
А так из 12 гигов базы эта таблица с индексами занимает 10. Гуиды в индексах очень хорошо место занимают.
А в торможениях в итоге оказался виноват d-Linkовский хабчик по дороге от сервера к клиенту.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / varchar и плотность заполнения страниц данными
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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