Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
Здравствуйте.
Хвункция возвращает таблицу с полем record_count. Перечитал "о пограмме", но так и не понял о каких там записях речь идёт. На количество записей в таблице не похоже совсем.
Записи в самом индексе? Если да, то какая польза от знаний количества записей в индексе? Для выбора индекса для перестроения лучше подходит его степень дефрагментации и количество страниц индекса, с моей точки зрения на данный момент.
6 май 14, 10:42    [15977784]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
Glory
Member

Откуда:
Сообщений: 104760
.tmp
На количество записей в таблице не похоже совсем.
Записи в самом индексе? Если да, то какая польза от знаний количества записей в индексе?

Описание поля из хелпа не дает всех ответов ?
6 май 14, 10:52    [15977874]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
Glory
.tmp
На количество записей в таблице не похоже совсем.
Записи в самом индексе? Если да, то какая польза от знаний количества записей в индексе?

Описание поля из хелпа не дает всех ответов ?

Я же говорю: почитал его, не понял о каких кучах и единицах распределения речь.
6 май 14, 10:55    [15977910]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
Glory
Member

Откуда:
Сообщений: 104760
.tmp
почитал его, не понял о каких кучах и единицах распределения речь.

Куча - это таблица без кластерного индекса
For a heap, the total number of records in the IN_ROW_DATA allocation unit.


Для индекса
For an index, total number of records applies to the current level of the b-tree in the IN_ROW_DATA allocation unit.

Что непонятного в этих двух предложениях ?
6 май 14, 10:57    [15977935]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
автор
Для кучи число записей, возвращаемых этой функцией, может не соответствовать числу строк, возвращаемых запросом SELECT COUNT(*) из кучи. Это происходит потому, что строка может содержать несколько записей. Например, при обновлении одна строка кучи может иметь указывающую запись и перенаправленную запись как результат операции обновления.

Если куча - это таблица без кластерного индекса, тогда
автор
Для таблицы число записей, возвращаемых этой функцией, может не соответствовать числу строк, возвращаемых запросом SELECT COUNT(*) из кучи.

Тогда мне не ясно что "запись" в данном контексте. Речь о физическом уровне?
6 май 14, 11:06    [15978034]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
Glory
Member

Откуда:
Сообщений: 104760
.tmp
Тогда мне не ясно что "запись" в данном контексте. Речь о физическом уровне?

А дальше прочитать ?
This is because a row may contain multiple records. For example, under some update situations, a single heap row may have a forwarding record and a forwarded record as a result of the update operation. Also, most large LOB rows are split into multiple records in LOB_DATA storage.
6 май 14, 11:08    [15978054]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
Glory
.tmp
Тогда мне не ясно что "запись" в данном контексте. Речь о физическом уровне?

А дальше прочитать ?
This is because a row may contain multiple records. For example, under some update situations, a single heap row may have a forwarding record and a forwarded record as a result of the update operation. Also, most large LOB rows are split into multiple records in LOB_DATA storage.

То есть всё же это физический уровень и речь идёт о записях в контексте файла, а не БД. Так?
6 май 14, 11:11    [15978083]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
Glory
Member

Откуда:
Сообщений: 104760
.tmp
То есть всё же это физический уровень и речь идёт о записях в контексте файла, а не БД. Так?

Чего ??
6 май 14, 11:13    [15978111]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
Glory
.tmp
То есть всё же это физический уровень и речь идёт о записях в контексте файла, а не БД. Так?

Чего ??

...тогда не понимаю о каких записях идёт речь.
6 май 14, 11:17    [15978147]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
Glory
Member

Откуда:
Сообщений: 104760
.tmp
.тогда не понимаю о каких записях идёт речь.

В файле нет записей. В файле есть страницы и экстены.
Записи есть только в таблицах.
6 май 14, 11:23    [15978213]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
Glory
.tmp
.тогда не понимаю о каких записях идёт речь.

В файле нет записей. В файле есть страницы и экстены.
Записи есть только в таблицах.

Как тогда понимать
автор
Для таблицы число записей, возвращаемых этой функцией, может не соответствовать числу строк, возвращаемых запросом SELECT COUNT(*) из таблицы.

В моём понимании в контексте таблицы "запись" == "строка".
6 май 14, 11:26    [15978232]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
Glory
Member

Откуда:
Сообщений: 104760
.tmp
В моём понимании в контексте таблицы "запись" == "строка".

Это правильно.
А какое непонимание у вас вызывает цитируемое предложение - неясно.
Вас удивляет, что какие-то цифры могут не соответсвовать каким то другим цифрам ?
6 май 14, 11:28    [15978248]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
forwarding record
Guest
http://blogs.msdn.com/b/sqlserverstorageengine/archive/2006/09/19/761437.aspx
6 май 14, 11:28    [15978249]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
[quot Glory]
.tmp
В моём понимании в контексте таблицы "запись" == "строка".

Это правильно.
А какое непонимание у вас вызывает цитируемое предложение - неясно.
Вас удивляет, что какие-то цифры могут не соответсвовать каким то другим цифрам ?[/quot]
Именно так.
То есть если мы рассматриваем кучу (рассматриваемая таблица не имеет кластерного индекса), то записью является строка. А если у таблицы есть кл.индекс, то это будет индексная запись. Так?
6 май 14, 12:05    [15978658]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
forwarding record
http://blogs.msdn.com/b/sqlserverstorageengine/archive/2006/09/19/761437.aspx

Спаси бо.
6 май 14, 12:07    [15978671]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
Glory
Member

Откуда:
Сообщений: 104760
.tmp
То есть если мы рассматриваем кучу (рассматриваемая таблица не имеет кластерного индекса), то записью является строка.

Не все записи в таблице являются актуальными
Поэтому sys.dm_db_index_physical_stats и SELECT COUNT(*) могут выдавать разные результаты
6 май 14, 12:08    [15978684]     Ответить | Цитировать Сообщить модератору
 Re: Функция sys.dm_db_index_physical_stats (2008 R2)  [new]
.tmp
Member

Откуда: Глупов
Сообщений: 5080
Glory
.tmp
То есть если мы рассматриваем кучу (рассматриваемая таблица не имеет кластерного индекса), то записью является строка.

Не все записи в таблице являются актуальными
Поэтому sys.dm_db_index_physical_stats и SELECT COUNT(*) могут выдавать разные результаты

Да, теперь ясно. Благодарю за помощь. Ссылка на разжёванный материал тоже помогла.
6 май 14, 12:49    [15979067]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить