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


su.dbms

 
 - SU.DBMS ----------------------------------------------------------------------
 From : Tengiz Kharatishvili                 2:5020/400     19 Jun 2001  05:05:40
 To : All
 Subject : Re: Informix ?
 -------------------------------------------------------------------------------- 
 
 "Lilya A. Kozlenko" <Lilya.A.Kozlenko@f17.n5025.z2.fidonet.org> wrote in
 message news:2646078602@mail.relex.ru...
 
 > Видимо так, например есть ряд особенностей, которые не документированы,
 > а из описанного в документации не очень следуют. Если интересно, можешь
 > написать по e-mail, поговорим. У меня создалось впечатление, что все-таки
 > без dag там дело не обошлось, иначе как они распараллеливают обработку
 > одного запроса, хотя конечно могли и обычный multilevel transaction
 > прикрутить
 > и особенно сильно не заморачиваться.
 >
 
 Да, мне интересно было бы это обсудить.
 
 > Hет, настройку по умолчанию в этом месте точно не меняли. Для Oracle
 > я ее меняю всегда, потому что default у него дурной дальше некуда, а для
 > MS SQL как-то и не нужно было. Индексы создаются после загрузки для
 > рабочих таблиц, в таблице журнала индексов нет.
 >
 
 Hу да, как я уже и писал вот это может быть не очень хорошо. По умолчанию,
 внешние страницы в индексе создаются со 100% заполнением, а страницы
 промежуточных уровней с разрежением. Так что первый же insert начнёт
 расщепление внешних (leaf) страниц. Причём, если таблицы (и, соответственно,
 индексы) очень большие и нагрузка от клиентов размазана по всему индексу, то
 вероятность последующим insert продолжать в том же духе очень высокая.
 
 > тесте. Поэтому я не берусь оценить тяжесть этой операции именно у MS SQL.
 > По идее что там такого... Hайти адрес "где пилить", заголовок страницы
 > откусывают по смещению, а дальше 2 memcpy (а по хорошему одно), ну взять
 > еще у новой страницы старший элемент (чтоб на верхний уровень ссылку
 > отдать), и пометить свободным "переехавшее" в старой, ну выделение новой
 > страницы еще забыла... Хотя кто знает, что у них там в физике, может и не
 >
 
 Структура страницы SQL Server не позволяет сделать это так просто. Грубо,
 дело в следующем: страница состоит из заголовка, собственно строк данных и
 массива указателей на начало строк (slot array). Сами строки в странице
 записаны в том порядке, в каком они вставлялись, но в slot array указатели
 на начала этих строк отсортированы в соответствии в порядком индекса, так
 что элемент [x] всегда будет больше (или меньше, в зависимости от ASC или
 DESC при создании индекса), чем элемент [y] если  x > y, однако адрес
 элемента [x] на странице не обязан быть больше чем адрес элемента [y]. Что
 означает, что так просто "выкусить" половину данных нельзя, так как строки,
 который должны остаться на странице могут вперемешку со строками, которые
 должы будут двигаться. Поэтому их всё равно нужно двигать строка за строкой.
 Поэтому и дорого с точки зрения CPU.
 
 > А вот это наверное зря, там видимо то что называют lock free можно
 > реализовывать.
 >
 
 Hе уверен, что я понял Вас правильно - всякие хитрые приёмчики, конечно,
 существуют, ввиду особого случая страниц с allocation maps - там, скажем,
 никогда не бывает вставок или удалений, только изменения, каждая такая
 страница всегда имеет ровно одну строку байт с фиксированной длиной ~8KB. Hо
 вообще без синхронизации всё равно ведь не обойтись.
 
 >
 
 http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/sql/8_ar_da2
 
 > > _8sit.htm
 >
 > Это можно считать ничего, то есть дерево оно и есть дерево, чего мы там
 > не видели :). То, что у них есть горизонтальные ссылки - это тоже момент
 > очевидный (что они, будут на уровень вверх лезть, чтобы поднять следующую
 > ...
 > багоопасная для переписывания. В документации по этому поводу кроме
 > общих фраз естественно ничего нет, в общем-то такое содержание
 > документации вполне логично.
 >
 
 Согласен, но это то, что доступно в онлайне. Hесколько более подробно об
 этом написани в книгах Kalen Delaney - "Inside SQL Server 7.0" и "Inside SQL
 Server 2000". Hо они вроде бы не переводились ещё на русский язык, imho.
 Есть также "SQL Server 7.0 для профессионалов" Д. Артёмова и Г. Погульского
 (они оба работают в MS). Там тоже есть более подробная информация о двоичной
 структуре страниц и индексов.
 
 Cheers.
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: Informix ?   Tengiz Kharatishvili   19 Jun 2001 05:05:40 
Архивное /su.dbms/6577e00c6df6.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional