В чем разница между таблицами Wide и Nonwide в SQL 2008?

Я смотрел эту страницу в MSDN:

Максимальная емкость для SQL Server 2008

И он говорит следующее:

Макс. Количество столбцов за "нераспространенную" таблицу: 1,024
Таблица Max Columns per 'wide: 30 000

Однако я не могу найти никакой информации о различии между таблицами "wide" и "unwide" в SQL 2008. Если бы я хотел определить "широкую" таблицу, как бы я это сделал?

Ответ 1

Специальные типы таблиц

Вся необходимая информация содержится в этой статье MSDN.

Широкая таблица - это просто таблица с разреженными столбцами. Чтобы сделать таблицу шириной, вы просто добавляете столбец в его определение.

Ответ 2

Я бы сказал, что разница составляет около 28 976 столбцов.

Ответ 3

Важно отметить, что ваши полные данные фиксированной и переменной длины по-прежнему ограничены общим числом 8019 байт. Возможность сделать это сумасшедшее большое количество столбцов поддерживается только в разреженных таблицах, где МОСТ данных - это нули. В противном случае вы по-прежнему оказываетесь в строках, которые превышают 8019 байт и заканчиваются rowdata, которые не подходят или переполняются в данные расширенной строки (что очень дорого для поддержания по сравнению с обычными страницами данных).

Существует действительно хорошая книга Карена Делани, в которой есть тонна внутренних функций и ограничений для SQL Server под названием Внутренние ресурсы SQL Server 2008. Если вы действительно входите в пределы низкого уровня и как все делается на SQL Server, это фантастическое чтение. Это увеличит глубину ваших знаний о том, как SQL Server делает то, что он делает под капотом на уровне байта, на диск в некоторых случаях.

Ответ 4

Другое отличие состоит в том, что широкие таблицы не работают с транзакционной или слиянием репликации. См. Раздел "Технологии SQL Server, поддерживающие разреженные столбцы": http://msdn.microsoft.com/en-us/library/cc280604(v=sql.105).aspx