SQL Server在查询执行后不释放内存

2024-05-03

我想我在这里有一个很多人可能遇到过的基本问题。当我在 SQL Server 中运行查询时,它将在内存中加载查询执行所需的所有数据(例如,如果存在联接,那么它将从这两个表加载必要的数据),但是当查询完成执行内存时SQL Server 消耗的数据不会被释放。

我注意到这一点是因为几天前我正在分析一个占用大量资源的查询tempdb空间。当我运行查询时,它(在执行结束时)会消耗高达 25 GB 的 RAM。除非我重新启动,否则这 25 GB RAM 不会被释放MSSQLSERVER服务。

你们是如何进行 SQL Server 内存管理的?这显然是一个问题吧?

我还想听听您是否执行某些特定操作来清除单个查询占用的内存。

提前致谢!


SQL Server 确实被设计为请求尽可能多的 RAM,除非操作系统明确需要这些内存,否则不会释放这些 RAM。我认为最好的方法是限制服务器可以使用的 RAM 量,这将允许操作系统无论如何都可以使用一定数量的资源。要设置此如何使用 SQL Server Management Studio 配置内存选项 http://msdn.microsoft.com/en-us/library/ms178067.aspx:

使用两个服务器内存选项,最小服务器内存 and 最大服务器内存,重新配置 SQL Server 内存管理器为 SQL Server 实例管理的内存量(以兆字节为单位)。

  1. 在对象资源管理器中,右键单击服务器并选择特性.
  2. 点击Memory node.
  3. Under 服务器内存选项,输入您想要的金额最小服务器内存 and 最大服务器内存.

您还可以使用以下命令在 T-SQL 中执行此操作(示例):

exec sp_configure 'max server memory', 1024
reconfigure

将消耗限制在 1GB。

注意:上述内容不会将 SQL Server 的所有方面限制为该内存量。这只控制缓冲池和执行计划缓存。 CLR、全文、SQL Server .exe 文件使用的实际内存、SQL 代理、扩展存储过程等不受此设置控制。然而,这些其他东西通常不需要那么多内存,缓冲池和执行计划缓存需要大量内存。

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server在查询执行后不释放内存 的相关文章

  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • IIF(...) 不是公认的内置函数

    我正在尝试在 Microsoft SQL Server 2008 R2 中使用它 SET SomeVar SomeOtherVar IIF SomeBool value when true value when false 但我收到一个错误
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • 在同一查询中选择 Count of ip 和 Count of DISTINCT ip

    我有一个这样的表结构 TABLE NAME counter id datetime url ip 1 2013 04 12 13 27 09 url1 ip01 2 2013 04 13 10 55 43 url2 ip02 3 2013
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • ORA-12728: 正则表达式中的范围无效

    我想检查表中是否插入了有效的电话号码 所以我的触发代码在这里 select start index into mob index from gmarg mobile operators where START INDEX substr ne
  • C++ new int[0]——它会分配内存吗?

    一个简单的测试应用程序 cout lt lt new int 0 lt lt endl outputs 0x876c0b8 所以看起来确实有效 标准对此有何规定 分配 空内存块总是合法的吗 从5 3 4 7 当直接新声明符中的表达式的值为零
  • 通过 C# SqlCommand 执行合并语句不起作用

    我正在第一次尝试使用临时表和MERGE语句通过更新 SQL 表SqlCommandC 中的对象 我正在开发的程序旨在首先将大量记录 最多 20k 导出到 Excel 电子表格中 然后 用户可以搜索并替换特定值 并根据需要更新任意多记录中的任
  • 可以有一个带有可变列的表吗?

    这可能是一个愚蠢的问题 但这里是 是否可以创建一个能够包含具有可变列数和自定义列名称的行的动态表 我浏览过 EAV 建模 但看起来很沉重 现实生活中的例子可能是这样的 假设我有一个客户登记册 但每个客户可能需要输入不同的信息 根据您要输入的
  • 无法与重定向器建立连接。确保“sql browser”服务正在运行

    所以我尝试这个 sql server 2012 由于这个错误我无法打开任何 ssis 包 无法与重定向器建立连接 确保 sql browser 服务正在运行 我的 Sql 浏览器肯定正在运行 我尝试在本地服务 本地系统和网络下更改它 仍然没
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con
  • 是否可以从子查询中获取多个值?

    有没有办法让子查询在oracle db中返回多列 我知道这个特定的sql会导致错误 但它很好地总结了我想要的 select a x select b y b z from b where b v a v from a 我想要这样的结果 a
  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 总和和不同不会改变结果?

    我是一个新手 试图在这里解决这个问题 到目前为止还没有运气 非常感谢任何帮助 Select Distinct AB agency no ab branch no AS AGENCY BRANCH count AB agency no ab
  • mysql 不带空字符串和 NULL 的不同值

    如何检索没有空字符串值和NULL值的mysql不同值 SELECT DISTINCT CON EMAILADDRESS AS E MAIL FROM STUDENT INNER JOIN CONTACT CON ON STUDENT CON
  • MySQL NOT IN 来自同一个表中的另一列

    我想运行 mysql 查询来选择表中的所有行films其中的值title该列不存在于另一列的所有值中的任何位置 collection 这是我的表格的简化版本 其中包含内容 mysql gt select from films id titl
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • CONTAINS 不适用于 Oracle Text

    我在执行此查询时遇到问题 SELECT FROM gob attachment WHERE CONTAINS gob a document java gt 0 它给了我 ORA 29902 error in executing ODCIIn
  • Oracle REGEXP_INSTR() 和“a-z”字符范围与预期不匹配

    我想用REGEXP INSTR 在 oracle 数据库中检查小写 大写字符 我知道 upper and lower POSIX 字符类 但我选择了a z这给了我非常奇怪的结果 我不明白 有人可以解释一下吗 SELECT REGEXP IN

随机推荐

  • 如何将查询设置为未提交读取?

    使用hibernate 如何将查询设置为未提交读取 我不希望这是一个全局设置 只想在每个查询的基础上进行设置 将 Spring 与 Hibernate 结合使用 可以让 Spring 通过注释控制事务 即 spring applicatio
  • matplotlib 共享 x 轴,但不显示两者的 x 轴刻度标签,仅显示一个

    我正在使用 python matplotlib 并且我有两个图共享一个轴 如果您尝试设置graph1 set xticklabels 共享轴时 它没有任何效果 因为它是共享的 有没有一种方法可以共享轴并能够隐藏一个图的 x 轴 这是使用共享
  • 使用 htaccess 文件删除子域的 www

    我有许多特定于子域 的网站 http sub domain com http sub domain com http apple domain com http apple domain com etc 用户偶尔会抱怨该网站无法运行 然后我
  • JS:使用 date-fns 解析时间以提取小时和分钟,忽略时区

    我的后端向我发送以下格式的时间戳 2019 12 15T20 00 00 000Z这是 UTC 时间 现在我需要的就是提取时间而不修改时区 我在用date fns但每次我试图争取时间时 我要么得到一个Invalid Date或者将时间修改为
  • CE 设备读取注册表的哪个分支?

    我的 Windows CE Motorola Symbol 手持设备在 HKEY CURRENT USER 和 HKEY LOCAL MACHINE 下都有名为 Software Microsoft Windows CE Services
  • 如何在 swift 中使用套接字(连接、发送和获取消息)

    我是新来的迅捷 我想为 iPhone 进行聊天 所以我需要使用客户端套接字 怎么做这个 请给我建议或例子 我试过这个https github com socketio socket io client swift https github
  • Django REST Framework - 将额外参数传递给操作

    我在用着Django 2 0 and Django REST Framework 我创建了一个操作方法来从数据库中删除特定对象 联系人 views py class ContactViewSet viewsets ModelViewSet
  • 如何在 Google Colab 中缩进?

    我不知道如何在 Google Colab 中缩进代码块 按选项卡不会缩进 现在 我对每行代码按两次空格键 只需执行以下操作即可 选择要缩进的文本 在 Mac 上 按 command 大括号 对于 Windows Ctrl 花括号即可完成此工
  • 设计决策:为什么以及何时将接口设为私有?

    设计决策中是否使用过私有接口 如果是这样 原因是什么 您什么时候知道需要私有接口 A 顶层接口不能是私有的 它只能有public或包访问 来自Java 语言规范 第 9 1 1 节 接口修饰符 https docs oracle com j
  • C# 在标签周围绘制圆圈[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 如何在标签周围画一个圆圈 现在我已经尝试过这个 public void drawUseCase int width in
  • 在 Mac 上安装 RVM 时遇到问题

    我正在尝试设置本地 Rails 环境 但在安装 RVM 时遇到问题 这是我得到的错误 bash lt lt curl http rvm io releases rvm install head Total Received Xferd Av
  • 在 Kubernetes/Openshift 中将客户端-服务器流量保持在同一区域的最佳方法?

    我们运行兼容 Kubernetes OKD 3 11 的本地 私有云集群 其中后端应用程序与用作缓存和 K V 存储的低延迟 Redis 数据库进行通信 新的架构设计将在两个地理上分布的数据中心 区域 之间平均划分工作节点 我们可以假设节点
  • 解析:无效的用户名、密码

    我正在使用数据库的 Parse API 并尝试使用它提供的用户名服务 我从教程中了解到 为了登录 您需要执行以下操作 ParseUser logInInBackground Jerry showmethemoney new LogInCal
  • 何时使用 Box> 或 Vec>?

    什么时候设计一个嵌套的数据结构才有意义 Box and a Vec 或相反亦然 似乎在大多数情况下 您想在堆上存储多个固定大小的东西 Box是多余的 因为它唯一的 作用是堆分配一个 单个值 以及一个正常的Vec已经在堆上分配其存储空间 背景
  • Spring Boot 文件上传错误请求 400

    你好 我正在使用 Spring Boot 和 AngularJs 编写一个 Web 应用程序 需要一个简单的文件上传 但目前无法正常工作 我已经读到 当 mvc 依赖项存在时 Spring Boot 应该自动配置分段上传本身 从 https
  • 如何使用 Node/Express 后端的 Angular 5 HttpClient get 方法下载 excel (xlsx) 文件?

    我的 Nodejs 服务器上的目录中有一个 excel 文件 文件的路径是 api uploads appsecuritydesign output appsecdesign xlsx 单击 Angular 5 组件中的按钮后 我只是尝试使
  • Magento,翻译验证错误消息

    我已经成功创建了原型验证的新规则 现在我需要翻译错误消息 位置 Javascript 中的字符串 但是 我只能翻译所有消息 我的新自定义消息似乎无法翻译 我该如何改变这个 也许你需要一个jstranslator xml里面的文件etc fo
  • Azure SQL 依赖项(基于 EF Core 3.1.7)未出现在 App Insights 的应用程序地图中

    我们有基于 net Core 3 1的Azure功能 我们使用最新版本的 EntityFrameworkCore 它连接到 Azure SQL 来存储 检索 查询数据 有时我们可以在应用程序见解的实时流中看到 Azure SQL 的日志 例
  • 在 Visual Studio 中查看 TFS 服务器端更改,无需获取最新版本

    在 Visual Studio 2010 中 我希望能够查看其他团队成员已签入的更改 而无需实际执行获取最新 这将覆盖本地文件 有没有办法对批量文件执行此操作 而不是选择每个文件并将其与服务器版本进行比较 我使用 查看历史记录 窗口 然后选
  • SQL Server在查询执行后不释放内存

    我想我在这里有一个很多人可能遇到过的基本问题 当我在 SQL Server 中运行查询时 它将在内存中加载查询执行所需的所有数据 例如 如果存在联接 那么它将从这两个表加载必要的数据 但是当查询完成执行内存时SQL Server 消耗的数据