原文:我的SQL SERVER数据库会装满吗?

概述

  今天有个客户问我一个蛮有意思的问题。我使用的SQL SERVER 2008数据库,目前数据库130多G,其中某个表的记录条数就有3亿1千多万,占用了50多G。那SQL SERVER 数据库中的表有没有行数和列数限制呢?会不会突然有一天,超过这个限制,我的系统就不能使用了?

最大容量

SQL SERVER 是否会被装满,主要是在于数据库的最大容量。包括最大行数和最大列数 以及其他。 具体内容,我们可以查看下面列表:

SQL Server 数据库引擎对象

最大大小/数量

每个 GROUP BY、ORDER BY 的字节数

8,060

每个索引键的字节数2

900

每个外键的字节数

900

每个主键的字节数

900

每行的字节数8

8,060

每个 varchar(max)、varbinary(max)、xml、text 或image 列的字节数

2^31-1

每个 ntext 或 nvarchar(max) 列的字符数

2^30-1

每个数据表的聚集索引数

1

GROUP BY、ORDER BY 中的列数

仅受字节数限制

GROUP BY WITH CUBE 或 WITH ROLLUP 语句中的列数或表达式数目

10

每个索引键的列数7

16

每个外键的列数

16

每个主键的列数

16

每个非宽表的列数

1,024

每个宽表的列数

30,000

每个 SELECT 语句的列数

4,096

每个 INSERT 语句的列数

4096

每个客户端的连接个数

已配置连接的最大值

数据库大小

524,272 TB

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

32,767

每个数据库的文件组个数

32,767

每个数据库的文件个数

32,767

文件大小(数据)

16 TB

文件大小(日志)

2 TB

每个表的外键表引用数4

253

标识符长度(以字符计)

128

每台计算机的实例数

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

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

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

65,536 * 网络数据包大小

每个连接的锁数

每个服务器的最大锁数

每个 SQL Server 实例的锁数5

仅受内存限制

嵌套存储过程级别数6

32

嵌套子查询个数

32

嵌套触发器层数

32

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

999

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

32

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

4,096

每个存储过程的参数个数

2,100

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

2,100

每个数据表的 REFERENCE 个数

253

每个数据表的行数

受可用存储空间限制

每个数据库的表数3

受数据库中对象数限制

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

1,000

非索引列的统计信息条数

30,000

每个 SELECT 语句的表个数

仅受可用资源限制

每个表的触发器个数3

受数据库中对象数限制

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

4096

用户连接

32,767

XML 索引

249

最大行数

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

自增列

刚才园子里的朋友提到了某种特殊的情况,如果表上的自增列情况呢?

create TABLE test (
id INT IDENTITY (2147483647,1),
name VARCHAR(100)
)

INSERT INTO test (name) VALUES ('Owen')
INSERT INTO test (name) VALUES ('Zeng')

果然溢出了。所以说,对于有自增列的表,表上的行数限制,跟定义的自增列的数据类型,起始值,步长都有关系。

针对这种情况可以使用bigint类型。防止超过行数限制。

最大列数

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

当然这个1024 只是理论值,和上面的自增列一样还是有其他条件制约着列数的限制。请看下面的例子:

CREATE TABLE test(id char(4030),name char(4030),title CHAR(10))

我的表才3个列就不让我创建了,,,这个数据库太无情了,,,,,,

这是为什么呢? 从之前的表上我们可以看到,字节数8060.其中包括7字节的内部开销。

所以,列数限制还和你定义的列的长度有关.

其他

对于其他容量限制就不一一赘述了,后续如果有遇到的时候再补充。

引用

官方文档:https://technet.microsoft.com/zh-cn/library/ms143432(v=sql.100)

我的SQL SERVER数据库会装满吗?相关推荐

  1. SQL Server 数据库备份

    SQL Server 数据库备份 原文 http://www.cnblogs.com/ynbt/archive/2013/04/04/2999642.html 备份数据库是指对数据库或事务日志进行复制 ...

  2. SQL Server数据库六种数据移动方法

    1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然, ...

  3. python 使用pymssql连接sql server数据库

    Python连接SQL Server数据库 - pymssql使用基础 ----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html ...

  4. powershell连接数据库_PowerShell 连接SQL Server 数据库

    PowerShell 通过ADO.NET连接SQL Server数据库,并执行SQL脚本.工作中整理的一小段脚本,后来没有用上,先记录在这里: 建立数据库连接 查询返回一个DataTatble对象 执 ...

  5. SQL Server数据库错误9003(LSN无效)的处理方法

    国内一些ERP.财务软件一般后台都使用SQL Server的数据库,SQL Server作为一个中大型数据库是不应该在桌面系统上运行的,小规模企业一般不使用专用服务器,大部分直接使用XP系统+桌面引擎 ...

  6. 如何通过代码连接SQL Server数据库

    我们曾经为南方电网做过几个有关架空线路的科技项目,要趁着假期有整段的空闲时间,把这些代码整理一下,放入团队刚刚重构的代码库中. 由于这些项目使用的数据库为 SQL Server,所以在整理代码之前需要 ...

  7. SQL Server数据库收缩日志的方法

    SQL Server数据库收缩日志的方法: 方法一 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大. 1.设置数据库模式为 ...

  8. 数据库附加出错显示服务器,SQL Server数据库附加失败的解决办法

    SQL Server数据库附加失败的解决办法 本文为大家分享了SQL Server数据库附加失败的具体解决方法,供大家参考,具体内容如下 1.错误3415 问题:附加数据库的时候,发现总是附加失败,查 ...

  9. JDBC连接sql server数据库及其它

    JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...

最新文章

  1. 与空连接相关的几条命令
  2. WinDbg演示IA-32 CPU下的Windows 分页机制下的地址转换过程
  3. 复习一个知识点——原、反、补码以及取反操作
  4. 线性代数:第三章 矩阵的初等变换与线性方程组(1)矩阵的初等变换 矩阵的秩
  5. Android Flash分区大小查看
  6. linux指令:输出重定向与追加- 输出重定向 - 表示追加
  7. Spring为啥默认把bean设计成单例的
  8. 中文VS2008安装ASP.NET MVC框架解决方案
  9. org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Standard
  10. mysql的repeat_mysql函数中使用repeat循环的例子
  11. Oracle操作语句之DDL语句
  12. multisim14安装与卸载
  13. 测试新人如何提高工作效率
  14. debian 发行代号
  15. 这是最好的企业管理手册
  16. API接口安全性设计
  17. 毕业季好难抉择丨考研还是工作我该选哪一个?!
  18. python怎样发音_python在线发音_python翻译
  19. Pygame中blit( )方法讲解(Surface对象)
  20. 洛谷 P1646 [国家集训队]happiness 网络流 最小割 Dinic+当前弧优化

热门文章

  1. uniapp 子组件 props拿不到数据_总结下React组件间的通讯
  2. mac u盘格式化 linux系统文件,Mac上怎么制作Ubuntu的U盘开启盘(装Linux系统)
  3. 用户表如何区分普通用户和管理员_普通用户如何辨别铝合金型材的好坏?
  4. 有关camshift的知识点
  5. 【杂谈】篇篇精华,有三AI不得不看的技术综述(超过100篇核心干货)
  6. 有三AI 1000问回归,备战秋招,更多,更快,更好,等你来战!
  7. 全球与中国机器人即服务市场领航调研与投资战略规划分析报告2022-2028年
  8. NPAPI开发详解,Windows版
  9. 仅通过崩溃地址找出源代码的出错行
  10. DJANGO_SETTINGS_MODULE is undefined报错的解决