iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SqlServer中tempdb的作用是什么
  • 110
分享到

SqlServer中tempdb的作用是什么

2024-04-02 19:04:59 110人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关sqlServer中tempdb的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。简介:tempdb是SQLServer

这篇文章将为大家详细讲解有关sqlServer中tempdb的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

简介:

tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。很明显,这样的设计不是很好。当多个应用程序的数据库部署在同一台服务器上的时候,应用程序共享tempdb,如果开发人员不注意对Tempdb的使用就会造成这些数据库相互影响从而影响应用程序。

特性:

1、 tempdb中的任何数据在系统重新启动之后都不会持久存在。因为实际上每次SQLServer启动的时候都会重新创建tempdb。这个特性就说明tempdb不需要恢复。

2、 tempdb始终设置为“simple”的恢复模式,当你尝试修改时都会报错。也就是说已提交事务的事务日志记录在每个检查点后都标记为重用。

3、 tempdb也只能有一个filegroup,不能增加更多文件组。

4、 tempdb被用来存储三种类型的对象:用户对象,内部对象、版本存储区

以上是基础知识。

如果SQL Server对tempdb访问不频繁,

tempdb对数据库不会产生影响;相反如果访问很频繁,loading就会加重,

tempdb的性能就会对整个DB产生重要的影响

.优化tempdb的性能变的很重要的,尤其对于大型数据库。

注:在优化tempdb之前,请先考虑tempdb对SQL Server性能产生多大的影响,评估遇到的问题以及可行性。

1、最小化的使用tempdb

SQL Server中很多的活动都活发生在tempdb中,所以在某种情况可以减少多对tempdb的过度使用,以提高SQL Server的整体性能。

如下有几处用到tempdb的地方:

(1)用户建立的临时表.如果能够避免不用,就尽量避免. 如果使用临时表储存大量的数据且频繁访问,考虑添加index以增加查询效率。

(2)Schedule jobs.如DBCC CHECKDB会占用系统较多的资源,较多的使用tempdb.最好在SQL Server loading比较轻的时候做。

(3)Cursors.游标会严重影响性能应当尽量避免使用。

(4)CTE(Common Table Expression).也会在tempdb中执行。

(5)SORT_INT_TEMPDB.建立index时会有此选项。

(6)Index online rebuild。

(7)临时工作表及中间结果集.如JOIN时产生的。

(8)排序的结果。

(9)AFTER and INSTEAD OF triggers。

不可能避免使用tempdb,如果有tempdb的瓶颈或issue,就该返回来考虑这些问题了。

2、重新分配tempdb的空间大小

在SQL Server重启时会自动建立8MB大小的tempdb,自动增长默认为10%. 对于小型的数据库来说,8MB大小已经足够了.但是对于较大型的数据库来说,8MB远远不能满足SQL Server频繁活动的需要,因此会按照10%的比例增加,比如说需要1GB,则会需要较长的时间,此段时间会严重影响SQL Server的性能. 建议在SQL Server启动时设置tempdb的初始化的大小(如下图片设置为MDF:300MB,LDF:50MB),也可以通过ALTER DATABASE来实现. 这样在SQL Server在重启时tempdb就会有足够多的空间可利用,从而提高效率。

难点在于找到合理的初始化大小,在SQL Server活动频繁且tempdb不在增长时会是一个合适的值,可以设置此时的值为Initial Size;当然还会有更多的考量,此为一例。

3、不要收缩tempdb(如没有必要)

有时候我们会注意到tempdb占用很大的空间,但是可用的空间会比较低时,会想到shrink数据库来释放磁盘空间, 此时要小心了,可能会影响到性能。

4 、分派tempdb的文件和其他数据文件到不用的IO上

tempdb对IO的要求比较高,最好分配到高IO的磁盘上且与其他的数据文件分到不用的磁盘上,以提高读写效率.

tempdb也分成多个文件,一般会根据CPU来分,几个CPU就分几个tempdb的数据文件. 多个tempdb文件可以提高读写效率并且减少IO活动的冲突。

常用的脚本如下:

--查tempdb库的大小

select a.name, sum(size)*8.0/1024/1024 as [GB], sum(size)*8.0/1024 as [MB]from master.dbo.sysdatabases a inner join master.dbo.sysaltfiles b on a.dbid=b.dbidWHERE a.name='tempdb'group by a.nameorder by 1

关于SqlServer中tempdb的作用是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: SqlServer中tempdb的作用是什么

本文链接: https://www.lsjlt.com/news/58894.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SqlServer中tempdb的作用是什么
    这篇文章将为大家详细讲解有关SqlServer中tempdb的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。简介:tempdb是SQLServer...
    99+
    2022-10-18
  • SqlServer中tempdb的日志机制原理是什么
    这篇文章将为大家详细讲解有关SqlServer中tempdb的日志机制原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。测试用例我们分别在用户数据库(...
    99+
    2022-10-18
  • sqlserver中with(nolock)的作用是什么
    这期内容当中小编将会给大家带来有关sqlserver中with(nolock)的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在查询语句中使用 NOLOCK 和...
    99+
    2022-10-18
  • SqlServer中触发器的作用是什么
    这期内容当中小编将会给大家带来有关SqlServer中触发器的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。查询数据库中所有触发器:select&nb...
    99+
    2022-10-18
  • SQLServer中Tempdb空间异常增长及占用非常大该怎么办
    SQLServer中Tempdb空间异常增长及占用非常大该怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、问题现象  &nb...
    99+
    2022-10-19
  • SQLSERVER 中datetime 和 smalldatetime类型的作用是什么
    今天就跟大家聊聊有关SQLSERVER 中datetime 和 smalldatetime类型的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收...
    99+
    2022-10-18
  • 数据库中怎么查看SQLSERVER中某个查询用了多少TempDB空间
    这篇文章主要为大家展示了“数据库中怎么查看SQLSERVER中某个查询用了多少TempDB空间”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中怎么查看SQ...
    99+
    2022-10-18
  • SqlServer系统数据库的作用是什么
    这篇文章将为大家详细讲解有关SqlServer系统数据库的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Master Master数据库保存有放在...
    99+
    2022-10-18
  • SQLServer中的SSIS变量是什么
    本篇内容主要讲解“SQLServer中的SSIS变量是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQLServer中的SSIS变量是什么”吧!  在SS...
    99+
    2022-10-18
  • SqlServer中索引的原理是什么
    本篇文章为大家展示了SqlServer中索引的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。索引的概念索引的用途:我们对数据查询及处理速度已成为衡量应用系...
    99+
    2022-10-18
  • SQLServer中什么是全局变量
    今天就跟大家聊聊有关SQLServer中什么是全局变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  SQLServer全局变量是什么  @@SE...
    99+
    2022-10-18
  • SQLServer中EXEC与sp_executesql的区别是什么
    这篇文章将为大家详细讲解有关SQLServer中EXEC与sp_executesql的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。摘要1,EXE...
    99+
    2022-10-18
  • SQLserver中patindex和charindex的区别是什么
    SQLserver中patindex和charindex的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、全匹配查找字符串 2、模...
    99+
    2022-10-18
  • sqlserver时间函数的用法是什么
    SQL Server 提供了很多用于处理日期和时间的函数,常用的有以下几个: GETDATE():返回当前日期和时间。 SYSDA...
    99+
    2023-10-25
    sqlserver
  • 为什么无法为数据库 tempdb中的对象分配空间
    本篇文章为大家展示了为什么无法为数据库 tempdb中的对象分配空间,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。错误描述消息1105,级别17,状态2,第1 行无...
    99+
    2022-10-19
  • SQLSERVER中非聚集索引的原理是什么
    SQLSERVER中非聚集索引的原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们知道SQLSERVER的数据行的存储有两种数据...
    99+
    2022-10-18
  • docker安装sqlserver的步骤是什么
    安装SQL Server的步骤如下:1. 在Docker官方网站下载并安装Docker Desktop( https://www.d...
    99+
    2023-09-09
    docker sqlserver
  • SQLServer设置QUOTED_IDENTIFIER的方法是什么
    在SQL Server中,可以使用以下方法设置QUOTED_IDENTIFIER: 使用SET QUOTED_IDENTIFIE...
    99+
    2023-10-23
    SQLServer
  • asp连接sqlserver的步骤是什么
    连接SQL Server数据库使用ASP的步骤如下: 引用命名空间:在ASP文件的顶部,使用引用System.Data.SqlC...
    99+
    2023-10-24
    asp sqlserver
  • 什么是SQLServer表的基本概念
    什么是SQLServer表的基本概念,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SQLServer表的基本概念  表是包含数...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作