iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Tempdb对SQL Server性能优化有何影响
  • 203
分享到

Tempdb对SQL Server性能优化有何影响

2024-04-02 19:04:59 203人浏览 安东尼
摘要

Tempdb对SQL Server性能优化有何影响,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。先给大家巩固tempdb的基础知识简介:t

Tempdb对SQL Server性能优化有何影响,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

先给大家巩固tempdb的基础知识

简介:

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

特性:

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

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

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

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

接下来围绕主题展示问题分析:

1.SQL Server系统数据库介绍

SQL Server有四个重要的系统级数据库:master,model,msdb,tempdb.

master:记录SQL Server系统的所有系统级信息,包括实例范围的元数据,端点,链接服务器和系统配置设置,还记录其他数据库是否存在以及这些数据问文件的位置等等.如果master不可用,数据库将不能启动.

model:用在SQL Server 实例上创建的所有数据库的模板。因为每次启动 SQL Server 时都会创建 tempdb,所以 model 数据库必须始终存在于 SQL Server 系统中。

msdb:由SQL Server 代理用来计划警报和作业。

tempdb:是连接到 SQL Server 实例的所有用户都可用的全局资源,它保存所有临时表,临时工作表,临时存储过程,临时存储大的类型,中间结果集,表变量和游标等。另外,它还用来满足所有其他临时存储要求.

2.tempdb内在运行原理

与其他SQL Server数据库不同的是,tempdb在SQL Server停掉,重启时会自动的drop,re-create. 根据model数据库会默认建立一个新的8MB(mdf file:8MB;ldf file:1MB, autogtouth设置为10%)大小recovery model为simple的tempdb数据库.

tempdb数据库建立之后,DBA可以在其他的数据库中建立数据对象,临时表,临时存储过程,表变量等会加到tempdb中.在tempdb活动很频繁时,能够自动的增长,因为是simple的recovery model,会最小化日志记录,日志也会不断的截断.

3.如何合理的优化tempdb以提高SQL Server的性能

如果SQL Server对tempdb访问不频繁,tempdb对数据库不会产生影响;相反如果访问很频繁,loading就会加重,tempdb的性能就会对整个DB产生重要的影响.优化tempdb的性能变的很重要的,尤其对于大型数据库.

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

  3.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,就该返回来考虑这些问题了.

  3.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.3不要收缩tempdb(如没有必要)

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

如上图所示:tempdb分配的空间为879.44MB,有45%的空间是空闲的,如果shrink掉,可以释放掉一部分磁盘空闲,但是之后SQL Server如有大量的操作时,tempdb空间不够用,又会按照10%的比例自动增长. 这样子的话,所做的shrink操作是无效的,还会增加系统的loading.

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

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

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

关于Tempdb对SQL Server性能优化有何影响问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: Tempdb对SQL Server性能优化有何影响

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

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

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

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

下载Word文档
猜你喜欢
  • Tempdb对SQL Server性能优化有何影响
    Tempdb对SQL Server性能优化有何影响,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。先给大家巩固tempdb的基础知识简介:t...
    99+
    2024-04-02
  • 网站图片优化对网站性能有何影响
    网站图片优化对网站性能有重要影响。如果网站上的图片没有经过优化处理,会导致网站加载速度变慢,影响用户体验和搜索引擎排名。优化图片可以...
    99+
    2024-04-17
    建站
  • SQL Server性能怎么优化
    本篇内容主要讲解“SQL Server性能怎么优化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server性能怎么优化”吧!数据库性能诊断和优化是提高数据库性能和稳定性的关键技术之一。...
    99+
    2023-06-27
  • PHP性能优化对网站排名的影响:优化性能,提升排名!
    PHP性能优化对网站排名有着深远的影响。根据谷歌官方的说法,网站速度是影响网站排名的重要因素之一。网站速度越快,排名就越好。因此,优化PHP性能是提高网站排名和获得更多流量的关键所在。 以下是一些PHP性能优化技巧: 使用缓存:缓存...
    99+
    2024-02-05
    PHP性能优化 网站排名 网站速度 服务器优化 代码优化
  • Redis序列化对性能的影响有哪些
    Redis序列化对性能的影响主要体现在以下几个方面: 序列化/反序列化开销:将数据序列化成字节数组或者字符串,或者从字节数组或者...
    99+
    2024-04-29
    Redis
  • Redis的持久化对性能有哪些影响
    Redis的持久化会对性能产生一定影响,具体影响取决于所选择的持久化方式。 RDB持久化:在进行RDB持久化时,Redis会将内存...
    99+
    2024-05-07
    Redis
  • Golang函数性能优化之错误处理对性能的影响
    错误处理会影响应用程序性能。以下优化措施可改善性能:避免 panic(),使用 error 值。使用 errors.new() 创建错误值。使用特定类型错误简化处理。使用 if err ...
    99+
    2024-04-17
    性能优化 错误处理 golang
  • 如何理解SQL Server SQL性能优化中的参数化
    如何理解SQL Server SQL性能优化中的参数化,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库参数化的模式数据库的...
    99+
    2024-04-02
  • 缓存策略对动态SQL性能有哪些影响
    缓存策略对动态SQL性能有以下影响: 缓存命中率:缓存策略的设计决定了命中率的高低。如果缓存策略能有效地识别出重复的SQL查询,...
    99+
    2024-04-29
    SQL
  • Redis的持久化机制对系统性能有何影响
    Redis的持久化机制会对系统性能产生一定影响,主要取决于选择的持久化方式和持久化频率。 如果选择RDB持久化方式,当定时备份快照时...
    99+
    2024-04-09
    Redis
  • PostgreSQL本地化设置对SQL特性的影响有哪些
    这篇文章主要介绍“PostgreSQL本地化设置对SQL特性的影响有哪些”,在日常操作中,相信很多人在PostgreSQL本地化设置对SQL特性的影响有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • 优化Web页面性能:减少重绘和回流对性能的影响
    构建高效页面:如何避免重绘和回流的性能损耗 随着互联网的发展,网页已经成为人们获取信息以及进行交流的重要平台。然而,由于网页内容的复杂性不断增加,页面的加载速度和性能问题成为广大用户关注的焦点。在网页开发过程中,重绘和回流是造成...
    99+
    2024-01-26
  • PHP shell 缓存路径对性能有何影响?
    PHP是一种非常流行的开源服务器端脚本语言,它被广泛应用于Web开发领域。在PHP开发过程中,shell缓存是一个非常重要的概念,它可以提高PHP脚本的执行效率。但是,shell缓存路径对性能也有一定的影响。在本文中,我们将探讨PHP s...
    99+
    2023-06-26
    shell 缓存 path
  • JAVA异常对性能有什么影响
    这篇文章主要介绍“JAVA异常对性能有什么影响”,在日常操作中,相信很多人在JAVA异常对性能有什么影响问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JAVA异常对性能有什么影响”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • HTML 嵌入样式的 SEO 影响:对搜索引擎优化有何影响?
    优点: 更快的页面加载速度:嵌入式样式无需外部文件,消除了 HTTP 请求,从而提高页面加载速度。 减少文件大小:嵌入式样式通常比外部样式表更小,这可以减少页面大小并提高传输速度。 更轻松的维护:嵌入式样式与 HTML 位于同一文件中,...
    99+
    2024-04-02
  • sql server怎么排查死锁优化性能
    本篇内容主要讲解“sql server怎么排查死锁优化性能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“sql server怎么排查死锁优化性能”吧!一.概述记得以前客户在使...
    99+
    2023-06-29
  • 容器化部署对Golang API性能的影响
    容器化部署对 golang api 性能的影响:容器化部署对 golang api 服务的性能产生了明显的负面影响,导致吞吐量和响应时间降低。影响因素包括资源隔离、网络开销、文件系统开销...
    99+
    2024-05-07
    容器化部署 docker apache golang
  • 模板化编程对代码性能的影响?
    模板化编程对代码性能的影响:优化编译:允许编译器内联代码,减少函数开销,提升性能。代码膨胀:展开模板化代码会导致代码大小增加,在资源受限环境下可能是个问题。运行时开销:编译器无法内联时,...
    99+
    2024-05-08
    代码性能 模板化编程
  • ASP存储API的负载优化对于网站性能的影响如何?
    随着互联网的普及,网站的访问量越来越大,对于网站的性能要求也越来越高。ASP存储API是ASP.NET网站开发中常用的一种技术,它可以实现对于数据的存储和访问。在高并发的情况下,ASP存储API的负载优化对于网站性能的影响变得尤为重要。 ...
    99+
    2023-07-29
    存储 api load
  • T vs. t 在 Golang 性能优化中的影响
    在 go 性能优化中,可导出别名(大写字母 t)指向原始类型的指针,导致指针解引用和栈分配开销;不可导出别名(小写字母 t)直接使用原始类型,避免了这些开销,从而提高了性能。具体地说:可...
    99+
    2024-04-08
    golang 性能优化 t vs. t
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作