广告
返回顶部
首页 > 资讯 > 数据库 >SQL Server 2012内存
  • 887
分享到

SQL Server 2012内存

2024-04-02 19:04:59 887人浏览 泡泡鱼
摘要

SQLServer 2012内存 翻译自:https://mssqlwiki.com/tag/sql-server-2012-memory-architecture/ SQL Serve

SQLServer 2012内存

 

翻译自:https://mssqlwiki.com/tag/sql-server-2012-memory-architecture/

 

SQL Server 2012与之前的版本相比,内存管理器在有效的方式管理SQL Server内存消耗上做出了很多改变。每个DBA应该知道的SQL Server 2012内存的重要改变已经在这篇博文中文档化了。如果你不熟悉之前版本的SQL Server内存架构,在你继续了解Denali内存管理器的改变之前,我推荐你阅读这篇文章。

 

SQL Server 2012内存 

 

MaxServer Memory

 

在之前版本的SQL Server里,“Max Server Memory”控制了Single page allocator(BPOOL)可以在SQL Server中消耗的用户地址空间的最大物理内存。

 

只有Single page allocator时候BPOOL的一部分,Max server memory只控制BPOOL,因此,以下分配来自BPOOL(Max server memory)之外。

  1. 来自SQL Server的Multi-Page分配(这些分配请求大于8KB且需要持续内存)

  2. CLR分配(这些包含SQLCLR堆和在启动期间创建的全局分配)

  3. SQL Server进程里用于threadstacks的内存使用(Max worker threads * thread stack size)。Thread stack size在32位SQL Server里是512K,在WOW是904K,在64位是2MB

  4. 通过Non-SQL Server dll产生的直接windows分配(这些包含Windows堆使用和通过模块加载到SQL Server进程里的直接虚拟分配。例如:来自扩展存储过程DLL的分配,使用OLE自动化过程(sp_OA调用)的对象创建,加载到SQL Server进程里的链接服务器提供者的分配)

 

SQL Server 2012内存管理器现在已经结合了singlepage allocator和multipage allocator作为any-size page allocator。结果,any-size paeallocator现在管理分配,而在过去归类为single page和Multi-page分配。

  1. “Max server memory”现在控制和包含“Multi pages allocations”。

  2. 之前版本SQL Server CLR分配内存在BPOOL(Max server memory)之外。SQL Server 2012包含在“Max server memory”里包含SQL CLR分配的内存。

 

SQL Server 2012“Max servermemory”配置不只包含以下分配:

  1. SQL Server进程里对于threadstacks的内存分配。

  2. 直接对于Windows的内存分配请求(例如:来自于加载到SQL Server进程的第三方DLL的分配(Heap,Virtualalloc调用),使用OLE自动化过程(sp_OA)等的对象创建)。

 

这些改变允许DBA根据内存需要和使用资源调节器更加准确的配置和控制SQL Server。

 

-g启动参数

 

我们使用-g启动选项修改在SQL Server用户地址空间称为“Memory-To-Reserve”的一个区域的默认值。这个区域也被为“Memory-To-Leave”或MTL。这个“Memory-To-Reserve”或-g配置选项只与32位SQL Server实例相关。

 

在之前的SQL Server版本里,直到SQL Server 2008 R2,Multi pages allocation和CLR是Memory-To-Reserve (-g)的一部分,从Denali开始它们是BPOOL的一部分(被Max server memory控制),因此,如果你在之前的版本设置它为multipage allocator或CLR分配更多空间,而现在迁移到Denali,你需要移除-g。

 

从SQL Server2012开始移除了AWE特性

 

AWE特性在之前32位版本的SQLServer中用于寻址大于4GB内存。该特性现在从Denali中移除了。参考:“AWE弃用”。因此如果你需要更多内存,那么你需要迁移到64位SQL Server。

 

在内存中锁定页

 

跟踪标志845不再需要在内存中定页。只要SQL Server启动账号有“Lock pages in memory”权限,数据中心版、企业版、标准版和商业智能版对于在BPOOL中分配内存将使用AWE分配器api,该分配将会被锁定。

 

动态虚拟地址空间管理

 

在之前版本的32位SQL Server里,我们在启动时预留了Bpool,剩下的地址空间用于MTL(Memory to reserve或Memory to leave)。在Denali虚拟地址空间管理是动态的(我们不在启动时预留),因此,对于第三方组件相比使用-g参数配置,可以使用更多内存。

 

SQLCLR在启动时加载

 

在之前版本的SQL Server,Common language runtime(CLR)功能当第一个SQL CLR过程或函数被调用的时候在SQLServer进程内初始化。SQL Server 2012在启动时执行SQL CLR初始化。该初始化不依赖于“clr enabled”配置选项。

 

你会注意到在服务启动期间SQL Server错误日志里的如下信息:

 

2012-10-18 15:23:13.250spid8s       Starting up database ‘master’.

2012-10-18 15:23:13.930Server       CLR version v4.0.30319 loaded.

 

总的物理内存和内存模块使用

 

在服务器上总的物理可用内存和内存模块使用记录在SQL Server错误日志。

 

2012-10-18 15:23:06.690Server       Detected 131067 MB of RAM. This isan infORMational message; no user action is required.

2012-10-18 15:23:06.700Server       Using locked pages in the memorymanager

2012-10-22 15:32:20.450Server       Detected 131067 MB of RAM. This isan informational message; no user action is required.
2012-10-22 15:32:20.450 Server       Using conventional memory in the memory manager.

 

DMV和性能计数器改变

 

在之前的SQL Server版本里,与SQL Server在BPOOL内和BPOOL外相关的分配,大多数DMV使用single_pages_kb和multi_pages_kb。现在它们一起体现为pages_kb。更多详情请点击这里。



您可能感兴趣的文档:

--结束END--

本文标题: SQL Server 2012内存

本文链接: https://www.lsjlt.com/news/37389.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL Server 2012内存
    SQLServer 2012内存 翻译自:https://mssqlwiki.com/tag/sql-server-2012-memory-architecture/ SQL Serve...
    99+
    2022-10-18
  • SQL Server 2012 Alwa
    可用性组我们已经创建成功了,现在测试一下Node2 上读取数据以及Failover.   1. 数据测据:Node1上创建表test插入记录       在Node2上访问test数据库,数据可以查到(在Mirror中是不可以查询的,而且...
    99+
    2023-01-31
    Server SQL Alwa
  • SQL server 2012安装步骤
    点击左侧“安装”,选择右侧“全新……”检测全部通过输入产品序列号 全选 混合模式,添加当前用户添加当前用户 添加当前用户 安装完成。 ...
    99+
    2022-10-18
  • SQL Server 2012许可概述
                                &nb...
    99+
    2022-10-18
  • SQL Server 2012 完全安装
    1.打开安装文件进行安装2.点击安装进行安装3.等待安装测试4.输入产品密钥5.接受许可6.安装程序支持规则测试7.功能安装选择8.选择功能9.安装规则校验10.安装配置,实例进行配置,更改安装目录11.安...
    99+
    2022-10-18
  • SQL Server 2012 Always ON笔记
    1、两台SQL .net3.5和集群故障转移角色安装2、加入域,创建域用户sqlservice和sqladmin帐号,并加入domain admin组和两台SQL本地管理员组3、生产网络和心跳网络设置4、配...
    99+
    2022-10-18
  • SQL Server 2012安装配置(Part4 )
    SQL Server 2012安装配置(Part1)SQL Server 2012安装配置(Part2)SQL Server 2012安装配置(Part3 )SQL Server 2012安装配置(Part...
    99+
    2022-10-18
  • SQL Server 2012安装配置(Part2 )
    SQL Server 2012安装配置(Part1 )2. 服务器安装运行安装程序后,首先进入 SQL Server 安装中心。选择左侧导航树中的“安装”菜单项。图2-1 SQL Server 安装中心 在...
    99+
    2022-10-18
  • SQL Server 2012安装配置(Part1 )
    1 安装前准备安装 SQL Server 2012 服务器及客户端前,需要提前做以下两项准备:SQL Server2012 依赖于.Net Framework 3.5.1 组件。Windows Server...
    99+
    2022-10-18
  • SQL Server 2012安装配置(Part3 )
    SQL Server 2012安装配置(Part1 )SQL Server 2012安装配置(Part2 ) 3 客户端安装3.1 安装客户端功能选择之前的操作与 SQL Server 安装方法相...
    99+
    2022-10-18
  • sql server 2012 系统 DSN 错误
     在测试数据库 添加系统DSN   SQL Server Native Client 11.0时,提示如下错误:--------------------------Micros...
    99+
    2022-10-18
  • sql server 2012数据库镜像
    sql server 2012数据库镜像  以下通过域帐户来配置数据库镜像:一、环境准备1、准备计算机  AD02为域控制器/DNS服务器(sz1card1.com),IP:192.168.2.218/24...
    99+
    2022-10-18
  • Windows Server 2012上如何安装SQL
    小编给大家分享一下Windows Server 2012上如何安装SQL,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先在一台...
    99+
    2022-10-18
  • SQL Server 2012如何降级至2008R2
    这篇文章主要介绍SQL Server 2012如何降级至2008R2,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 一.背景前段时间某医院由于群集服务器...
    99+
    2022-10-18
  • sql  server 2012高可用解决方案
    sql server 2012 提供了多种可用于高可用性的解决方案,例如: 1. 通过使用 alwayson 可以提供虚拟 ip 地址(vip)来实现故障转移和读取可扩展性。 2. ...
    99+
    2023-05-18
    sql  server 2012高可用
  • sql server 2012高可用解决方案
    sql server 2012 提供了多种可用于高可用性的解决方案,例如: 1. 通过使用 alwayson 可以提供虚拟 ip 地址(vip)来实现故障转移和读取可扩展性。 2. 镜像(mirroring)。它可以在两...
    99+
    2023-05-05
    sql server 2012高可用
  • SQL Server 2012配置Always On可用性组
    一、AlwaysOn简介AlwaysOn可用性组是SQL Server 2012中提供的全新功能,确保了应用程序数据的可用性,实现零数据丢失。AlwaysOn可用性组技术融合了数据库群集和数据库镜像的优点,...
    99+
    2022-10-18
  • SQL Server内存故障排除
    SQLServer内存故障排除 翻译自:https://blogs.msdn.microsoft.com/karthick_pk/2012/06/15/troubleshooting-sql-se...
    99+
    2022-10-18
  • SQL Server内存机制详解
    1.前言 对于数据库引擎来说,内存是一个性能提升的重要解决手段。把数据缓存起来,可以避免在查询或更新数据时花费多余的时间,而这时间通常是从磁盘获取数据时用来等待磁盘寻址的。把执行计划...
    99+
    2022-11-13
  • SQL Server 2012自动标识列值跳转问题
    在SQL Server 2012版本中,当重新启动SQL Server实例时,表的身份值将被跳转,而实际跳转的值取决于身份列数据类型。 如果是整数(int)数据类型,则跳转值为1000;如果为大整数(bigint),则跳转...
    99+
    2015-10-05
    SQL Server 2012自动标识列值跳转问题
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作