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

StackOverflow https://stackoverflow.com/questions/922707

  •  06-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

От здесь

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

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

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 столбцами

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top