我的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数据库会装满吗?相关推荐
- SQL Server 数据库备份
SQL Server 数据库备份 原文 http://www.cnblogs.com/ynbt/archive/2013/04/04/2999642.html 备份数据库是指对数据库或事务日志进行复制 ...
- SQL Server数据库六种数据移动方法
1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然, ...
- python 使用pymssql连接sql server数据库
Python连接SQL Server数据库 - pymssql使用基础 ----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html ...
- powershell连接数据库_PowerShell 连接SQL Server 数据库
PowerShell 通过ADO.NET连接SQL Server数据库,并执行SQL脚本.工作中整理的一小段脚本,后来没有用上,先记录在这里: 建立数据库连接 查询返回一个DataTatble对象 执 ...
- SQL Server数据库错误9003(LSN无效)的处理方法
国内一些ERP.财务软件一般后台都使用SQL Server的数据库,SQL Server作为一个中大型数据库是不应该在桌面系统上运行的,小规模企业一般不使用专用服务器,大部分直接使用XP系统+桌面引擎 ...
- 如何通过代码连接SQL Server数据库
我们曾经为南方电网做过几个有关架空线路的科技项目,要趁着假期有整段的空闲时间,把这些代码整理一下,放入团队刚刚重构的代码库中. 由于这些项目使用的数据库为 SQL Server,所以在整理代码之前需要 ...
- SQL Server数据库收缩日志的方法
SQL Server数据库收缩日志的方法: 方法一 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大. 1.设置数据库模式为 ...
- 数据库附加出错显示服务器,SQL Server数据库附加失败的解决办法
SQL Server数据库附加失败的解决办法 本文为大家分享了SQL Server数据库附加失败的具体解决方法,供大家参考,具体内容如下 1.错误3415 问题:附加数据库的时候,发现总是附加失败,查 ...
- JDBC连接sql server数据库及其它
JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...
最新文章
- 与空连接相关的几条命令
- WinDbg演示IA-32 CPU下的Windows 分页机制下的地址转换过程
- 复习一个知识点——原、反、补码以及取反操作
- 线性代数:第三章 矩阵的初等变换与线性方程组(1)矩阵的初等变换 矩阵的秩
- Android Flash分区大小查看
- linux指令:输出重定向与追加- 输出重定向 - 表示追加
- Spring为啥默认把bean设计成单例的
- 中文VS2008安装ASP.NET MVC框架解决方案
- org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Standard
- mysql的repeat_mysql函数中使用repeat循环的例子
- Oracle操作语句之DDL语句
- multisim14安装与卸载
- 测试新人如何提高工作效率
- debian 发行代号
- 这是最好的企业管理手册
- API接口安全性设计
- 毕业季好难抉择丨考研还是工作我该选哪一个?!
- python怎样发音_python在线发音_python翻译
- Pygame中blit( )方法讲解(Surface对象)
- 洛谷 P1646 [国家集训队]happiness 网络流 最小割 Dinic+当前弧优化
热门文章
- uniapp 子组件 props拿不到数据_总结下React组件间的通讯
- mac u盘格式化 linux系统文件,Mac上怎么制作Ubuntu的U盘开启盘(装Linux系统)
- 用户表如何区分普通用户和管理员_普通用户如何辨别铝合金型材的好坏?
- 有关camshift的知识点
- 【杂谈】篇篇精华,有三AI不得不看的技术综述(超过100篇核心干货)
- 有三AI 1000问回归,备战秋招,更多,更快,更好,等你来战!
- 全球与中国机器人即服务市场领航调研与投资战略规划分析报告2022-2028年
- NPAPI开发详解,Windows版
- 仅通过崩溃地址找出源代码的出错行
- DJANGO_SETTINGS_MODULE is undefined报错的解决