SQL SERVER工作日志--我的数据库会装满吗?

Posted owen zeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL SERVER工作日志--我的数据库会装满吗?相关的知识,希望对你有一定的参考价值。

背景

  今天有个客户问我一个蛮有意思的问题。我使用的SQL SERVER 2008的数据库。目前数据库130多G了。其中某个表的就有

3亿1千多万的记录数,占用了50多G。那SQL SERVER 数据库中某一表有没有行数限制和列数限制呢?会不会突然有一天,超过这个限制

我的系统就不能使用了?

 

 

分析

   这个问题其实在微软的官方文档已经给出了解释。只是大家可能没有注意看。具体结果如下图所示:

SQL Server 数据库引擎对象

最大大小/数量 - SQL Server(32 位)

最大大小/数量 - SQL Server(64 位)

每个 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

每个宽表的列数

30,000

30,000

每个 SELECT 语句的列数

4,096

4,096

每个 INSERT 语句的列数

4096

4096

每个客户端的连接个数

已配置连接的最大值

已配置连接的最大值

数据库大小

524,272 TB

524,272 TB

每个 SQL Server 实例的数据库个数

32,767

32,767

每个数据库的文件组个数

32,767

32,767

每个数据库的文件个数

32,767

32,767

文件大小(数据)

16 TB

16 TB

文件大小(日志)

2 TB

2 TB

每个表的外键表引用数4

253

253

标识符长度(以字符计)

128

128

每台计算机的实例数

所有 SQL Server 版本(Workgroup 除外)的独立服务器上为 50 个实例。Workgroup 支持每台计算机上最多有 16 个实例。

SQL Server 支持故障转移群集上有 25 个实例。

独立服务器上为 50 个实例。

故障转移群集上 25 个实例。

包含 SQL 语句的字符串的长度(批大小)1

65,536 * 网络数据包大小

65,536 * 网络数据包大小

每个连接的锁数

每个服务器的最大锁数

每个服务器的最大锁数

每个 SQL Server 实例的锁数5

最多 2,147,483,647

仅受内存限制

嵌套存储过程级别数6

32

32

嵌套子查询个数

32

32

嵌套触发器层数

32

32

每个数据表的非聚集索引个数

999

999

存在以下任意子句的情况下 GROUP BY 子句中的非重复表达式数目:CUBE、ROLLUP、GROUPING SETS、WITH CUBE、WITH ROLLUP

32

32

GROUP BY 子句中的运算符生成的分组集数目

4,096

4,096

每个存储过程的参数个数

2,100

2,100

每个用户定义函数的参数个数

2,100

2,100

每个数据表的 REFERENCE 个数

253

253

每个数据表的行数

受可用存储空间限制

受可用存储空间限制

每个数据库的表数3

受数据库中对象数限制

受数据库中对象数限制

每个分区表或索引的分区数

1,000

1,000

非索引列的统计信息条数

30,000

30,000

每个 SELECT 语句的表个数

仅受可用资源限制

仅受可用资源限制

每个表的触发器个数3

受数据库中对象数限制

受数据库中对象数限制

每个 UPDATE 语句(宽表)的列数

4096

4096

用户连接

32,767

32,767

XML 索引

249

249

 

从表中可以看到,每个表的行数是受可用空间限制。而可用空间对于整个数据库达到,524,272 TB。这是非常大的。不过值得注意的是,

对于单个数据文件的大小限制是16TB。

而对于列数,非宽表的最大列数是1024.对于关系型数据库这个值也非常大了,很难想象,你的列数超过这个值。

而表中的其他项目就不一一赘述了。需要的时候可以比对看看。

 

引用

 

官网的地址:https://technet.microsoft.com/zh-cn/library/ms143432(v=sql.100)

 

注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
若您觉得这篇文章还不错请点击下右下角的推荐,非常感谢!

以上是关于SQL SERVER工作日志--我的数据库会装满吗?的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2008 日志文件已经到了最大值,还会记录日志吗

SQL Server中的收缩数据库,数据会丢失吗?

在 SQL Server Always ON 配置中 - 将事务日志备份到 Nul 会中断 Always On 配置吗?

SQL SERVER事物日志增长过快

SQL Server:如何增加事务日志的大小?

SQL Server - 日志中没有维护计划任务名称