Как создать широкую таблицу в SQL Server 2008? и каковы его ограничения на использование? - PullRequest
12 голосов
/ 28 мая 2009

Я читал Спецификации максимальной емкости для SQL Server и наткнулся на обозначение широкой таблицы. Он отличается от стандартной таблицы тем, что может иметь до 30 000 столбцов, в отличие от обычной (узкой) таблицы, которая ограничена более знакомыми 1024 столбцами. Я погуглил за широким столом, но, похоже, ничего не подходит. У этого нового типа таблицы есть более формальное имя ???

Так почему у нас есть два разных типа таблиц, как вы создаете эту специальную таблицу и каковы ограничения использования этой таблицы, которая, по-видимому, может содержать больше данных? Аньхёне знаешь?

Ответы [ 5 ]

10 голосов
/ 28 мая 2009

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

Смотрите здесь для получения дополнительной информации ...

4 голосов
/ 28 мая 2009

"Чтобы создать или преобразовать таблицу в широкую таблицу, вы добавляете набор столбцов в определение таблицы."

С здесь

3 голосов
/ 28 мая 2009

Вы обычно не хотите делать это, однако! Существуют ограничения по размеру строк, и получение данных может быть медленнее, чем при использовании связанных таблиц (даже таблиц с однозначными отношениями). Я еще не видел ни одного случая, чтобы это была лучшая идея, чем связанные таблицы.

2 голосов
/ 23 мая 2013

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

1 голос
/ 16 октября 2013
CREATE TABLE [UR_DB].[dbo].[DesiredTableName]
(DocID int PRIMARY KEY,
Title varchar(200) NOT NULL,
ProductionSpecification varchar(20) SPARSE NULL,
ProductionLocation smallint SPARSE NULL,
MarketingSurveyGroup varchar(20) SPARSE NULL,
MarketingProgramID int SPARSE NULL,
SpecialPurposeColumns XML COLUMN_SET FOR ALL_SPARSE_COLUMNS);

Создание сложных тестовых баз данных - создание таблицы с более чем 1024 столбцами

...