WEB开发网
开发学院数据库MSSQL Server 详细讲述 SQL SERVER 内存和缓冲区管理 阅读

详细讲述 SQL SERVER 内存和缓冲区管理

 2007-05-20 09:35:42 来源:WEB开发网   
核心提示: 除去上述占用,剩余内存将以procedure cache percent配置参数的值按比例分配给过程缓冲区和数据缓冲区,详细讲述 SQL SERVER 内存和缓冲区管理(2),例若值为20,即表示剩余内存的20%分配给过程缓冲区而80%分配给数据缓冲区,初装SQL Server时,会产生一

除去上述占用,剩余内存将以procedure cache percent配置参数的值按比例分配给过程缓冲区和数据缓冲区,例若值为20,即表示剩余内存的20%分配给过程缓冲区而80%分配给数据缓冲区。确定缓冲区大小的另一种方法是检查SQL SERVE启动时写入SQL Server错误日志的内存信息,其中准确地说明了分配给过程缓冲区和数据缓冲区的数据量,以及多少个过程或其他编译对象能同时驻留在缓冲区中,如相关信息为:

Server:Number of proc buffers assocated:556
Server:Number of blocks left for proc headers:629
Server:Memory allocated for the default data cache:4144kb

前两行为过程缓冲区信息,过程缓冲区总大小是分配给过程缓冲区的内存(第一行)及分配给过程头(即存放编译对象如存储过程的地方,根据被存储对象的大小,可能需要一个或多个过程头)的内存(第二行)之和,可存储在过程缓冲区中的编译对象受到此二者中较小者的限制。上述信息中,第一行指明了分配给过程缓冲区的缓冲区数量为556KB,每个缓冲区大小为76B,故过程缓冲区大小即为42256B,合21页;第二行则指明了分配给过程头的空间为629页,由此可以得出,过程缓冲区总大小为629+21=650页,合1.27MB。

信息中第三行则指明了分配给默认数据库缓冲区的空间大小。此外,若配置了命名缓冲区,则相关信息还将包含每个命名缓冲区的信息,再加上这些命名缓冲区所占内存大小即得到总的数据缓冲区大小。欲知数据缓冲区大小还可通过sp_helpcache过程得到每个缓冲区和捆绑到这些缓冲区中的对象以及与不同缓冲区大小相关的开销的详细信息。

2、缓冲区管理

数据缓冲区保存SQL Server当前使用和最近使用过的数据页,索引页和日志页。初装SQL Server时,会产生一个默认的数据缓冲区。SQL Server允许系统管理员把数据缓冲区分成独立的命名数据缓冲区,然后可把数据库或数据库对象捆绑到这些命名缓冲区上,以对缓冲区空间进行更合理的组织,控制数据库,表和索引在内存的驻留。另外,系统管理员还可在缓冲区内创建缓冲池,用于执行大块的磁盘I/O,改善数据查询性能,减少磁盘I/O。有关数据库缓冲区的指令有:

上一页  1 2 3 4 5 6 7  下一页

Tags:详细 讲述 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接