Главная страница


su.dbms

 
 - SU.DBMS ----------------------------------------------------------------------
 From : Dmitry Kuzmenko                      2:5020/400     08 Jan 2003  17:14:28
 To : Sergey Prach
 Subject : Re: Синхронизация доступа к БД
 -------------------------------------------------------------------------------- 
 
 Hello, Sergey!
 
 Sergey Prach wrote:
 
 > > все не так страшно, хотя при работе с IB эту его особенность надо
 > учитывать...
 > 
 >     Я тебе про жаренное, а ты мне про стриженное. Я про то, что раз индексы
 > хранят все версии, то падает эффективность использования индексов, особенно
 > уникаьных. Так как приходится индекс строить всегда по большему набору
 > атрибутов (базовый набор атрибут + N-версии). Т.е. даже для такого часто
 > используемого
 > индекса, как по целочисленному 32-х битовому целому, реальный размер записи
 > в индексе значительно больше, а значит необходимо больше пространства под
 > индекс, увелечение процессорных операций, и другие "приятности".
 
 гм, ну без конкретного примера не удастся обойтись :-)
 
 К сожалению, БД из restore, т.е. "чистая".
 
 размер страницы - 16К (сама БД 2 гига).
 
 таблица X -  1 миллион 75 тысяч записей
 макс размер записи - 78 байт (в записи 2 varchar(15) и один varchar(20)).
 ПК построен по трем полям, timestamp+vchar(15)+vchar(15) 
 (т.е. макс длина ключа 8+15+15 =38 байт).
 
 статистика по ПК
 Index RDB$PRIMARY161 (0)
 Depth: 3, leaf buckets: 1527, nodes: 1075134
 Average data length: 17.00, total dup: 0, max dup: 0
 Fill distribution:
      0 - 19% = 0
     20 - 39% = 0
     40 - 59% = 0
     60 - 79% = 0
     80 - 99% = 1527
 
 умножаем 1527 на размер страницы (16К) =~ 25 мегабайт.
 Делим на чистый размер ключа, получаем ... 658 тысяч.
 
 Т.е. если бы ключи хранились в лоб, то в таком объеме их было бы
 почти в 2 раза меньше, чем хранится сейчас, и это без учета
 оверхеда страницы, без ссылки на запись и т.п.
 
 Есть и еще более сильный вариант, когда индекс по ПК,
 поле 32 символа, но "автоинкрементируется" только последний
 (строковый GUID, реверсированный).
 
 Index RDB$PRIMARY2 (0) 
 
 Depth: 2, leaf buckets: 92, nodes: 100000 
 Average data length: 1.00, total dup: 0, max dup: 0 
 Fill distribution: 
      0 - 19% = 1 
      20 - 39% = 0 
      40 - 59% = 8 
      60 - 79% = 0 
      80 - 99% = 83
 
 это прямо после вставки, размер страницы 8К. Итого получаем:
 (8192 * 92) / 32 байта = 23552 теоретических ключа. 
 А ключей на самом деле - 100 тысяч!
 Т.е. налицо почти 5-ти кратная упаковка (у числовых "автоинкрементов" получается
 то же самое, если не еще сильнее).
 
 С неуникальными индексами тоже упаковка неслабая, так что чтений на самом деле
 происходит еще меньше.
 
 -- 
 Dmitri Kouzmenko, www.ibase.ru, 953-13-34
 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5
  * Origin: iBase (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Синхронизация доступа к БД   Sergey Prach   25 Dec 2002 17:46:53 
 Re: Синхронизация доступа к БД   Dmitry Kuzmenko   26 Dec 2002 16:04:20 
 Re: Синхронизация доступа к БД   Sergey Prach   26 Dec 2002 17:23:30 
 Re: Синхронизация доступа к БД   Dmitry Kuzmenko   26 Dec 2002 17:30:39 
 Re: Синхронизация доступа к БД   Sergey Prach   27 Dec 2002 03:16:00 
 Re: Синхронизация дос тупа к БД   Andrew Lesnichenko   27 Dec 2002 05:14:54 
 Re: Синхронизация доступа к БД   Vova Aksionov   05 Jan 2003 10:01:44 
 Re: Синхронизация доступа к БД   Dmitry Kuzmenko   08 Jan 2003 15:31:34 
 Re: Синхронизация доступа к БД   Andrei N. Sobchuck   27 Dec 2002 11:23:12 
 Re: Синхронизация доступа к БД   Tolik Tentser   30 Dec 2002 20:30:16 
 Re: Синхронизация дос тупа к БД   Andrew Lesnichenko   30 Dec 2002 20:55:07 
 Re: Синхронизация дос тупа к БД   Sergey Prach   31 Dec 2002 00:16:14 
 Re: Синхронизация дос тупа к БД   Andrew Lesnichenko   31 Dec 2002 10:25:48 
 Re: Синхронизация дос тупа к БД   Tolik Tentser   31 Dec 2002 14:39:49 
 Re: Синхронизация дос тупа к БД   Andrew Lesnichenko   31 Dec 2002 14:53:34 
 Re: Синхронизация дос тупа к БД   Tolik Tentser   01 Jan 2003 19:16:26 
 Re: Синхронизация дос тупа к БД   Andrew Lesnichenko   09 Jan 2003 12:38:41 
 Re: Синхронизация дос тупа к БД   Dmitry Kuzmenko   08 Jan 2003 15:39:47 
 Синхронизация дос тупа к БД   Vasily V. Moshninov   03 Feb 2003 19:59:34 
 Re: Синхронизация дос тупа к БД   Tolik Tentser   31 Dec 2002 14:37:47 
 Re: Синхронизация дос тупа к БД   Dmitry Kuzmenko   08 Jan 2003 16:18:44 
 Re: Синхронизация доступа к БД   Dmitry Kuzmenko   08 Jan 2003 15:37:12 
 Re: Синхронизация дос тупа к БД   Andrew Lesnichenko   09 Jan 2003 12:42:05 
 Re: Синхронизация доступа к БД   Sergey Prach   30 Dec 2002 23:57:23 
 Re: Синхронизация доступа к БД   Vova Aksionov   03 Jan 2003 10:19:27 
 Re: Синхронизация доступа к БД   Sergey Prach   03 Jan 2003 14:16:27 
 Синхронизация доступа к БД   Andrey Zhukov   03 Jan 2003 23:24:56 
 Re: Синхронизация доступа к БД   Sergey Prach   05 Jan 2003 01:29:32 
 Re: Синхронизация доступа к БД   Dmitry Kuzmenko   08 Jan 2003 17:14:28 
 Синхронизация доступа к БД   Vadim Rumyantsev   05 Jan 2003 03:13:03 
 Re: Синхронизация доступа к БД   Vova Aksionov   05 Jan 2003 10:11:28 
 Синхронизация доступа к БД   Vadim Rumyantsev   05 Jan 2003 12:45:33 
 Re: Синхронизация доступа к БД   Vova Aksionov   05 Jan 2003 14:27:29 
 Re: Синхронизация доступа к БД   Vova Aksionov   05 Jan 2003 09:46:29 
 Re: Синхронизация доступа к БД   Dmitry Kuzmenko   08 Jan 2003 16:25:58 
 Re: Синхронизация доступа к БД   Sergey Prach   09 Jan 2003 22:44:36 
 Re: Синхронизация доступа к БД   Andrei N. Sobchuck   27 Dec 2002 11:23:14 
Архивное /su.dbms/2774f6c4a51e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional