Sql server 在SQL server 2012中,如何为每个数据库分配SQL server的大小?

Sql server 在SQL server 2012中,如何为每个数据库分配SQL server的大小?,sql-server,memory-management,sql-server-2012,Sql Server,Memory Management,Sql Server 2012,我目前正在使用分配了16GB大小的SQL server,并且 SQL server中有3个数据库,现在我的问题是 是否为每个数据库分配大小 SQL Server根据传递的请求分配内存分页。 来自SQL Server数据库引擎实例的I/O包括逻辑和物理读取。每次数据库引擎从缓冲区缓存请求页面时,都会发生逻辑读取。如果页面当前不在缓冲区缓存中,则物理读取会首先将页面从磁盘复制到缓存中。 然后实例继续根据需要获取内存以支持工作负载。随着越来越多的用户连接并运行查询,SQL Server会根据需要获

我目前正在使用分配了16GB大小的SQL server,并且 SQL server中有3个数据库,现在我的问题是 是否为每个数据库分配大小


SQL Server根据传递的请求分配内存分页。

来自SQL Server数据库引擎实例的I/O包括逻辑和物理读取。每次数据库引擎从缓冲区缓存请求页面时,都会发生逻辑读取。如果页面当前不在缓冲区缓存中,则物理读取会首先将页面从磁盘复制到缓存中。

然后实例继续根据需要获取内存以支持工作负载。随着越来越多的用户连接并运行查询,SQL Server会根据需要获得额外的物理内存。


例如,启动后进行一次特定选择,读取的页面将加载到内存中。
如果在第一次选择之后执行相同的选择,则页面将直接从内存中读取。

然后页面尽可能长地保存在内存中,如果没有可用内存,则需要将新页面加载到内存中时,可能会从内存中释放一些干净的页面。

SQL Server实例继续获取物理内存,直到达到其最大服务器内存分配目标或Windows指示不再有多余的可用内存;当内存超过最小服务器内存设置时,它会释放内存,而Windows则表示可用内存不足。


干净页面是指数据文件数据最新的页面。
与脏页相反,脏页是加载到内存中、已修改且尚未提交的页。

简而言之:如果需要同时寻址所有数据,那么所需的内存大小可能达到实例中所有数据库的总大小。 如果内存中的页面寿命较短,您的性能将下降。
例如,您可以使用Perfmon或内置DataCollector监视页面寿命。

您还可以管理实例设置以分配最小/最大内存大小。根据系统和其他流程所需的其他资源。

参考文献:




可以在创建数据库时指定数据库的初始文件大小

CREATE DATABASE [MyDB]
ON PRIMARY (Name = N'MyDB', FILENAME = N'C:\MyDB.mdf', SIZE = 5120KB, FILEGROWTH = 1024KB)
LOG ON (NAME = N'MyDB_log', FILENAME = N'C:\MyDB_log.ldf', SIZE = 1024KB, FILEGROWTH = 10%)
当文件数据达到其容量时,您有两个选择。
文件处于自动增长状态,并且文件将自动增长到文件增长大小(百分比或固定字节)。
否则,数据库将回滚事务并发出错误

然后,您可以使用以下请求检查文件的大小。
该请求自SQL Server 2005起生效。
如果您需要SQL 2005下的请求,如果需要,我有一个。

这是一个数据文件:

SELECT
    D.name,
    (SUM(F.size)*8)/1024 AS FileSize
FROM sys.master_files F
INNER JOIN sys.databases D
ON D.database_id = F.database_id
WHERE F.type_desc = 'ROWS'
GROUP BY D.database_id, D.name
ORDER BY D.database_id
这一个用于日志文件:

SELECT
    D.name,
    (SUM(F.size)*8)/1024 AS FileSize
FROM sys.master_files F
INNER JOIN sys.databases D
ON D.database_id = F.database_id
WHERE F.type_desc = 'LOG'
GROUP BY D.database_id, D.name
ORDER BY D.database_id
参考文献:


附言:

所以您要说的是,在创建过程中没有为数据库分配大小。对吧?@你说的是内存使用还是文件大小?我说的是size@hybris95,因为问题不清楚,分配的大小是关于内存还是文件大小,所以我发布了两个答案。