Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 За счет чего размер листового уровня некластерного индекса меньше чем у кластерного  [new]
АнализаторСтрок
Guest
Доброе время суток, непонятна причина различной длины записи для таблицы и некластеризованного индекса

use tempdb
go

if object_id('tempdb..testrowlen') is not null
	drop table testrowlen

create table testrowlen(id int identity primary key, id2 int)
go

insert into testrowlen (id2) values(1)
go

create index ix_testrowlen_id2 on testrowlen(id2)
go

dbcc showcontig('testrowlen') with all_indexes, tableresults
go


Поля RecordSize имеют разные значения.
6 май 16, 23:23    [19144576]     Ответить | Цитировать Сообщить модератору
 Re: За счет чего размер листового уровня некластерного индекса меньше чем у кластерного  [new]
o-o
Guest
у кластерного на листовом уровне data rows,
у некластерного index rows.
book
The leaf level of a clustered index is the data itself. When a clustered index is created, the data is
copied and ordered based on the clustering key (as discussed earlier in this chapter). The row structure of a clustered index
is no different from the row structure of a heap
, except in one case: when
the clustering key isn’t defined with the UNIQUE attribute. In this case, SQL Server must guarantee
uniqueness internally, and to do this, each duplicate row requires an additional uniquifier value.

на картинке разница (3 bytes).
книга:
Microsoft-Server-Internals-Developer-Reference

К сообщению приложен файл. Размер - 102Kb
7 май 16, 00:00    [19144641]     Ответить | Цитировать Сообщить модератору
 Re: За счет чего размер листового уровня некластерного индекса меньше чем у кластерного  [new]
АнализаторСтрок
Guest
o-o,

Спасибо за ответ
7 май 16, 06:50    [19145023]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить