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在查询执行后不释放内存 的相关文章

  • 如何使用第二行中的值填充第一行中的空值?

    我正在尝试编写一个查询 仅显示每个名称的第一行 但这些行的标题为空 因此我想从紧邻的下一行中提取它们的标题 table1 Name Title Row Dan NULL 1 Dan Engineer 2 Dan Developer 3 Ja
  • 创建日期范围表

    我正在编写一份需要显示每天值的报告 我有查询的开始日期和结束日期 但我希望避免丢失日期 以防表不包含特定日期的值 我正在考虑创建一个基本日期范围表 其中包含开始和结束之间的所有日期 然后将其与数据表左连接以显示每一天的值 我找到了一些适用于
  • PostgreSQL 在递归查询中找到所有可能的组合(排列)

    输入是一个长度为 n 的数组 我需要生成数组元素的所有可能组合 包括输入数组中元素较少的所有组合 IN j A B C OUT k A AB AC ABC ACB B BA BC BAC BCA 随着重复 所以AB BA 我尝试过这样的事情
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 如何引用下一行的数据?

    我正在 PostgreSQL 9 2 中编写一个函数 对于股票价格和日期的表 我想计算每个条目较前一天的百分比变化 对于最早一天的数据 不会有前一天 因此该条目可以简单地为 Nil 我知道WITH声明可能不应该高于IF陈述 到目前为止 这就
  • 为什么 std::allocator 在 C++17 中丢失成员类型/函数?

    一边看着std 分配器 http en cppreference com w cpp memory allocator 我看到成员 value type pointer const pointer reference const refer
  • 标量子查询包含多行

    我正在使用 H2 数据库并想要移动一些数据 为此 我创建了以下查询 UPDATE CUSTOMER SET EMAIL SELECT service EMAIL FROM CUSTOMER SERVICE AS service INNER
  • 根据由另一列分组的不同列的最大值获取值[重复]

    这个问题在这里已经有答案了 我想根据由另一列分组的不同列的最大值来获取列的值 我有这张表 KEY NUM VAL A 1 AB B 1 CD B 2 EF C 2 GH C 3 HI D 1 JK D 3 LM 并想要这样的结果 KEY V
  • 一个表可以有多个主键吗?

    我现在很困惑 也许你可以帮助我更好地理解这个问题 即一个表可以有两个主键 如果是 那么如何 如果没有 那为什么 您询问是否可以有多个主键field你当然可以 您只能有一个主键 但它可以包含唯一标识行所需的任意数量的列 创建表时使用类似这样的
  • 以编程方式插入行(父行和子行)

    我正在使用 Spring 和 JDBCTemplate 该场景是 CUSTOMER 表和 ORDERS 表的父子关系 我想做一个插入 例如 1 个客户和 5 个订单 但我不确定如何以编程方式在 CUSTOMER 表中插入一行 如何获取 Or
  • 包含列和行总计的 SQL 数据透视表

    我正在尝试将行和列总计添加到该数据透视表中 create table test4 city nvarchar 10 race nvarchar 30 sex nvarchar 10 age int insert into test4 val
  • NVARCHAR 变量在Where 子句中不起作用

    在 SQL Server 我想是 2018 我不知道如何判断 中 我的变量不起作用WHERE的条款NVARCHAR 比较应该返回值 但它什么也没返回 如果我只是手动输入声明的文本 它会突然起作用并返回值 没有任何逻辑原因应该有任何不同 类型
  • 3 个表的 SQL 查询(或联接)

    第一次在 Stack Overflow 上问问题 很棒的资源 但是只有一件事真正让我作为 SQL 新手感到困惑 我有三个表 我想获取与鲍勃的学生相关的所有导师的姓名 表 1 教师 ID Name 1 Bob 表 2 学生 STUDENT I
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • SQL - 需要查找重复记录但排除反向事务

    我有一张交易表 偶尔会有 重复条目 如果 当管理员发现这些重复条目时 他们将撤销交易 从而创建负值 但由于监管要求 原始重复条目仍然保留 我想创建一个 SQL 查询 并使用 Crystal Reports 来制作报告 以便管理员轻松查找重复
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • Swift C 回调 - Swift 类指针的 takeUnretainedValue 或 takeRetainedValue

    我有一些UIView or UITableViewCell 里面我有 C 回调 例如 CCallback bridge self observer data gt Void in let mySelf Unmanaged
  • 获取mysql中逗号分隔行中不同值的计数

    一个表 Jobs 有 2 列 JobId 城市 当我们保存工作时 工作位置可能是多个城市 如下所示 JobId City 1 New York 2 New York Ohio Virginia 3 New York Virginia 我如何

随机推荐

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

    使用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 消耗的数据