我正在阅读SQL Server 的最大容量规范,并且遇到了宽表的指定。它与标准表的不同之处在于它可以有多达 30,000 列,而普通(窄)表仅限于更熟悉的 1024 列。我用谷歌搜索了宽表,但似乎没有什么相关的。这个新表类型有更正式的名称吗???
那么为什么我们有两种不同类型的表,你如何创建这个特殊的表以及使用这个看似可以容纳更多数据的表有什么限制?有人知道吗?
我正在阅读SQL Server 的最大容量规范,并且遇到了宽表的指定。它与标准表的不同之处在于它可以有多达 30,000 列,而普通(窄)表仅限于更熟悉的 1024 列。我用谷歌搜索了宽表,但似乎没有什么相关的。这个新表类型有更正式的名称吗???
那么为什么我们有两种不同类型的表,你如何创建这个特殊的表以及使用这个看似可以容纳更多数据的表有什么限制?有人知道吗?
宽表是使用列集和稀疏列的表。它仍然遵循每行相同的宽度限制(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);