Sqlserver内存管理:限制最大占用内存

一、Sqlserver对系统内存的管理原则是:按需分配,且贪婪(用完不还)。它不会自动释放内存,因此执行结果集大的sql语句时,数据取出后,会一直占用内存,直到占满机器内存(并不会撑满,还是有个最大限制,比机器内存稍小),在重启服务前,sqlserver不会释放该内存,也没有任何办法可人为释放。以下命令虽然可释放缓存,但sqlserver并不会因此释放已占用的内存。

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

二、唯一的办法是:人为修改最大可占用物理内存进行限制。

三、修改办法如下:

管理员用户登录数据库客户端(Microsoft SQL Server Management Studio),在实例名(树形菜单根节点,显示登录名那栏)上右键,选择属性-->内存,设置“最大服务器内存”,单位为MB,可根据实际内存调整。

四、如此调整后,机器内存便不会被sqlserver耗尽了。

 

扩展:(转自网络)

由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存。所以很多时候,我们会发现运行Sql Server的系统内存往往居高不下。这些内存一般都是Sql Server运行时候用作缓存的,例如你运行一个select语句,那么Sql Server会将相关的数据页(Sql Server操作的数据都是以页为单位的)加载到内存中来,下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。这类的缓存叫做数据缓存。还有一些其他类型的缓存,如执行存储过程时,Sql Server需要先编译再运行,编译后的结果也会缓存起来,下一次就无需再次编译了。

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQLServer安全及性能优化 修补漏洞 安装程序补丁修补漏洞 随时关注微软官方网站补丁升级 关闭不必要的端口 关闭联必要的服务 数据库引擎 SQL Server Analysis Services SQL Server Reporting Services SQL Server Integration Services SQL Server 代理 SQL Full-text Filter Daemon launcher SQL Server Browser 同时开启所有服务系统性能会变得很差,根据需要手动启动或者禁用某个服务 DTC: Distributed Transaction Coordinator(分布式事务处理协调器),用于协调多个数据库、消息队列、文件系统等等资源管理器的事务,由于内部开发中并不使用这个功能,远程数据库服务器上也并不经常使用,因此建议关闭这个服务 禁用不使用的协议 Shared Memory 默认为已启用状态,这个协议只能用于本地连接,不能用于远程连接,一般用于其它协议出问题的时候管理作诊断使用 TCP/IP 禁用不需要使用的协议,减少网络攻击对象 减少监听的网卡和IP地址 改变监听端口号 安全地设置账户 Windows身份验证[微软推荐的方式] 优势: 1.访问SqlServer时速度更快,不用输入用户名和密码 2.可以利用Windows系统的自身工具和安全策略管理账户 3.安全确认和口令加密、审核、口令失效、最小口令长度和账号锁定 SqlServer身份验证 1.将sa账户名更改为其它账户名比如nocial,防止黑客利用sa进行攻击 2.删除不使用的账户 3.对已有账户设置安全密码[强制密码规则] 4.限制登录->远程登录、匿名登录 5.限制用户角色和权限,一般将权限设置到最低。设置角色的时候不要为public角色授予任何权限,并且从sysadmin这个角色中删除windows的administrators组,提高系统安全性。 删除不必要的数据库对象 删除危险的存储过程 xp_cmdshell:执行操作系统命令,这是一个系统后门[可以移动文件位置、创建用户、提升用户权限],建议不需要则删除掉。 ole自动化存储过程 任务管理存储过程 强化文件和目录安全 数据库最终以文件的形式存储在文件系统中 使用NTFS设置权限 限制共享【不能设置为完全控制】 及时审核日志 sqlserver的审核机制可以帮助跟踪并且阻止系统中没有授权的用户他的行为。比如没有授权的用户登录系统会阻止这次登录,并且把这次操作给记录下来。审核机制既能跟踪失败记录也能跟踪成功记录。所有的数据库平台均在不同程度上提供了审查功能。 跟踪用户行为 保护数据库 数据库性能优化 数据库的性能优化主要有两个方面:减少查询比较次数、减少资源的征用。 使用工具Sql Server Profiler优化数据库的性能,减少资源的征用 SqlServer Profiler的功能 Sql Server Profiler的用法  定义跟踪  登录连接、失败和断开  Select、Insert、Update和Delete语句  SQL批处理的开始或结束  写入到Sql server错误日志的错误  安全权限检查  Profiler执行的事件 让Profiler监视我们感兴趣的事件,可以监视的事件太多,监视太多会大大降低性能和增大表数据,只监视与数据库的性能密切相关的哪些事件。常见的感兴趣的事件:  执行查询的性能  单个用户或应用程序的活动  逻辑磁盘的读写  语句级别上的CPU占用  Standart模板的事件类 优化数据库性能可以从五个层次来进行:  优先级一:减少数据的访问【减少磁盘访问】  优先级二:返回更少数据【减少网络传输或磁盘访问】  优先级三:减少交互次数【减少网络传输或磁盘访问】  优先级四:减少开销【减少CPU及内存开销】  优先级五:利用更多资源【增加资源】 技术上从四个方面来解决性能优化问题 1、调整数据库结构设计 2、调整应用程序结构设计 3、调整数据库SQL语句 4、调整服务器内存分配 如果不熟悉sqlserver可以使用数据库引擎优化顾问来对数据库提出优化建议,然后通过系统管理的修改达到目的。 数据库引擎优化顾问  数据库引擎优化顾问介绍  分析一个或多个数据库的工作负荷和物理实现,工作负荷可以是优化的sql语句或者sqlserver profiler的跟踪文件和数据表。我们可以在运行引擎优化顾问前运用sqlserver profiler记录一些事件,然后将跟踪结果存储为文件或者数据表,然后把这些提供给数据库引擎优化顾问,让它去分析。  提出合理的物理设计结构,物理设计结构包括数据库中的索引、索引视图、非聚集索引、聚集索引视图等等。对工作负荷进行分析后,数据库优化顾问会建议添加删除修改数据库的物理设计结构。推荐一组合理的物理结构以降低工作负荷的开销。从而提高数据库的性能 数据库性能优化的常见问题 如何发现问题,如何分析导致性能降低的原因仍然是数据库管理员要掌握的知识。 事务占用资源的时间过长,造成阻塞 许多用户同时访问数据库的时候会产生大量事务,许多用户同时竞争一个资源导致占用资源的时间过长,造成阻塞。从而降低了数据库执行效率。产生这样的现象的原因如下: 1、多表连接查询,查询期间占用多个表 2、事务需要占用太多资源,容易出现多个事务占用对方资源的状况。从而导致死锁 解决之道: 1、避免多表连接查询,联合过多的表会在查询中占用过多的资源。很容易因为别的事务占用资源而相互等待。 2、使用统一的SQL语句规范,特别是访问表的顺序要保持一致,这样可以避免互相占用资源而导致的死锁。 不合理的数据文件设置,影响事务处理的性能 当事务处理产生大量数据的时候,数据文件的大小如果设置不合理将导致数据文件的不断扩展,这也会影响到事务处理的性能,进而影响到整个数据库的性能。 1、频繁操作数据库,导致日志文件增长的过快,因为日志文件记录数据库的原始操作。所以它的增长速度比数据文件要快得多。当日志文件的增长大小设置不合理的时候会导致频繁地扩展文件。从而影响性能 2、查询操作比较频繁,系统数据Tempdb的大小设置不合理。 查询操作比较频繁的时候系统数据Tempdb增长得会比较快,因为查询所产生的临时数据都存放在这个数据库上。如果Tempdb过小当查询数据量较大的时候Tempdb会自动扩展,如果遇到频繁的查询会导致Tempdb不断扩展,从而影响系统性能。这种情况我尽可能地使查询的返回结果比较小 3、大量插入数据,导致数据文件增长过快。不要设置数据文件的自动收缩,它会在忙碌的系统上导致不必要的性能开销。所以如果没有特别需要不要设置数据库的自动收缩。最好采用手动收缩。 磁盘数据组织不合理,导致磁盘的访问次数过多 数据库的磁盘访问都是按照页来访问数据的,无论访问的数据再少都是以页为单位读取,1页为8K。所以如果将经常访问的数据放在一起,数据库读取尽量少的页面就能够完成读取操作。这样效率自然就提高了。也减少了磁盘头的来回移动。否则会多次读取硬盘页面导致访问的效率降低。 对于表A和表B、表C、表D,如果经常查询表A和表B中的数据,那么可以将他们放在同一个文件组M中;如果经常访问表C和表D中的数据可以将他们放在同一个文件组N中。这样读取效率就比较高,因为一次读取就可能包含了两个表中的数据,因此提高了查询效率。要解决“磁盘数据组织不合理,导致磁盘的访问次数过多”这个问题,我们可以将经常读写的数据放置在不同的磁盘上,也就是将经常在一起被多表连接查询的表放在同一个文件组上。这里强调:这里反复提到的“不同的磁盘”指的的是不同的磁盘,而不是同一个硬盘的不同分区。 批量导入数据的时候,要进行特殊设置 当用户需要大批量导入数据的时候会突然增加很多日志记录,并且如果数据表上有索引,数据表每增加一条记录就会在索引上增加一条数据从而降低插入的性能。解决方案: 1、大批量导入数据的时候设置数据库的恢复模式为“大容量日志恢复模式” 2、导入前禁用索引,导入完毕后重建索引。
华盾服务器管理专家是一款服务器日常维护管理软件,集华盾独创的“WEB一站式管理”、用户权限管理、信息管理管理、性能管理管理、网站安全管理、主机维护管理、网站备案管理、网站维护管理、网络防火墙管理、系统服务防护、系统组件防护等强大功能于一身,真正为每一位用户提供全方位的服务器系统安全防护管理,“让天下不再有难管的服务器”。 如何把服务器管理好?这是个困扰站长、网管技术、IDC运营商们的问题。为了使服务器提供某种服务需要各种繁杂的配置;为了使得服务器安全不被入侵就得进行方方面面的安全设置、打补丁、安装各种安全软件;为了使得服务器能提供更快的服务,就得需要对性能进行各方面的调整;为了清除服务器上的非法信息、色情内容、清除各种垃圾广告,更是需要大量的精力去检查。 华盾的技术团队深刻的体验到管理服务器的困难,所以一开始,就希望能提供这么一个软件,能把管理服务器中的种种问题,通过软件来减轻服务器管理人员的负担,让管理变得轻松起来。而这就是《华盾服务器管理专家》被开发出来的原因。 《华盾服务器管理专家》从没停止过成长的脚步,虽然它目前已经有了很多强大的功能,但是我们的目标还远远不止这点,我们还会有更强大、更方便、更实用的功能陆续推出。我们希望您能与我们一起见证《华盾服务器管理专家》的成长之路,我们希望在这个过程中您能给我们提供使用中的感受、建议,问题反馈。对这个产品的任何不满之处,我们一样非常感谢您能告诉我们。《华盾服务器管理专家》的成长也有着您的一份功劳,深深感谢每一个用户。   特点:   多平台支持   支持Windows与Linux系统,支持64位操作系统;常用的windowsNT4、windows2000,、windows2003、 windows2008、Redhat9、Ubuntu、Redhat AS4/AS5等操作系统一网打尽全部完美支持。支持IIS5、IIS6、IIS7、Apache1.3、Apache2.0、Apache2.2等 Web服务软件。   功能强大   非法信息管理、服务器性能管理、网站安全、主机维护、备案管理,网站管理等等强大功能集成一处,服务器管理变得轻轻松松。CPU、内存、流量一目了然;站点的流量、连接数、站点CPU、进程池CPU全部可以查看;防盗链、防SQL注入、防网页木马、文件限制等安全功能全都有;强制广告通知下发、备案管理、非法信息检测,网站管理起来终于变得方便;硬盘占用、在线重启IIS、在线重启服务器、进程查看、网络连接查看、系统服务查看、端口管理、启动项查看、远程桌面管理...功能如此之多以致不能一一列出。   安装简单便捷   不需要复杂的手工配置,不需要额外安装框架补丁,轻松运行安装程序,按提示点击“下一步”即可完成安装。   Web配置方式   不需要登陆到服务器,在任何地方只需要打开浏览器连上网络,即可在线进行web管理与配置。   独有的WEB脚本引擎   我们在设计时以安全性考虑为先,后台配置页面没有采用php,asp等可能会被黑客利用的web脚本引擎,而是全新自行研制了一套非公开的WEB脚本解析引擎,实现了html页面动态服务技术。保证了后台页面管理的安全性。   多关键词技术   在非法信息管理中,首家采用多关键词技术,极大的提高了非法信息的发现命中率,与减低了误伤率。   强大的用户管理   可以添加、删除管理者用户,为不同用户授与不同权限,精确到具体的后台每一个页面。   资源占用少   经我们测试,在大压力环境下,信息管理模块占用1%的CPU资源,如果启用性能优化选项,甚至可以做到0的CPU占用。除了信息管理模块,其他功能只有在用户登陆到系统后台进行操作时才会占很小量的web请求的资源使用量,平时是0的CPU占用内存占用在10M以下。   独立的数据库引擎   为了减少依赖性,我们的系统不需要额外的数据库支持。不需要SQL Server、Oracle、MySQL等数据库。使得您配置起来格外的轻便灵活,同时也减少了系统负担。
1.引言 1.1编写目的 在编写“影碟出租系统”软件之前,对同类型产品的市场进行了前期调查,与多位软件设计者进行了探讨和分析之后,之后软件项目小组向系统分析人员与软件设计人员提出了这份需求规格说明书。该需求规格说明书对影碟出租系统软件进行了全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面。该需求规格说明书供概要设计人员阅读。 1.2项目背景 本项目名称为“影碟出租系统“系统主要功能包括: 1、出租、归还碟片信息的统计:客户编号、碟片编号、出租日期、归还日期、延期天数、出租款 2、客户信息查询:客户编号、客户姓名、身份证号、地区、邮政编码、客户地址、联系方式、租碟次数、延期次数 3、碟片信息查询:碟片编号、碟片名、碟片类型、导演、主演、碟片描述、碟片总数、库存碟片数、价格 4、客户及碟片的添加或删除 1.3定义 以下对VRS、 SQL Server、 C++分别定义如下: VRS:Videodisc rental system,影碟出租系统 SQL Server:所用的数据库管理系统 C++:所用的开发工具 1.4参考文献 (1)陈明.软件工程实用教程。北京:电子工业出版社,2006年1月 (2)易荣华。管理信息系统 (3)钟雁.管理信息系统开发 2 任务概述 2.1目标 “影碟出租系统”针对的用户是个人,所藏的影碟的种类和数量较少,租借者的数量和来源受到一定的限制。相应的需求有如下方面。 1. 能够存储一定数量的影碟信息,并方便有效地进行相应的影碟数据操作和管理,这主要包括以下内容。 (1) 影碟信息的录入、删除和修改 (2) 影碟信息的多关键字检索查询 (3) 图书的借出、返还和资料统计 2. 能够对一定数量的租借者进行相应的信息存储与管理,这其中包括以下内容。 (1) 租借者的信息的登记、删除和修改 (2) 租借者资料的统计与查询 3. 能够对需要的统计结果提供打印输出 4. 能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。 2.2 运行环境 Intel486以上系列、AMD K6以上系列等PC台式机和便携式计算机。 运行时占用内存:<1MB 所需硬盘时间:<6MB 软件平台:中文Windows95/98/NT4.0或更高版本。 2.3条件与限制 由于时间比较短,使用计算机不方便以及对于网络编程不熟悉,因此本影碟管理系统并没有提供数据的远程访问功能。对信息的保护手段仅限与设置用户级别,以及提供数据文件的备份,比较简单,安全性能有待进一步完善。 3.数据描述 3.1静态数据 影碟管理系统的静态数据包括以下内容。 影碟:碟片编号、碟片名、碟片类型、导演、主演、碟片描述、状态(表示是否已经借出)、价格。 管理员:口令,姓名。 租借者:租借者编号、租借者姓名、身份证号、邮政编码、客户地址、联系方式 影碟访问记录:影碟编号、租借者编号,租借影碟日期 3.2影碟租借管理系统的ER图如下:
根据引用\[1\]和引用\[2\]的描述,SqlServer占用内存的情况可能与最大服务器内存的设置有关。根据作者的测试和理解,他们发现将最大服务器内存设小了反而使得SqlServer使用内存上限下降了。这表明最大服务器内存和最小服务器内存的设定并不是线性关系。根据引用\[3\]的描述,SqlServer对系统内存的管理原则是按需分配且贪婪,它不会自动释放内存,即使执行结果集大的sql语句后,数据已经取出,内存仍然会被占用直到占满机器内存。在重启服务之前,SqlServer不会释放该内存。因此,可能导致SqlServer占用内存的原因是内存机制和内存溢出。为了解决这个问题,可以尝试配置内存,根据实际情况调整最大服务器内存的设置。 #### 引用[.reference_title] - *1* *2* [SQLSERVER数据库内存占用高的解决方法](https://blog.csdn.net/dirful/article/details/121077629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Sqlserver进程内存占用很小,但是内存占用很大(限制最大内存)](https://blog.csdn.net/qq_34915141/article/details/128466006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东东不邪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值