sqlserver的数据库的最大容量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver的数据库的最大容量?相关的知识,希望对你有一定的参考价值。

--SQLSERVER2000技术规格
--------------系统技术规格---------------
--每个服务器最多可以允许16个SQLSERVER实例
--每个实例可拥有 2147483467 个锁

--------------数据库技术规格--------------
--SQLSERVER的数据库大小1048516TB
--每个数据库可拥有的文件组数32767
--每个数据库可拥有的文件组数256

--文件大小(数据文件)32TB ---够大了吧,呵呵!
--文件大小(日志文件)32TB ---够大了吧,呵呵!

--数据库中的对象数2 147 483 647
--标识符的长度128

--------------表技术规格-------------------
--每个数据库中可拥有的表数受限于数据库中的对象数
--每个表可拥有的行数受限于可用的存储容量
--每个表的主键约束数1
--每个表的外键约束数253
--每个表的引用数253
--每个表的触发器数受限于数据库中的对象数
--每个表的簇索引数1
--每个表的非簇索引数249
--每个表的唯一约束249非簇的,1成簇的

--------------列技术规格-------------------
--每个索引可包含的列数16
--每个主键可包含的列数16
--每个外键可包含的列数16
--每个表的列数1024
--索引键的大小900字节
--每个character或binary列的字节数8000
--每个text,ntext或image列的字节数2GB-2
--每行的字节数8060
--每个索引的字节数900
--每个主键的字节数900
--每个外键的字节数900

--------------SQL技术规格-------------------
--批处理大小65536乘以网络包大小
--每个SELECT语句可处理的表数256
--存储过程源文件的字节数小于批处理大小或250MB
--每个存储过程的参数数目1024
--嵌套的子查询数32
--嵌套的触发器层数32
--每个SELECT语句可处理的列数4096
--每个INSERT语句可处理的列数1024
参考技术A 32TB数据
32TB日志

SQLServer修改系统库的路径

背景

数据库默认安装在C盘,由于复制订阅或者大容量更新查询等导致tempdb系统库、distribution系统库容量过大,C盘容量不足,需要将部分系统库进行迁移,以distribution库为例进行系统库迁移,其他库类似操作即可。

查询当前系统库信息

use distribution
go
 
--查询逻辑名与当前路径
SELECT name, physical_name 
FROM sys.database_files

 

当前系统库路径为C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\Data,指定迁移到路径D:\\db

--修改到指定路径
ALTER DATABASE distribution MODIFY FILE (NAME = \'distribution\',  FILENAME = \'D:\\db\\distribution.mdf\')
ALTER DATABASE distribution MODIFY FILE (NAME = \'distribution_log\',  FILENAME = \'D:\\db\\distribution.LDF\') 

注意,如果是tempdb系统库迁移,可能会有多个ndf日志文件

--修改到指定路径
ALTER DATABASE tempdb MODIFY FILE (NAME = \'tempdev\',  FILENAME = \'D:\\db\\tempdb.mdf\')
ALTER DATABASE tempdb MODIFY FILE (NAME = \'templog\',  FILENAME = \'D:\\db\\templog.ldf\') 
ALTER DATABASE tempdb MODIFY FILE (NAME = \'temp2\',  FILENAME = \'D:\\db\\tempdb_mssql_2.ndf\') 
ALTER DATABASE tempdb MODIFY FILE (NAME = \'temp3\',  FILENAME = \'D:\\db\\tempdb_mssql_3.ndf\') 
ALTER DATABASE tempdb MODIFY FILE (NAME = \'temp4\',  FILENAME = \'D:\\db\\tempdb_mssql_4.ndf\') 
ALTER DATABASE tempdb MODIFY FILE (NAME = \'temp5\',  FILENAME = \'D:\\db\\tempdb_mssql_5.ndf\') 
ALTER DATABASE tempdb MODIFY FILE (NAME = \'temp6\',  FILENAME = \'D:\\db\\tempdb_mssql_6.ndf\') 
ALTER DATABASE tempdb MODIFY FILE (NAME = \'temp7\',  FILENAME = \'D:\\db\\tempdb_mssql_7.ndf\') 
ALTER DATABASE tempdb MODIFY FILE (NAME = \'temp8\',  FILENAME = \'D:\\db\\tempdb_mssql_8.ndf\')  

迁移

关闭MSSQLSERVER服务

将相关文件拷贝到新的地址

开启MSSQLSERVER服务

验证

use distribution
go
 
--查询逻辑名与当前路径
SELECT name, physical_name 
FROM sys.database_files

 

 原C盘的文件可以正常删除了。

以上是关于sqlserver的数据库的最大容量?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL到底能支持多大的数据量

Sqlserver 数据库自动编号主键怎么设计?

Visual Foxpro 数据容量问题,,急

请问Oracle数据库有没有容量限制?

SQL Server 数据库中的几个常见的临界值

SQLServer修改系统库的路径