Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
abrashka
Member

Откуда:
Сообщений: 517
День добрый!
Интересует такой вопрос, скажем имеем таблицу:
CREATE TABLE tbl_test (
	Id [int] IDENTITY(1, 1) NOT NULL
	,Binary_Data [Binary] NULL
	,CONSTRAINT [pk_tbl_test_Id] PRIMARY KEY CLUSTERED (Id)
	)

Заполняем ее донными такого плана:
INSERT INTO tbl_test (Binary_Data)
VALUES (0x010203040506)


Т.е. если я правильно понимаю, при условии, что филфактор равняется 80- страницы будут заполнятся до тех пор, пока не останется 20%?
В какой-то момент делаем апдейт, бинарные полю получают достаточно большое значение, скажем более 10кб, т.е. такое, которое не помящается на отдельную страницу. Что происходит в этом случае?
Если скажем гипотетически у нас вся таблица из 1000 строк до апдейта помещалась на одной странице, то что произойдет после апдета? Бинарное поле займет несколько страниц?
Речь может идти о тысячах строк, какой филфактор лучше выставить для таблицы чтоб упдейт прошел как можно быстрее?

Спасибо!
27 янв 16, 13:45    [18735617]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
abrashka
В какой-то момент делаем апдейт, бинарные полю получают достаточно большое значение, скажем более 10кб,

И как же вы в Binary(30) сможете добавить 10Кб интересно ?
27 янв 16, 13:51    [18735661]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
abrashka
Member

Откуда:
Сообщений: 517
Glory,

прошу прощения, речь идет о varbinary(max)
27 янв 16, 14:12    [18735757]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
abrashka
прошу прощения, речь идет о varbinary(max)

Почитать в хелпе о том, как хранятся blob поля, вы конечно же просто не успели ? В виду срочности вопроса ?
27 янв 16, 14:16    [18735773]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
abrashka
Т.е. если я правильно понимаю, при условии, что филфактор равняется 80- страницы будут заполнятся до тех пор, пока не останется 20%?
Неправильно. FF используется только при создании, перестроении и реорганизации индексов.

abrashka
В какой-то момент делаем апдейт, бинарные полю получают достаточно большое значение, скажем более 10кб, т.е. такое, которое не помящается на отдельную страницу. Что происходит в этом случае?
Для самообразования - Inside the Storage Engine: Anatomy of a record
27 янв 16, 14:22    [18735808]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
abrashka
Member

Откуда:
Сообщений: 517
Glory,
Читал, ответа на свои вопросы к сожалению не нашел, возможно был не внимателен.

invm,
Спасибо!
Теперь я окончательно запутался :(
Что значит:
Неправильно. FF используется только при создании, перестроении и реорганизации индексов
?
Если есть таблица с кластерным индексом (fillfactor=80), то если данные на странице доходят то 80%, то следующие новые данные не записываются на следующую страницу? Только во время перестроения индекса произойдет перераспределение данных по страницам, чтоб оставалось 20% свободного места?
27 янв 16, 14:57    [18736010]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
abrashka
Только во время перестроения индекса произойдет перераспределение данных по страницам, чтоб оставалось 20% свободного места?
Да.
27 янв 16, 14:59    [18736018]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
abrashka
Читал, ответа на свои вопросы к сожалению не нашел, возможно был не внимателен.

настолько невнимательно, что не увидели, что blob поля хранятся отдельно от таблицы ?
27 янв 16, 15:07    [18736058]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
o-o
Guest
Glory
abrashka
Читал, ответа на свои вопросы к сожалению не нашел, возможно был не внимателен.

настолько невнимательно, что не увидели, что blob поля хранятся отдельно от таблицы ?

не надо так категорично.
это было так в 2000-ом.
с появлением BLOB-ов не legacy type (varbinary, varbinary(max)),
по умолчанию идет in row-хранeние.
и только если в страницу не влазит, то off row.
тогда на исходную страницу помещается указатель на:
* "текстовую" страницу, если данные влазят в 8060 байт
* начальную страницу дерева, в к-ое запихан BLOB, если данные превысили 8060 байт.

К сообщению приложен файл. Размер - 66Kb
27 янв 16, 15:47    [18736268]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
не надо так категорично.
это было так в 2000-ом.

Опять вы в своем репертуаре
Я лично знаю, как хранятся разные типы данных
А вот ТС-а все хранится в таблице
27 янв 16, 15:51    [18736285]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4805
Glory,

Вот здесь для TC-а картинку нарисовали, а также упоминается разница в хранении между 2000 и 2005+

http://sqlmag.com/t-sql/varbinarymax-tames-blob
27 янв 16, 16:01    [18736336]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
a_voronin
Вот здесь для TC-а картинку нарисовали, а также упоминается разница в хранении между 2000 и 2005+

http://sqlmag.com/t-sql/varbinarymax-tames-blob

Все это написано в хелпе.
Который надо просто прочитать.
https://technet.microsoft.com/en-us/library/ms190969(v=sql.90).aspx

Сообщение было отредактировано: 27 янв 16, 16:06
27 янв 16, 16:05    [18736358]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
o-o
Guest
Glory
А вот ТС-а все хранится в таблице

чего-то я не понимаю, в чем проблема.
у меня что, не в таблице что ли?
на той же самой странице, где и ID лежит.
почему я и говорю: не надо так категорично о хранении ВНЕ
27 янв 16, 16:20    [18736458]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
почему я и говорю: не надо так категорично о хранении ВНЕ

Не надо блин как баран бросаться на первое прочитанное предложение
27 янв 16, 16:23    [18736483]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
o-o
Guest
Glory
o-o
почему я и говорю: не надо так категорично о хранении ВНЕ

Не надо блин как баран бросаться на первое прочитанное предложение

не надо голословно заявлять о хранении "вне".
целую таблицу varbinary(max) могу навалить так, что ничего вообще не вылезет на дополнительные страницы
27 янв 16, 16:27    [18736522]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Мальчики не сортесь
27 янв 16, 16:32    [18736545]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4805
o-o
Glory
пропущено...

Не надо блин как баран бросаться на первое прочитанное предложение

не надо голословно заявлять о хранении "вне".
целую таблицу varbinary(max) могу навалить так, что ничего вообще не вылезет на дополнительные страницы


И какой после этого будет fillfactor?
27 янв 16, 16:32    [18736547]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
не надо голословно заявлять о хранении "вне".
целую таблицу varbinary(max) могу навалить так, что ничего вообще не вылезет на дополнительные страницы

Вы хоть вопрос ТС прочитали ? Или сразу с моего поста начали ?
Такое впечатление складывается, что во всех темах вы ищите, как бы исказить смысл ответов, выдирая понравишиеся вам отрывки
27 янв 16, 16:36    [18736571]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
a_voronin
И какой после этого будет fillfactor?

ровно такой какой задаст ТС
27 янв 16, 16:40    [18736589]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
abrashka
Member

Откуда:
Сообщений: 517
invm,

че-то я вообще туплю... сорри за глупые вопросы :(
Тогда надеюсь последний вопрос на эту тему, грубо говоря, есть таблица из двух строк, ID(clustered index) и Binary_Data varbinary(max). В данный момент Binary_Data содержит достаточно маленькое значение в обоих строках и все данные уменьшаются на одной странице и занимают 100% на ней.
После этого я изменяю Binary_Data в первой строке на бОлшее значение(по размеру) так, что данные уже не поместятся на одной странице, то что произойдет с данными: Вторая строка "передвинется" на новую страницу и новое значение первой строки займет ее место или же она останется на своем месте, а новое значение Binary_Data сохранится на новой странице?
27 янв 16, 19:06    [18737352]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
abrashka
то что произойдет с данными: Вторая строка "передвинется" на новую страницу и новое значение первой строки займет ее место или же она останется на своем месте, а новое значение Binary_Data сохранится на новой странице?

Т.е. вы предложенные вам ссылки даже не открыли ?
27 янв 16, 19:10    [18737369]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
abrashka
Member

Откуда:
Сообщений: 517
Иммется в виду, что каждое бинарное значение меньше 8к, т.е. помещается на обычную страницу данных.
27 янв 16, 19:12    [18737373]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Glory
Member

Откуда:
Сообщений: 104751
abrashka
После этого я изменяю Binary_Data в первой строке на бОлшее значение(по размеру) так, что данные уже не поместятся на одной странице, то что произойдет с данными: Вторая строка "передвинется" на новую страницу и новое значение первой строки займет ее место или же она останется на своем месте, а новое значение Binary_Data сохранится на новой странице?

Где же вы, о о-о ?
"Нарисуйте" ТС-у пару картинок о физическом размещении данных
27 янв 16, 19:16    [18737387]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
o-o
Guest
Где я?
Я в пробке, у нас авария, ss148 курит бамбук, фото надо? Вам не надо, так в вэйзе завешу, там заценят.

ТС, вы на русском не понимаете?
Не влазят данные, их помещают в другое место.
Если влазят в 1 страницу, то на место прежнего бинарика помещают ссылку на эту новую страницу.
Если не влазят в 8060 байт, их все равно на страницы сложат, эти страницы организуются в дерево, вместо прежнего бинарика ссылка на корень дерева помещается.
Страницы эти уже не data pages, а text pages. И ими и их наполнением вы не управляете, никакой ff их не трогает.

Спрашивайте еще, мне стоять тут до усрчки
27 янв 16, 20:19    [18737595]     Ответить | Цитировать Сообщить модератору
 Re: Расположение бинарных данных на страницах, помогите разобраться плз.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8350
abrashka,

ставьте любой филфактор, он не будет иметь значения для Вашего объема данных.
28 янв 16, 12:31    [18739630]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить