SQL Server 2005 数据库引擎对象 | 最大大小/数量 SQL Server 2005(32 位) | 最大大小/数量 SQL Server 2005(64 位) |
---|---|---|
批大小1 | 65,536 * 网络数据包大小 | 65,536 * 网络数据包大小 |
每个短字符串列的字节数 | 8,000 | 8,000 |
每个 GROUP BY、ORDER BY 的字节数 | 8,060 | 8,060 |
每个索引键的字节数2 | 900 | 900 |
每个外键的字节数 | 900 | 900 |
每个主键的字节数 | 900 | 900 |
每行的字节数8 | 8,060 | 8,060 |
每个 varchar(max)、varbinary(max)、xml、text 或 image 列的字节数 | 2^31-1 | 2^31-1 |
每个 ntext 或 nvarchar(max) 列的字符数 | 2^30-1 | 2^30-1 |
每个数据表的聚集索引数 | 1 | 1 |
GROUP BY、ORDER BY 中的列数 | 仅受字节数限制 | 仅受字节数限制 |
GROUP BY WITH CUBE 或 WITH ROLLUP 语句中的列数或表达式数目 | 10 | 10 |
每个索引键的列数7 | 16 | 16 |
每个外键的列数 | 16 | 16 |
每个主键的列数 | 16 | 16 |
每个基础数据表的列数 | 1,024 | 1,024 |
每个 SELECT 语句的列数 | 4,096 | 4,096 |
每个 INSERT 语句的列数 | 1,024 | 1,024 |
每个客户端的连接个数 | 已配置连接的最大值 | 已配置连接的最大值 |
数据库大小 | 524,258 千吉字节 | 524,258 千吉字节 |
每个 SQL Server 实例的数据库个数 | 32,767 | 32,767 |
每个数据库的文件组个数 | 32,767 | 32,767 |
每个数据库的文件个数 | 32,767 | 32,767 |
文件大小(数据) | 16 千吉字节 | 16 千吉字节 |
文件大小(日志) | 2 千吉字节 | 2 千吉字节 |
每个表的外键表引用数4 | 253 | 253 |
标识符长度(以字符计) | 128 | 128 |
每台计算机的实例数 | 所有 SQL Server 2005 版本(Workgroup Edition 除外)的独立服务器上为 50 个实例。 Workgroup Edition 最多支持 16 个实例。 SQL Server 2005 在故障转移群集上支持 25 个实例。 | 独立服务器上 50 个实例。 故障转移群集上 25 个实例。 |
包含 SQL 语句的字符串的长度(批大小)1 | 65,536 * 网络数据包大小 | 65,536 * 网络数据包大小 |
每个连接的锁数 | 每个服务器的最大锁数 | 每个服务器的最大锁数 |
每个 SQL Server 实例的锁数5 | 最多 2,147,483,647 | 仅受内存限制 |
嵌套存储过程级别数6 | 32 | 32 |
嵌套子查询个数 | 32 | 32 |
嵌套触发器层数 | 32 | 32 |
每个数据表的非聚集索引个数 | 249 | 249 |
每个存储过程的参数个数 | 2,100 | 2,100 |
每个用户定义函数的参数个数 | 2,100 | 2,100 |
每个数据表的 REFERENCE 个数 | 253 | 253 |
每个数据表的行数 | 受可用存储空间限制 | 受可用存储空间限制 |
每个数据库的表数3 | 受数据库中对象数限制 | 受数据库中对象数限制 |
每个分区表或索引的分区数 | 1,000 | 1,000 |
非索引列的统计信息条数 | 2,000 | 2,000 |
每个 SELECT 语句的表个数 | 256 | 256 |
每个表的触发器个数3 | 受数据库中对象数限制 | 受数据库中对象数限制 |
每个数据表的 UNIQUE 索引个数或约束个数 | 249 个非聚集索引和 1 个聚集索引 | 249 个非聚集索引和 1 个聚集索引 |
用户连接 | 32,767 | 32,767 |
XML 索引 | 249 | 249 |
1网络数据包大小是表格格式数据流 (TDS) 数据包的大小,该数据包用于应用程序和关系数据库引擎之间的通信。 默认的数据包大小为 4 千字节 (KB),由“网络数据包大小”配置选项控制。
2在 SQL Server 2005 中,任何索引键的最大字节数不能超过 900。 可以使用最大大小合计超过 900 的可变长度列定义键,前提是这些列中所插入行的数据都不超过 900 字节。 在 SQL Server 2005 中,可将非键列包含于非聚集索引中以避免最大索引键大小 900 字节的限制。 有关详细信息,请参阅具有包含性列的索引。
3数据库对象包括诸如表、视图、存储过程、用户定义函数、触发器、规则、默认和约束等对象。 数据库中所有对象的数量总和不能超过 2,147,483,647。
4尽管表可以包含无限数量的 FOREIGN KEY 约束,但建议最大数量取为 253。 根据承载 SQL Server 的硬件配置,指定额外的外键约束对查询优化器的处理而言可能开销很大。
5此值针对静态锁分配。 动态锁仅受内存限制。
6如果存储过程访问的数据库多于 8 个,或者交替访问的数据库多于 2 个,将收到错误信息。
7如果表包含一个或多个 XML 索引,由于 XML 列被添加到主 XML 索引的聚集键,用户表的聚集键被限制为 15 列。 在 SQL Server 2005 中,可在非聚集索引中包括非键列以避免 16 个键列的最大限制。 有关详细信息,请参阅具有包含性列的索引。
8SQL Server 2005 支持行溢出存储,行溢出存储使可变长度列可以被推送到行外。 只有 24 字节的根存储在推送出行外的可变长度列的主记录中;因此,此版本中的有效行限制高于 SQL Server 早期版本中的有效行限制。 有关详细信息,请参阅 SQL Server 2005 联机丛书中的“行溢出数据超过 8 KB”主题。
=========================
使用 network packet size 选项可以设置整个网络中使用的数据包大小(以字节为单位)。数据包是具有固定大小的数据块区,用于在客户端与服务器之间传输请求和结果。Microsoft SQL Server 设置的默认数据包大小为 4,096 字节。应用程序进行大容量复制操作,或者发送或接收大量文本或图像数据时,数据包大小大于默认值可以提高效率,因为这样可以减少网络读写操作。如果应用程序发送和接收的信息量较少,则可以将数据包大小设置为 512 字节,这对大多数数据传输足够了。
注意: |
---|
除非您确信能够提高性能,否则不要更改数据包大小。对于大多数应用程序而言,最好使用默认数据包大小。 |
在使用不同网络协议的系统上,将 network packet size 设置为最常用协议使用的大小。如果网络协议支持更大的数据包,则使用 network packet size 选项可以提高网络性能。客户端应用程序可以覆盖此值。
您还可以调用 OLE DB、开放式数据库连接 (ODBC) 和 DB-Library 函数来更改数据包大小。
network packet size 选项是一个高级选项。如果使用 sp_configure 系统存储过程来更改该设置,则只有在 show advanced options 设置为 1 时才能更改 network packet size。更改此设置后,所有新连接都接收新值。