powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Большая таблица, мало RAM
12 сообщений из 87, страница 4 из 4
Большая таблица, мало RAM
    #37630886
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойлицензии коммерческого ПО с такими фичами и под такие объёмы закупать - будет дорого...

Это "коммерческое ПО" туда просто не установится из-за аппаратных требований. Тот же
Firebird использует сжатие как данных так и индексов, но аффтар уже привязался к слону...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37630889
Dimitry SibiryakovАнатоЛойлицензии коммерческого ПО с такими фичами и под такие объёмы закупать - будет дорого...

Это "коммерческое ПО" туда просто не установится из-за аппаратных требований. Тот же
Firebird использует сжатие как данных так и индексов, но аффтар уже привязался к слону...

Ну у Firebird сжатие это сильно сказано :)
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37631291
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сильно сказаноНу у Firebird сжатие это сильно сказано :)А что же это? Это не сжатие, или существует другой, специальный термин?
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37631377
WildSeryсильно сказаноНу у Firebird сжатие это сильно сказано :)А что же это? Это не сжатие, или существует другой, специальный термин?
Поле varchar2(100) - это тоже сжатие, занимает обычно меньше 100.
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37631453
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сильно сказаноНу у Firebird сжатие это сильно сказано :)ФБ на самом деле жмёт строки при записи на диск.
Вот простая иллюстрация:
1) скрипт для заполнения базы плохо сжимаемыми данными:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
--file = 'filbin.sql'
recreate table t(id int, s01 char(64) character set octets);
commit;
set term ^;
execute block as 
declare n int = 100000;
begin
  while (n>0) do insert into t values(:n-1, gen_uuid()||gen_uuid()||gen_uuid()||gen_uuid() ) returning :n-1 into n;
end^
set term ;^
commit;


2) скрипт для заполнения базы строками вида "аааа...ааа":
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
-- file = 'filtext.sql'
recreate table t(id int, s01 char(64));
commit;
set term ^;
execute block as 
declare n int = 100000;
begin
  while (n>0) do insert into t values(:n-1, lpad('',64,'a') ) returning :n-1 into n;
end^
set term ;^
commit;


Создаем и заполняем по этим скриптам две базы :
Код: plaintext
1.
2.
3.
4.
SQL> create database 'tmpuncompressed.fdb' pagesize 8192; commit;
SQL> in filbin.sql;
SQL> create database 'tmpcompressed.fdb' pagesize 8192; commit;
SQL> in filtext.sql;
SQL> quit;

Смотрим размеры файлов:
Код: plaintext
1.
2.
C:\1INSTALL\FIREBIRD\FB25>dir tmp*.fdb
25.01.2012  18:13             6 922 240  TMPCOMPRESSED.FDB
25.01.2012  18:13            14 262 272  TMPUNCOMPRESSED.FDB

Статистика по заполнению страниц для этих баз:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
C:\1INSTALL\FIREBIRD\FB25>gstat -r TMPCOMPRESSED.FDB
<... skipped ...>
Analyzing database pages ...
T (128)
    Primary pointer page: 148, Index root page: 149
     Average record length: 10.99 , total records: 100000
    Average version length: 0.00, total versions: 0, max versions: 0
    Data pages: 614, data page slots: 614, average fill: 56%
    Fill distribution:
	 0 - 19% = 0
	20 - 39% = 1
	40 - 59% = 613
	60 - 79% = 0
	80 - 99% = 0

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
C:\1INSTALL\FIREBIRD\FB25>gstat -r TMPUNCOMPRESSED.FDB
<... skipped ...>
Analyzing database pages ...
T (128)
    Primary pointer page: 148, Index root page: 149
     Average record length: 73.00 , total records: 100000
    Average version length: 0.00, total versions: 0, max versions: 0
    Data pages: 1409, data page slots: 1409, average fill: 78%
    Fill distribution:
	 0 - 19% = 0
	20 - 39% = 1
	40 - 59% = 0
	60 - 79% = 1408
	80 - 99% = 0
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37631804
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каком смысле дорого?Victor MetelitsaУ Oracle и DB2 есть компрессия данных и индексов, но это ОЧЕНЬ дорого.
В каком смысле дорого?
В деньгах.
Но, возможно, несколько сотен тысяч долларов для вас недорого - ну... тогда недорого.
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37631810
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovАнатоЛойлицензии коммерческого ПО с такими фичами и под такие объёмы закупать - будет дорого...

Это "коммерческое ПО" туда просто не установится из-за аппаратных требований. Тот же
Firebird использует сжатие как данных так и индексов, но аффтар уже привязался к слону...

Вполне установится и будет нормально работать.

Честно говоря, на DB2 Express-C компрессия (как и многие другие продвинутые фичи) почему-то работает (забыли отключить?), ужимает размер базы раза в два, но официально это не лицензировано, в любой момент могут вспомнить и в очередном фикспаке отключить.

Лучше DB2-шного range clustering (описанного мной в одном из предыдущих писем; возможно, эта фича уже кем-то скопирована, но я об этом не знаю) для того сферического коня в вакууме не существует ничего. Зная ключ, мы сразу знаем страницу, на которой запись - индексы не нужны.
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37632564
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидФБ на самом деле жмёт строки при записи на диск.Вот только не строки, а целиком запись сжимается.
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37632993
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryВот только не строки, а целиком запись сжимается.

И не всегда запись целиком - это может быть версия, хранящаяся только в виде дельты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37635613
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaDimitry SibiryakovНо если желаете остаться в пределах этого раздела - пожалуйста. Индексы в PG включают в
себя не только данные, но и отметки версий. Это делает его индексы больше и менее
эффективными. Поэтому они не влазят в ваше ОЗУ. Выкиньте эту гадость.

Говорят, что FB/IB неспособен на Index only access именно потому, что у индексов нет отметок версий и он вынужден лезть в таблицу тогда, когда DB2 и Oracle легко без этого обходятся. Если PG умеет тоже, ему это в плюс.В 9.2 научится.... там IOS делают (Index Only Scans). Это как-раз, когда если критерии отбора полностью попадают в индекс, то таблица не читается. Читается только индекс.
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37636177
WarstoneVictor Metelitsaпропущено...

Говорят, что FB/IB неспособен на Index only access именно потому, что у индексов нет отметок версий и он вынужден лезть в таблицу тогда, когда DB2 и Oracle легко без этого обходятся. Если PG умеет тоже, ему это в плюс.В 9.2 научится.... там IOS делают (Index Only Scans). Это как-раз, когда если критерии отбора полностью попадают в индекс, то таблица не читается. Читается только индекс.
Не критерии отбора, а все извлекаемые данные попадают в индекс.
...
Рейтинг: 0 / 0
Большая таблица, мало RAM
    #37638454
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все извлекаемые данныеWarstoneпропущено...
В 9.2 научится.... там IOS делают (Index Only Scans). Это как-раз, когда если критерии отбора полностью попадают в индекс, то таблица не читается. Читается только индекс.
Не критерии отбора, а все извлекаемые данные попадают в индекс.Да... В том числе... Это я лопухнулся.
...
Рейтинг: 0 / 0
12 сообщений из 87, страница 4 из 4
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Большая таблица, мало RAM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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