Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
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] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
И как же вы в Binary(30) сможете добавить 10Кб интересно ? |
||
27 янв 16, 13:51 [18735661] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
Glory, прошу прощения, речь идет о varbinary(max) |
27 янв 16, 14:12 [18735757] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Почитать в хелпе о том, как хранятся blob поля, вы конечно же просто не успели ? В виду срочности вопроса ? |
||
27 янв 16, 14:16 [18735773] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||||
27 янв 16, 14:22 [18735808] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
Glory, Читал, ответа на свои вопросы к сожалению не нашел, возможно был не внимателен. invm, Спасибо! Теперь я окончательно запутался :( Что значит:
Если есть таблица с кластерным индексом (fillfactor=80), то если данные на странице доходят то 80%, то следующие новые данные не записываются на следующую страницу? Только во время перестроения индекса произойдет перераспределение данных по страницам, чтоб оставалось 20% свободного места? |
||
27 янв 16, 14:57 [18736010] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
27 янв 16, 14:59 [18736018] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
настолько невнимательно, что не увидели, что blob поля хранятся отдельно от таблицы ? |
||
27 янв 16, 15:07 [18736058] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
не надо так категорично. это было так в 2000-ом. с появлением BLOB-ов не legacy type (varbinary, varbinary(max)), по умолчанию идет in row-хранeние. и только если в страницу не влазит, то off row. тогда на исходную страницу помещается указатель на: * "текстовую" страницу, если данные влазят в 8060 байт * начальную страницу дерева, в к-ое запихан BLOB, если данные превысили 8060 байт. К сообщению приложен файл. Размер - 66Kb |
||||
27 янв 16, 15:47 [18736268] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Опять вы в своем репертуаре Я лично знаю, как хранятся разные типы данных А вот ТС-а все хранится в таблице |
||
27 янв 16, 15:51 [18736285] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4805 |
Glory, Вот здесь для TC-а картинку нарисовали, а также упоминается разница в хранении между 2000 и 2005+ http://sqlmag.com/t-sql/varbinarymax-tames-blob |
27 янв 16, 16:01 [18736336] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Все это написано в хелпе. Который надо просто прочитать. https://technet.microsoft.com/en-us/library/ms190969(v=sql.90).aspx Сообщение было отредактировано: 27 янв 16, 16:06 |
||
27 янв 16, 16:05 [18736358] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
чего-то я не понимаю, в чем проблема. у меня что, не в таблице что ли? на той же самой странице, где и ID лежит. почему я и говорю: не надо так категорично о хранении ВНЕ |
||
27 янв 16, 16:20 [18736458] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Не надо блин как баран бросаться на первое прочитанное предложение |
||
27 янв 16, 16:23 [18736483] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
не надо голословно заявлять о хранении "вне". целую таблицу varbinary(max) могу навалить так, что ничего вообще не вылезет на дополнительные страницы |
||||
27 янв 16, 16:27 [18736522] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
Мальчики не сортесь |
27 янв 16, 16:32 [18736545] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4805 |
И какой после этого будет fillfactor? |
||||
27 янв 16, 16:32 [18736547] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Вы хоть вопрос ТС прочитали ? Или сразу с моего поста начали ? Такое впечатление складывается, что во всех темах вы ищите, как бы исказить смысл ответов, выдирая понравишиеся вам отрывки |
||
27 янв 16, 16:36 [18736571] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
ровно такой какой задаст ТС |
||
27 янв 16, 16:40 [18736589] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
invm, че-то я вообще туплю... сорри за глупые вопросы :( Тогда надеюсь последний вопрос на эту тему, грубо говоря, есть таблица из двух строк, ID(clustered index) и Binary_Data varbinary(max). В данный момент Binary_Data содержит достаточно маленькое значение в обоих строках и все данные уменьшаются на одной странице и занимают 100% на ней. После этого я изменяю Binary_Data в первой строке на бОлшее значение(по размеру) так, что данные уже не поместятся на одной странице, то что произойдет с данными: Вторая строка "передвинется" на новую страницу и новое значение первой строки займет ее место или же она останется на своем месте, а новое значение Binary_Data сохранится на новой странице? |
27 янв 16, 19:06 [18737352] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Т.е. вы предложенные вам ссылки даже не открыли ? |
||
27 янв 16, 19:10 [18737369] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
Иммется в виду, что каждое бинарное значение меньше 8к, т.е. помещается на обычную страницу данных. |
27 янв 16, 19:12 [18737373] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Где же вы, о о-о ? "Нарисуйте" ТС-у пару картинок о физическом размещении данных |
||
27 янв 16, 19:16 [18737387] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Где я? Я в пробке, у нас авария, ss148 курит бамбук, фото надо? Вам не надо, так в вэйзе завешу, там заценят. ТС, вы на русском не понимаете? Не влазят данные, их помещают в другое место. Если влазят в 1 страницу, то на место прежнего бинарика помещают ссылку на эту новую страницу. Если не влазят в 8060 байт, их все равно на страницы сложат, эти страницы организуются в дерево, вместо прежнего бинарика ссылка на корень дерева помещается. Страницы эти уже не data pages, а text pages. И ими и их наполнением вы не управляете, никакой ff их не трогает. Спрашивайте еще, мне стоять тут до уср ![]() |
27 янв 16, 20:19 [18737595] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
abrashka, ставьте любой филфактор, он не будет иметь значения для Вашего объема данных. |
28 янв 16, 12:31 [18739630] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |