iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >30秒,2种方法解决SQL Server的内存管理问题
  • 829
分享到

30秒,2种方法解决SQL Server的内存管理问题

30秒,2种方法解决SQLServer的内存管理问题 2018-10-29 20:10:57 829人浏览 绘本
摘要

今天和大家聊一聊SQL Server的内存管理,说之前我们需要先提出一个问题,SQL Server到底是如何使用内存的?弄清楚如何使用之后,才能谈如何管理。 简单说,SQL Server 数据库的内存使用原则是有多少内存就会占用多少内存,

30秒,2种方法解决SQL Server的内存管理问题

今天和大家聊一聊SQL Server的内存管理,说之前我们需要先提出一个问题,SQL Server到底是如何使用内存的?弄清楚如何使用之后,才能谈如何管理。

简单说,SQL Server 数据库的内存使用原则是有多少内存就会占用多少内存,不会自动释放内存。原因是它的存储引擎本身是一个windows下的进程,所以在使用内存时和其它Windows进程是一样的,都要向Windows申请内存,申请到内存之后,sql Server的内存使用可以粗略地分为两个部分:一是缓冲池内存,被数据页和空闲页占用;二是非缓冲内存,被线程、DLL、链接服务器等占用。其中缓冲池内存占大头。

这样会有什么问题呢?打个比方,如在执行一条结果集很大的 sql 时,数据查询取出后,会一直占用内存,直到机器内存被占满(并不会撑爆,因为可以通过图去限制最大内存,一般占满后仍然比服务器机器内存稍小),在重启数据库服务前,SQL Server不会主动释放该内存,也没有任何办法可人为释放,一直占用到 max server memory 的设定值,因此查看 SQL Server的内存基本使用率相对较高(80%以上)。

那怎么解决呢?最直接的办法是:人为修改最大可占用物理内存进行限制。

方法一:

缓冲池所占内存是通过下图1最大服务器内存和最小服务器内存来设置的,因此sqlservr.exe所占的内存(如图2)有可能会大于图1中所设置的最大内存。管理员用户登录数据库客户端(Microsoft SQL Server Management Studio),在实例名(树形菜单根节点,显示登录名那栏)上右键,选择属性-->内存,设置“最大服务器内存”即可根据实际情况调整内存(单位为MB),如调整到当前总的服务器内存的 70%左右使用率。

图1 SQL Server可控制内存选项

图2 SQL Server 进程内存使用情况

方法二:

如果使用的是华为云RDS SQL Server ,那解决方法就更加简单了,只需要到控制台实例管理中修改最大内存(max server memory)参数值即可,且修改完该参数不需要重启数据库,不得不说云数据库使用起来更加便捷清晰,更多华为云RDS SQL Server的使用可参考 官方文档:https://support.huaweicloud.com/rds/index.html

 

点击关注,第一时间了解华为云新鲜技术~

您可能感兴趣的文档:

--结束END--

本文标题: 30秒,2种方法解决SQL Server的内存管理问题

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

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

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

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

下载Word文档
猜你喜欢
  • C#中常见的内存管理问题及解决方法
    C#中常见的内存管理问题及解决方法,需要具体代码示例在C#开发中,内存管理是一个重要的问题,不正确的内存管理可能会导致内存泄漏和性能问题。本文将向读者介绍C#中常见的内存管理问题,并提供解决方法,并给出具体的代码示例。希望能帮助读者更好地理...
    99+
    2023-10-22
    内存泄漏 垃圾回收 资源释放
  • C++中常见的内存管理问题解决方案
    C++中常见的内存管理问题解决方案引言:内存管理是开发过程中的重要问题之一。在C++中,程序员需要负责分配和释放内存,以确保程序的稳定性和性能。然而,由于C++没有垃圾回收机制,内存管理问题常常成为程序员头疼的问题。本文将介绍C++中常见的...
    99+
    2023-10-22
    内存泄漏 垃圾回收 智能指针
  • C++技术开发中的内存管理问题及解决方法
    C++技术开发中的内存管理问题及解决方法在C++开发中,内存管理是一个关键的问题。不正确的内存管理可能导致内存泄漏、野指针访问、内存溢出等严重的后果。本文将探讨一些常见的内存管理问题,并提供相应的解决方法和示例代码。内存泄漏内存泄漏指的是程...
    99+
    2023-10-22
    内存泄漏 内存分配 智能指针
  • C++中常见的内存管理问题的解决方案
    C++中常见的内存管理问题的解决方案引言:在C++语言中,内存管理是一个非常重要且常见的问题。由于C++没有自动内存管理机制,开发者需要负责手动分配和释放内存。然而,这往往容易引发内存泄漏、内存溢出和野指针等问题。本文将介绍一些常见的内存管...
    99+
    2023-10-22
    C++ 解决方案 内存管理
  • SQL Server评估期已过问题的解决方法
    这篇文章将为大家详细讲解有关SQL Server评估期已过问题的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。但是,当自己打开之前敲的系统时,总是报...
    99+
    2024-04-02
  • SQL Server的IP不能连接问题的解决方法
    这篇文章将为大家详细讲解有关SQL Server的IP不能连接问题的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。自己电脑上安装的SQLServer...
    99+
    2024-04-02
  • Python开发中遇到的内存管理问题及解决方案
    Python开发中遇到的内存管理问题及解决方案摘要:在Python开发过程中,内存管理是一个重要的问题。本文将讨论一些常见的内存管理问题,并介绍相应的解决方案,包括引用计数、垃圾回收机制、内存分配、内存泄漏等。并提供了具体的代码示例来帮助读...
    99+
    2023-10-22
    内存泄漏 垃圾回收 内存优化
  • 如何解决Go语言中的内存管理问题?
    如何解决Go语言中的内存管理问题?在Go语言中,内存管理是一个重要的话题。由于Go语言自带的垃圾回收器(Garbage Collector)的存在,开发者不需要手动管理内存分配和释放,但这并不意味着我们可以完全忽视内存管理的问题。不合理的内...
    99+
    2023-10-22
    解决方案 Go语言 内存管理
  • Vue Token过期问题的2种解决方案小结
    对于token过期,我们有两种方案: 方案一:当我们操作某个需要token作为请求头的接口时,返回的数据错误error.response.status === 401,说明我们的to...
    99+
    2023-02-18
    vue token过期处理 vue token过期 vue token
  • Sql server一些常见性能问题的解决方法有哪些
    本篇内容主要讲解“Sql server一些常见性能问题的解决方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Sql server一些常见性能问题的解决方...
    99+
    2024-04-02
  • WinXP下ekrn.exe内存占用100%问题解决方法
      不少用户安装完WinXP系统后,总是发现进程里有个程序ekrn.exe,经常都会占用率100%,ekrn.exe是东西呢其实它是诺顿杀毒软件中的一个反病毒相关程序,很多WinXP正版光碟都是自带安装了诺顿杀毒软件,因...
    99+
    2023-06-12
    WinXP ekrn 内存 解决 ekrn.exe 问题 方法
  • SQL Server Reporting Services 匿名登录的问题及解决方案
    每次访问报表都需要windows验证,这样的报表给客户确实很说不过去. SSRS 可以匿名登录的设定步骤: 环境:   开发工具:SQL Server Business Intel...
    99+
    2024-04-02
  • SQL Server 2017无法连接到服务器的问题解决
    目录方法一方法二方法三方法四方法五安装了几次数据库,也由于后续自己手残修改过电脑IP 端口 甚至主机名称等等而导致出现Sql sever无法连接错误,此笔记记录这次沉重的历史,以备不...
    99+
    2024-04-02
  • SQL Server数据库安装时常见问题以及解决方法
    这期内容当中小编将会给大家带来有关SQL Server数据库安装时常见问题以及解决方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。常见问题一:安装Sql Server ...
    99+
    2024-04-02
  • mmc无法创建管理单元问题的解决方法
    这篇文章主要介绍“mmc无法创建管理单元问题的解决方法”,在日常操作中,相信很多人在mmc无法创建管理单元问题的解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mmc无法创建管理单元问题的解决方法”的疑...
    99+
    2023-06-14
  • c#非托管内存的释放问题如何解决
    这篇“c#非托管内存的释放问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“c#非托管内存的释放问题如何解决”文章吧...
    99+
    2023-07-05
  • SQL Server代理服务无法启动的解决方法
    这篇文章给大家分享的是有关SQL Server代理服务无法启动的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SQL Server代理服务无法启动问题的确很让我们头疼,下...
    99+
    2024-04-02
  • 无法安装SQL Server 2008 Management Studio Express的问题怎么解决
    本篇内容介绍了“无法安装SQL Server 2008 Management Studio Express的问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家...
    99+
    2024-04-02
  • C++中常见的内存管理问题的详细解析
    C++是一种强大的编程语言,但同时也是一种需要仔细处理内存管理的语言。在使用C++编写程序时,经常会遇到内存管理问题。本文将详细解析C++中常见的内存管理问题,并提供具体的代码示例,帮助读者理解和解决这些问题。一、内存泄漏(Memory L...
    99+
    2023-10-22
    内存泄露 缓冲区溢出 野指针
  • Java中的内存泄露问题和解决办法
    目录为什么会产生内存泄漏?内存泄漏对程序的影响?如何检查和分析内存泄漏?常见的内存泄漏及解决方法1、单例造成的内存泄漏2、非静态内部类创建静态实例造成的内存泄漏【已无】3、Handl...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作