特殊表类型

除了基本用户定义表的标准角色以外,SQL Server 还提供了下列类型的表,这些表在数据库中起着特殊的作用:

  • 已分区表

  • 临时表

  • 系统表

  • 宽表

已分区表

已分区表是将数据水平划分为多个单元的表,这些单元可以分布到数据库中的多个文件组中。在维护整个集合的完整性时,使用分区可以快速而有效地访问或管理数据子集,从而使大型表或索引更易于管理。在分区方案下,将数据从 OLTP 加载到 OLAP 系统中这样的操作只需几秒钟,而不是像在早期版本中那样需要几分钟或几小时。对数据子集执行的维护操作也将更有效,因为它们的目标只是所需的数据,而不是整个表。

如果表非常大或者有可能变得非常大,并且属于下列任一情况,那么分区表将很有意义:

  • 表中包含或可能包含以不同方式使用的许多数据。

  • 对表的查询或更新没有按照预期的方式执行,或者维护开销超出了预定义的维护期。

已分区表支持所有与设计和查询标准表关联的属性和功能,包括约束、默认值、标识和时间戳值、触发器和索引。因此,如果要实现一台服务器本地的分区视图,您应该改为实现已分区表。有关有助于了解、设计和实现已分区表的信息,请参阅已分区表和已分区索引

临时表

临时表有两种类型:本地表和全局表。在与首次创建或引用表时相同的 SQL Server 实例连接期间,本地临时表只对于创建者是可见的。当用户与 SQL Server 实例断开连接后,将删除本地临时表。全局临时表在创建后对任何用户和任何连接都是可见的,当引用该表的所有用户都与 SQL Server 实例断开连接后,将删除全局临时表。

有关临时表的详细信息,请参阅有关创建和修改表的基础知识

系统表

SQL Server 将定义服务器配置及其所有表的数据存储在一组特殊的表中,这组表称为系统表。除非通过专用的管理员连接(DAC,只能在 Microsoft 客户服务的指导下使用),否则用户无法直接查询或更新系统表。有关详细信息,请参阅使用专用管理员连接。通常在 SQL Server 的每个新版本中更改系统表。对于直接引用系统表的应用程序,可能必须经过重写才能升级到具有不同版本的系统表的 SQL Server 更新版本。可以通过目录视图查看系统表中的信息。有关详细信息,请参阅系统表 (Transact-SQL)

重要说明重要提示

SQL Server 2008 数据库引擎系统表已作为只读视图实现,目的是为了保证 SQL Server 2008 中的向后兼容性。无法直接使用这些系统表中的数据。建议通过使用目录视图访问 SQL Server 元数据。

宽表

宽表是定义了列集的表。宽表使用稀疏列,从而将表可以包含的总列数增大为 30,000 列。索引数和统计信息数也分别增大为 1,000 和 30,000。宽表行的最大大小为 8,019 个字节。因此,任何特定行中的大部分数据都应为 NULL。若要创建宽表或将表改为宽表,请在相应表定义中添加列集。宽表中非稀疏列和计算列的列数之和仍不得超过 1,024。

通过使用宽表,可以在应用程序中创建灵活的架构。可以根据需要随时添加或删除列。请记住,使用宽表时具有独特的性能注意事项,例如运行时和编译时内存需求增大。有关详细信息,请参阅宽表的性能注意事项

请参阅

其他资源