首页 > 数据库 >SQL Server 内存占用较高 - 清除缓存 或 设置内存最大占用值

SQL Server 内存占用较高 - 清除缓存 或 设置内存最大占用值

时间:2023-08-02 13:22:05浏览次数:28  
标签:缓存 占用 Server 内存 Sql DBCC

SQL Server对服务器内存的使用策略是用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高
查看内存状态:

DBCC MemoryStatus

image
这些内存一般都是Sql Server运行时候用作缓存的:

  • 数据缓存:执行查询语句,Sql Server会将相关的数据内容(Sql Server操作的数据都是以页为单位的,在SQL Server中页的大小始终是8kb的大小,页有不同的类型:数据页,索引页,系统页等等)加载到内存中进行缓存,以便于再次请求此页的数据的时候,直接从内存返回,大大提高了提取效率。

  • 执行命令缓存:在执行存储过程,自定函数时,Sql Server需要先二进制编译再运行,编译后的结果也会缓存起来,再次调用时就无需再次编译。

临时清除缓存

其它DBCC管理命令

DBCC FREEPROCCACHE --清除存储过程相关的缓存
DBCC REESESSIONCACHE --清除会话缓存
DBCC FREESYSTEMCACHE('All') --清除系统缓存
DBCC DROPCLEANBUFFERS --清除所有缓存

以上命令虽然会清除掉现有缓存,为新的缓存腾出空间,但是Sql server并不会因此释放掉已经占用的内存。Sql Server并没有提供任何命令允许我们释放不用到的内存。因此我们只能通过动态调整Sql Server可用的物理内存设置来强迫它释放内存。

按以上步骤,设置sql占用内存的上限,就会让sql server在内存上限范围内,主动清除脏数据替换成热数据,无休止占用内在

限制内存最大占有值

限制Sql Server可用的物理内存设置步骤:

  • 设置内存最大占有值,如:4096
    image
  • 重新服务
    image

标签:缓存,占用,Server,内存,Sql,DBCC
From: https://www.cnblogs.com/vipsoft/p/17598169.html

相关文章

  • SQL Server导出存储过程
    sqlserver批量导出视图selecttextfromsyscommentss1joinsysobjectss2ons1.id=s2.idwherextype='V'sqlserver批量导出存储过程selecttextfromsyscommentss1joinsysobjectss2ons1.id=s2.idwherextype='P'sqlserver批量导出函数selecttex......
  • 使用轻量级 CDC debezium-server-databend 构建实时数据同步
    作者:韩山杰DatabendCloud研发工程师https://github.com/hantmacDebeziumServerDatabend是一个基于DebeziumEngine自研的轻量级CDC项目,用于实时捕获数据库更改并将其作为事件流传递最终将数据写入目标数据库Databend。它提供了一种简单的方式来监视和捕获关系型数......
  • 【八股文 02】C++ 进程内存布局及其相关知识
    1引言本文环境为Linux操作系统(x86)+C++。目的是了解进程内存布局,但是在了解的过程中发现需要前置一些知识,因此内容概览如下所示:1C/C++程序从源代码到可执行程序的构建过程1.1预处理,也叫预编译1.2编译1.3汇编1.4链接2各平台文件格式3ELF文件3.1ELF文......
  • SQL语句——“制杖”SQLServer
    时间函数:DATEPART([YEAR],date)//获取时间的年DATEPART([MONTH],date)//获取月CONVERT([TIME],date)//获取时间hh:mm:ssWHEN语句:CASEtableFieldWHENvalueTHENother_tableFieldELSEtableFieldEND//可接多个WH......
  • C++内存管理基础
    在c语言中内存管理函数为malloc和free,而在c++中内存管理的函数则是new和delete。首先来看new和delete对于申请的内置类型的空间是如何处理的内置类型的处理申请连续的多个空间voidtest1(){ int*ret=(int*)malloc(sizeof(int)*10); int*rett=newint[10];//和malloc一......
  • 初学C语言day07--指针与堆内存
    什么是指针:指针是一种特殊的数据类型,使用它可以定义指针变量,指针变量中存储的是整形数据,该整型数据代表了内存的编号(地址),可以通过这个编号访问对应的内存为什么要使用指针:1、函数之间是相互独立的,但是有时候需要共享变量传参是单向值传递全局变量可以共享,但是容易命名冲突......
  • Windows server 2012 服务器允许多用户同时远程桌面的设置
    错误表现如下方法1.在运行里面(Windows+R)或者右击开始菜单,选择运行,输入“gpedit.msc”命令2.计算机组策略”依次打开计算机配置-->管理模板--->windows组件--->远程桌面服务--->远程桌面会话主机--->连接3.在连接里面找到“限制连接的数量”双击,显示如图,选中“已启用”and我设置......
  • Could not find server 'server name' in sys.servers. SQL Server 2014
    Couldnotfindserver'servername'insys.servers.SQLServer2014  Atfirstcheckoutthatyourlinkedserverisinthelistbythisqueryselectnamefromsys.serversIfitnotexiststhentrytoaddtothelinkedserverEXECsp_addl......
  • 使用VS开发人员工具观察类在内存中的布局
    1.先要生成相应文件2.打开VS2019开发人员工具3.cd至文件目录4.输入cl/d1reportSingleClassLayoutanimaldemo.cpp其中reportSingleClassLayoutanimalLayout后面的animal为我们想要查看的类名,demo.cpp是其所在的源文件......
  • Windows 7 & Windows Server 2008 R2 简体中文版下载 (updated Jul 2023)
    Windows7&WindowsServer2008R2简体中文版下载(updatedJul2023)Windows7&WindowsServer2008R2(2023年7月更新)请访问原文链接:https://sysin.org/blog/windows-7/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgWindows7&WindowsServer2008R......