Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sp_tableoption (large value types out of row) and tempdb  [new]
lightland
Member

Откуда:
Сообщений: 11
Всем привет.
Помогите разобраться в теоретической ситуации. Есть опция "large value types out of row" = 1 - Столбцы varchar(max), nvarchar(max), varbinary(max), xml, а также большие столбцы определяемых пользователем типов хранятся в таблице вне строки с 16-байтовым указателем корня.
Я так понимаю, что если мы устанавливаем для произвольной таблицы эту опцию в 1, то большие типы будут храниться в tempdb (??? вроде в ней, если нет - то где?), а в строке будет храниться указатель на все это дело.

Если делать запрос данных из такой таблицы, то что будет быстрее: с этой опцией в 1 или без этой опции? Ведь будет же тратиться время на переход по ссылке? А если без опции, то данные будут храниться в строке (если будут туда помещаться) и вроде к ним практически сразу есть доступ, без всяких ссылок. От чего еще в таком случае будет зависеть скорость запроса?
Помогите разобраться во внутреннем устройстве.

Спасибо.
24 апр 13, 18:37    [14226438]     Ответить | Цитировать Сообщить модератору
 Re: sp_tableoption (large value types out of row) and tempdb  [new]
Гость333
Member

Откуда:
Сообщений: 3683
lightland
Я так понимаю, что если мы устанавливаем для произвольной таблицы эту опцию в 1, то большие типы будут храниться в tempdb (??? вроде в ней, если нет - то где?)

Весьма странное предположение, учитывая, что база tempdb создаётся каждый раз заново при запуске SQL сервера. Все пользовательские объекты при этом удаляются.
Данные, что с опцией, что без неё, будут храниться в той же самой пользовательской БД. Исключение — тип данных varbinary(max) с опцией хранения filestream.
24 апр 13, 18:51    [14226483]     Ответить | Цитировать Сообщить модератору
 Re: sp_tableoption (large value types out of row) and tempdb  [new]
Glory
Member

Откуда:
Сообщений: 104751
lightland
Столбцы varchar(max), nvarchar(max), varbinary(max), xml, а также большие столбцы определяемых пользователем типов хранятся в таблице вне строки с 16-байтовым указателем корня.


Small-to-medium large value types (varchar(max), nvarchar(max), varbinary(max), and xml) and large object (LOB) data types (text, ntext, and image) can be stored in a data row.

This behavior is controlled by using two options in the sp_tableoption system stored procedure: the large value types out of row option for large value types, and the text in row option for large object types.
25 апр 13, 09:17    [14228176]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить