powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Размер сегмента BLOB
23 сообщений из 23, страница 1 из 1
Размер сегмента BLOB
    #38945558
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеет вообще смысл в каких-нибудь случаях записывать содержимое BLOB сегментами мельче 64к?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945605
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945638
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovИмеет вообще смысл в каких-нибудь случаях записывать содержимое BLOB сегментами мельче 64к?Если так ставить вопрос, то зачем тебе вообще сегментированные блобы ? Пользуй поточные и забудь о сегментах.
Сегменты полезны тем приложениям, которые пишут в блоб записи переменной длины и потом хотят читать их в том же виде
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945644
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladзачем тебе вообще сегментированные блобы ? Пользуй поточные и забудь о
сегментах.
Не хочется связываться с недокументированными возможностями.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945651
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разговор же на эту тему не первый раз заходит.
Поточными не то что мало кто пользуется - про
них большинство даже и не знает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945686
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

у меня есть мысль, что размер сегмента должен быть таким, чтобы он "четко" влезал на страницу БД.
в данном случае размер сегмента в отношении размера страницы - вопрос производительности. Хорошо бы померять тестами, но может случиться точно такая же история, как с размером кластера и размером страницы.
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945690
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvможет случиться точно такая же история, как с размером кластера и размером страницы.а что там случилось?
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945693
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvу меня есть мысль, что размер сегмента должен быть таким, чтобы он "четко"
влезал на страницу БД.
в данном случае размер сегмента в отношении размера страницы - вопрос производительности.

Вот из-за такого же подозрения я и создал топик.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945696
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fd00chа что там случилось?
например, страница 16к в большинстве случаев медленнее, чем 8к. Не прямо вот сильно, конечно, но вроде как на 1-5%.
это есть и у Ривза в презентации
http://www.firebirdsql.org/file/community/conference-2014/pdf/16_tpcc_presentation.pdf
и Ковязин на днях тесты вставок делал (будет в материалах семинаров 19 мая в Праге и 5 июня в Москве), там тоже так же примерно.
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945710
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DS> Вот из-за такого же подозрения я и создал топик.

Во-первых, 16к на страницу не влезут, придётся считать.
Во-вторых, надо уж мерять тогда и, подозреваю, разными
методами измерения ты получишь разные результаты.
В-третьих, как бы то ни было - уверен, что это всё равно
будут сущие копейки (если не в лучшую, то в худшую
сторону уж точно), по сравнению с работой BLOB в целом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945714
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvнапример, страница 16к в большинстве случаев медленнее, чем 8кно ведь лучше 16к с глубиной индекса 3, чем 8к и 4 соответственно?
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945723
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovhvladзачем тебе вообще сегментированные блобы ? Пользуй поточные и забудь о
сегментах.
Не хочется связываться с недокументированными возможностями.???????
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945745
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fd00chно ведь лучше 16к с глубиной индекса 3, чем 8к и 4 соответственно?
это да, но в целом пока получается страница 16к чуть похуже чем 8к.
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945750
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvfd00chно ведь лучше 16к с глубиной индекса 3, чем 8к и 4 соответственно?
это да, но в целом пока получается страница 16к чуть похуже чем 8к.
Но если глубина индекса больше трех - однозначно 16к?
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945875
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarНо если глубина индекса больше трех - однозначно 16к?
если глубина индекса больше трех при размере страницы N, то уменьшить эту глубину можно или увеличив размер страницы до N*2, или уменьшив размер ключа.
http://www.ibase.ru/devinfo/calcindex.htm

я так понял, у тебя трабл с guid, которые не упаковываются, и превышают глубину 3 на странице 8к уже при нескольких миллионах записей?
С guid не только в этом траблы, но еще и в скорости вставки и обновления - она в разы хуже чем для bigint.
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945883
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,нет. Мне IBAnalyst советовал увеличить размер страницы,аргументируя большой глубиной индекса
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945885
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

по какому типу поля этот индекс построен?
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945896
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай:
1. сетевой ввод\вывод блобов буферизован на клиенте, например N вызовов get\put_segment с маленьким размером сегмента не приведёт к N сетевым обращениям
2. на сервере последняя (она же текущая) страница блоба также не пишется даже в кеш до полного заполнения или закрытия блоба
3. потоковые блобы действительно не описаны в Борландовской доке, я в шоке
4. в fb3 потоковые блобы можно читать\писать используя 32-битные размеры кусков
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945909
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

ох, ё, какой же ты нудный! :-)

на закладке indices выбираешь этот индекс, кликаешь copy, и сюда paste. Можешь имя индекса и таблицы поменять, если не хочешь светить.

Но вообще сам вопрос, в целом, про "16к хуже чем 8к, и надо 16к" у меня вызывает только вот такую дилемму -
надо помыться, а значит снять трусы. Но снимать трусы не хочется. Но помыться надо. Но снимать не хочется. И т.д.

Надо в силу ряда причин увеличить размер страницы до 16к - значит увеличивайте. Да, максимум на несколько единиц процентов производительность в целом (по операциям со страницами) может стать хуже. Но чтобы это не стало хуже хотя бы из-за несоответствия кластера и page_size - ну переформатируй диск с БД на кластер 16к.
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945926
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvGallemar,

ох, ё, какой же ты нудный! :-)


Я не нудный,я дотошный и любознательный :)
kdvна закладке indices выбираешь этот индекс, кликаешь copy, и сюда paste. Можешь имя индекса и таблицы поменять, если не хочешь светить.

Index Table Depth Keys Key Len Max Dup Total Dup Uniques Size, mb AvgFill
PARTSPEC_IDX_ARTICUL PARTSPEC 4 268246740 21.86 3 50511 268196229 7999.31 95

Index Table Depth Keys Key Len Max Dup Total Dup Uniques Size, mb AvgFill
PARTSPEC_IDX_DOCHEAD PARTSPEC 4 268246674 27.41 3 50581 268196093 9323.13 97

Index Table Depth Keys Key Len Max Dup Total Dup Uniques Size, mb AvgFill
PARTSPEC_IDX_DOCKIND PARTSPEC 4 268246826 15.70 3 50581 268196245 6109.08 98

Index Table Depth Keys Key Len Max Dup Total Dup Uniques Size, mb AvgFill
PARTSPEC_IDX_INDOCHEAD PARTSPEC 4 268248554 7.68 3 50581 268197973 4416.84 90

kdvНо вообще сам вопрос, в целом, про "16к хуже чем 8к, и надо 16к" у меня вызывает только вот такую дилемму -
надо помыться, а значит снять трусы. Но снимать трусы не хочется. Но помыться надо. Но снимать не хочется. И т.д.

Надо в силу ряда причин увеличить размер страницы до 16к - значит увеличивайте. Да, максимум на несколько единиц процентов производительность в целом (по операциям со страницами) может стать хуже. Но чтобы это не стало хуже хотя бы из-за несоответствия кластера и page_size - ну переформатируй диск с БД на кластер 16к.

Уже, года два с 16к живу.
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945930
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,
Индексы

PARTSPEC_IDX_ARTICUL
PARTSPEC_IDX_DOCHEAD
PARTSPEC_IDX_DOCKIND
PARTSPEC_IDX_INDOCHEAD
PARTSPEC_IDX_MOVEDOCHEAD
PK_PARTSPEC

Под спойлером скрипт таблицы

CREATE TABLE PARTSPEC (
DOCHEAD T_DOC NOT NULL /* T_DOC = INTEGER */,
INDOCHEAD T_DOC NOT NULL /* T_DOC = INTEGER */,
MOVEDOCHEAD T_DOC NOT NULL /* T_DOC = INTEGER */,
ARTICUL T_ARTICUL NOT NULL /* T_ARTICUL = VARCHAR(30) NOT NULL */,
ASRT T_ID default 0 NOT NULL /* T_ID = INTEGER NOT NULL */,
DOC_DATE DATE NOT NULL,
PLACE_INDEX T_CLIENT_INDEX NOT NULL /* T_CLIENT_INDEX = INTEGER */,
OPERTYPE T_OPER_TYPE NOT NULL /* T_OPER_TYPE = INTEGER NOT NULL */,
DOCKIND T_DOC_KIND NOT NULL /* T_DOC_KIND = INTEGER NOT NULL */,
QUANTITY T_QUANTITY NOT NULL /* T_QUANTITY = DOUBLE PRECISION DEFAULT 0 NOT NULL */,
CLOSEPER T_CLOSEPER /* T_CLOSEPER = INTEGER DEFAULT 0 NOT NULL */,
PLACE2_INDEX T_ID /* T_ID = INTEGER NOT NULL */,
OPERATION T_ID /* T_ID = INTEGER NOT NULL */,
DOCTYPE T_ID /* T_ID = INTEGER NOT NULL */,
INDOC_DATE T_DATE /* T_DATE = DATE NOT NULL */,
INCLIENT_INDEX T_ID /* T_ID = INTEGER NOT NULL */,
INOPERATION T_ID /* T_ID = INTEGER NOT NULL */,
PRICERUB T_MONEY /* T_MONEY = DOUBLE PRECISION DEFAULT 0 NOT NULL */,
PRICECUR T_MONEY /* T_MONEY = DOUBLE PRECISION DEFAULT 0 NOT NULL */,
TAXHEAD T_ID /* T_ID = INTEGER NOT NULL */,
INPRICERUB T_MONEY /* T_MONEY = DOUBLE PRECISION DEFAULT 0 NOT NULL */,
INPRICECUR T_MONEY /* T_MONEY = DOUBLE PRECISION DEFAULT 0 NOT NULL */,
INTAXHEAD T_ID /* T_ID = INTEGER NOT NULL */,
NUMBER T_NUMBER /* T_NUMBER = INTEGER NOT NULL */
);




/******************************************************************************/
/*** Primary keys ***/
/******************************************************************************/

ALTER TABLE PARTSPEC ADD CONSTRAINT PK_PARTSPEC PRIMARY KEY (DOCHEAD, INDOCHEAD, MOVEDOCHEAD, ARTICUL, ASRT);


/******************************************************************************/
/*** Indices ***/
/******************************************************************************/

CREATE INDEX PARTSPEC_IDX_ARTICUL ON PARTSPEC (ARTICUL, ASRT, DOCHEAD, INDOCHEAD, MOVEDOCHEAD);
CREATE INDEX PARTSPEC_IDX_ARTICUL_DATE ON PARTSPEC (ARTICUL, DOC_DATE);
CREATE INDEX PARTSPEC_IDX_DATE ON PARTSPEC (DOC_DATE, NUMBER);
ALTER INDEX PARTSPEC_IDX_DATE INACTIVE;
CREATE INDEX PARTSPEC_IDX_DOCHEAD ON PARTSPEC (DOCHEAD, ARTICUL, ASRT, INDOCHEAD, MOVEDOCHEAD);
CREATE INDEX PARTSPEC_IDX_DOCKIND ON PARTSPEC (DOCKIND, DOCHEAD, INDOCHEAD, MOVEDOCHEAD, ARTICUL, ASRT);
CREATE INDEX PARTSPEC_IDX_INDOCHEAD ON PARTSPEC (INDOCHEAD, ARTICUL, ASRT, MOVEDOCHEAD, DOCHEAD);
CREATE INDEX PARTSPEC_IDX_MOVEDOCHEAD ON PARTSPEC (MOVEDOCHEAD, ARTICUL, ASRT, INDOCHEAD, DOCHEAD);
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38945967
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

ну так не удивительно что у них такая глубина. Они же все многосегментные
...
Рейтинг: 0 / 0
Размер сегмента BLOB
    #38972116
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знаю, я тупой, но это уже слишком: до меня только сейчас дошло, что размер сегмента не
может быть 64к. Максимум 64к-1 байт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Размер сегмента BLOB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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