如何对SQL Server中的tempdb“减肥”

2023-10-26

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

SQL Server会自动创建一个名为tempdb的数据库作为工作空间使用,当您在存储过程中创建一个临时表格时,比如(CREATE TABLE #MyTemp),无论您正在使用哪个数据库,SQL数据库引擎都会将这个表格创建在tempdb数据库中。

而且,当您对大型的结果集进行排序,比如使用ORDER BY或GROUP BY或UNION或执行一个嵌套的SELECT时,如果数据量超过了系统内存容量,SQL数据库引擎就会在tempdb中创建工作表格。在您运行DBCC REINDEX或者向现有的表格中添加集群序列时, SQL数据库引擎同样会使用tempdb。实际上,任何针对大型表格的ALTER TABLE命令都会在tempdb中吃掉大量的磁盘空间。

在理想状态下,SQL会在完成指定操作后自动清理,并销毁这些临时表格,但是,很多问题都会导致错误。比如,您的代码创建了一个事务,但是却没能执行或重新运行,那么这些孤儿对象将遗留在tempdb中。而且,对大型数据库运行DBCC CHECK时,它还会消耗掉大量的空间,您往往会发现tempdb比设想的要大很多,甚至还会收到SQL即将用完磁盘空间的出错信息。

您有很多方法可以来修正这一情况,但从长远看来,您需要执行其它的步骤来保证正常使用。

tempdb减肥”最简单的办法就是关闭SQL数据库引擎然后重新启动,但是在重要的任务中,这样做可能难度很大;另一方面,如果您已经处于无法承受的状态,那么我的建议就是将这个坏消息告知您的上司,然后开始操作。

如果您幸运拥有另外一块磁盘可以用来放置tempdb,可以进行如下的操作:

USE master

GO

ALTER DATABASE tempdb modify file (name = tempdev, filename ='NewDrive:Pathtempdb.mdf')

GO

ALTER DATABASE tempdb modify file (name = templog, filename ='NewDrive:Pathtemplog.ldf')

GO

还有三项关于tempdb的属性应该检查:自动增长标记,初始大小和恢复模式,以下是关于这些属性的小窍门:

自动增长标记:记住将这个标记设为True。

初始大小:tempdb的初始大小要根据常用的工作负载来设定,如果有很多用户在使用GROUP BY、ORDER BY或者对大型表格进行聚合操作,那么您的常用工作负载会相当大。如果服务器脱机时,您可能需要检查日志文件与数据文件是否位于同一磁盘,如果这样的话,应当将需要将它们转移到新的磁盘上,您只需指明相应的数据库并使用相同的命令即可。

恢复模式:将恢复模式设定为True意味着让SQL自动截去tempdb的日志文件(在使用了每个表格之后),要找出tempdb所使用的恢复模式,可以使用如下命令:

SELECT DATABASEPROPERTYEX('tempdb','recovery')

恢复模式有三种选择:简单、完整或大量记录(bulk-logged),如要改变设置,可以使用以下命令:

ALTER DATABASE tempdb SET RECOVERY SIMPLE

这些步骤可以优化您系统中使用的tempdb,除了解决磁盘空间问题外,您还会发现SQL Server系统性能的提升。 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对SQL Server中的tempdb“减肥” 的相关文章

随机推荐

  • Ansible-基本概述

    为什么要自动化运维 纯手动软件安装部署方式 我们以 10 台机器部署 Nginx 为例 部署步骤如下 1 通过 ssh 登录一台机器 2 yum install y nginx 或者 获取安装包自行编译安装 3 配置 Nginx 4 启动
  • 微信小程序知识点GET

    1 app json中的pages用来设置小程序包含哪些页面以及页面的路径 window用来设置默认页面的窗口表现形式 tabBar用来设置小程序底部tab的表现 2 app js中的App 函数用来注册一个小程序 接受的对象参数用来指定小
  • mstsc远程报:这可能是由于CredSSP 加密Oracle修正的两种完美解决方法

    win10很完美 用的也很舒服 当然人无完人 也总有不尽如人意的时候 比如说我们经常用的远程mstsc 就出现了一个坑 既然出现坑了 我们就得把坑解决掉吧 下面就记录一下这个坑的解决方法 本文地址 https www cnblogs com
  • vue.js --父子组件通信

    目录 父子组件通信 父组件向子组件通信 子组件通过props接收 子组件向父组件通信 emit自定义事件 v model改造 emit传递父组件数据 emit传递单个父组件数据 emit传递多个父组件数据 总结 父子组件通信 父子组件通信
  • 线程的状态

    线程共有六种状态 初始状态 实现Runnable接口和继承Thread可以得到一个线程类 new一个实例出来 线程就进入了初始状态 2 1 就绪状态 就绪状态只是说你资格运行 调度程序没有挑选到你 你就永远是就绪状态 调用线程的start
  • mybatis泛型DAO接口

    本文将记录mybatis整合spring的泛型DAO接口 通过BasicDAOImpl实现类提供CRUD功能 其他DAO只需要继承和扩展BasicDAOImpl BasicDao接口定义 public interface BasicDAO
  • win10系统下将DMG转为ISO镜像——(虚拟机黑苹果操作)

    1 下载镜像 http www msdn3 com 6 20190826 这个网站超级好用 2 下载后为dmg文件 如果可以直接下载iso文件的可以跳过转换步骤 3 dmg文件转iso文件 1 下载DMG2IMG 32位 64位版Windo
  • loadrunner接口压测脚本编写模板

    接口报文 Action web reg save param return code LB res code RB Search Body Ord 1 LAST lr start transaction httpRequest web ad
  • jdbc连接数据库mysql的问题_JDBC连接Mysql数据库出现的问题汇总

    MySQL 前言 最近安装了一个 mysql 8 0 版本的数据库 在程序中连接的时候可谓是状况不断 之前也会遇到一些问题 这里就对使用 JDBC 连接mysql 会出现的问题做一个汇总 在此之前说明一下环境 开发工具 IDEA mysql
  • Selenium自动化测试 —— 通过cookie绕过验证码的操作

    验证码的处理 对于web应用 很多地方比如登录 发帖都需要输入验证码 类型也多种多样 登录 核心操作过程中 系统会产生随机的验证码图片 进行验证才能进行后续操作 解决验证码的方法如下 1 开发做个万能验证码 推荐 2 测试环境关闭验证码功能
  • Easy Code插件使用(附Spring Data JPA生成模板)

    文章目录 一 概述 二 安装 1 安装插件 2 连接数据库 三 生成代码 四 配置EasyCode 五 Spring Data JPA模板 1 controller类 2 service接口 3 serviceImpl实现类 4 dao接口
  • Python之体育竞技分析

    来源 Python语言程序设计 嵩天 一 问题描述 需求 高手过招 胜负只在毫厘 如何科学地分析体育竞技比赛 输入 球员的水平 输出 预测比赛成绩 二 具体分析 三 代码实现 from random import random 生成随机数
  • uniapp picker实现:市区镇村4级懒加载

    使用这种方法的原因 市区镇村4级数据太大 后台接口响应时间太长 方法实现 样式 view
  • 深度学习各方向开源数据集分类汇总

    转载自 深度学习各方向开源数据集分类汇总 持续更新中 哔哩哔哩 目录 1 小目标检测 2 目标检测 3 人体姿态估计 4 图像分割 语义分割 5 工业检测 6 人脸识别 7 自动驾驶 8 目标跟踪 9 动作识别 10 图像分类 11 图像识
  • 基于Matlab的数字图像水印技术

    基于Matlab 的数字图像水印技术 课题介绍 数字水印技术涉及到许多图像处理算法以及数学计算工具等 如果用普通编程工具实现上述算法 需要要花费大量的时间 MathWorks公司推出的一种简单 高效 功能极强的高级语言 MATLAB语言 它
  • 局部最小值问题

    问题 一个数组 相邻不等 返回任意一个局部最小值 重点是 相邻不等 否则无法用此方法 分析 所谓局部最小值 即左右相邻的数都比他大 当此数为第一个时 只需要右边的比他大即可 最右同理 代码 生成随机数组 相邻不等 void Random a
  • B站疯传!堪称最强!java超级面试资料

    我没有知名企业的工作经历 也没有多么耀目的成就 为什么他们会对我有那么深的印象呢 其实 在我看来 面试都是有迹可循的 也就是说 完全可以用很短的时间准备 却给面试官留下很深的印象 一 好的自我介绍决定了面试的80 不管你相不相信 你适不适合
  • DataX理论知识:简介-框架设计-数据抽取策略

    文章目录 一 简介 二 框架设计 三 数据抽取策略 一 简介 DataX 是一个 异构数据源 离线同步工具 可实现 各种 异构数据源 之间 稳定高效的数据同步功能 设计理念 从 蜘蛛网 到 星型链路 DataX充当一个中转站的角色 二 框架
  • 数据分析——数据特征描述、画箱线图、分组直方图

    数据特征描述 import pandas as pd catering sale r H school 数据挖掘 实验 实验二 catering sale xls data pd read excel catering sale index
  • 如何对SQL Server中的tempdb“减肥”

    SQL Server会自动创建一个名为tempdb的数据库作为工作空间使