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


su.dbms

 
 - SU.DBMS ----------------------------------------------------------------------
 From : Vova Aksionov                        2:5020/400     03 Jan 2003  10:19:27
 To : Sergey Prach
 Subject : Re: Синхронизация доступа к БД
 -------------------------------------------------------------------------------- 
 
 On Mon, 30 Dec 2002 19:57:23 +0000 (UTC), "Sergey Prach"
 <slprach@kot.poltava.ua> wrote:
 
 >> Почему-то забываем при этом вопросы нескольких версий записей в
 >> индексах, нескольких версий статистики и секса, которого приходится
 >> иметь оптимизатору запросов.
 >>
 >> Hе памятью единой ...
 >
 >    Я хотел было упомянуть, про индексы и прочую служебную информацию, но
 >потом подумал - если мы пока не пришли к конценсусу, гже же размещаются эти
 >версии данных, то о версиях и ресурсах под них для служебной информации
 >лучше пока промолчи. ;-)
 
 Как представитель news:\\forums.demo.ru\epsilon.public.interbase
 я бы мог наверное внести некоторую ясность в вышезаданные вопросы.
 
  1. Дельты записей (версии) ничем не отличаются от самих записей по
 технологии хранения - и лежать могут на любой странице - нет
 необходимости предварительного резервирования места именно под версии.
 
  2. Индексы не являются версионными - они видят все версии записей.
 Перед выдачей данных клиенту проверяется какие же из версий этих
 записей должны быть видны запрашивающей транзакции - и выдаются только
 те которые соответствуют уровню транзакции. Собственно это самое
 больное место - если версий очень много - то серверу приходится
 перебирать их все что бы выяснить что же можно выдавать. Для того что
 бы избегать таких ситуаций в IB предусмотрено несколько механизмов
 ликвидации неактуальных версий. В общем случае неактуальные версии
 удаляет обращение в этим версиям следующей транзакции после той
 которая эти версии создала. Hапример (псевдокод):
 
 StartTransaction.
 update table set kol = kol + 10 where idgroup = 100
 Commit;
 
 StartTransaction;
 select * from table where idgroup = 100 
 /* здесь неактуальные версии будут удалены */
 Commit;
 
  3. Статистика в IB сама не пересчитывается. Ее пересчет запускается с
 клиента - когда надо тогда и запускаешь. Поскольку статистика
 показывает селективность индекса а он неверсионный - то и статистика
 соответсвенно неверсионная, т.е. учитывает все версии записей.
 Hе исключено что сбор статистики сам порождает сбор мусорных версий -
 тут я не в курсе.
 
  4. IMHO Оптимизатору версии пофиг - он рассматривает все что видят
 индексы, выкидывание мусорных версий происходит при выдаче данных.
 
 Итого - версионность дается не даром и требует иного подхода к
 проектированию и програмированию. 
 
 Самый яркий пример - select count(*) from table - 
 у IB происходит полный перебор всех записей и всех их версий - и на
 миллионных таблицах может длиться минутами, в то время как на
 блокировочниках это выдается мнгновенно.
 
 Пока.
 -------------
 Vova Aksionov
 Novosibirsk
 --- ifmail v.2.15dev5
  * Origin: Sinor-NMTS (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/78696edfce34.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional