问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何解决tempdb中磁盘空间不足的问题?以及如何优化tempdb的性能?

发布网友 发布时间:2022-05-02 00:15

我来回答

3个回答

懂视网 时间:2022-05-02 04:36

对所有会话都可见。当创建临时表的会话断开数据库的联接,而且也没有活动再引用全局临时表时,SQL Server会自动删除相应的全局临时表。

(2)局部临时表只对创建它的会话再创建级和调用堆栈内部级(内部的过程、函数、触发器、以及动态批处理)是可见的。当创建例程弹出调用堆栈,SQL Server就会自动删除相应的临时表

(3)表变量在tempdb数据库中也有对应的表作为其物理表示。只对当前会话的批处理可见。对调用堆栈中当前批处理的内部批处理是不可见的,对会话中随后的批处理也是不可见的。

(4)根据国外专家的经验,对于大数据,偏向使用临时表,小数据量(一般来说小于100行)则可以使用表变量。

 

是否具有统计信息

是否可以创建索引

是否是物理存储

临时表

Y

Y

Y

表变量

N

N

N

 

 

 

 

 

2.2.内部临时对象

在查询过程中存储临时数据的对象,如Sorts、假脱机、Hash关联和游标等。

可以使用下面的SQL语句进行查看:

SELECT * FROM sys.dm_db_session_space_usage

查看internal_object_alloc_page_count列

技术分享

 

2.3.版本存储

开启乐观并发模式后,会使用Temp DB存放修改前的版本数据。

 技术分享

注意:

版本存储将会造成Temp DB的非预期增长,需要对Temp DB的文件大小及使用空间进行监控。

三、TempDB上的存在的性能问题

3.1 空间使用情况

TempDB是系统数据库,被很多地方用到,如果配置和使用不当,空间会被迅速消耗,可能出现报错,影响服务器的正常运行。

查看TempDB的空间使用情况。

3.1.1 可以用性能监视器看下SQL server的空间使用情况。

 技术分享

 

3.1.2 用SQL语句查询空间使用情况。

(1)查看tempdb的使用情况

Exec sp_spaceused

技术分享  

(2)查看tempdb.mdf文件的大小

SELECT * FROM dbo.sysfiles

技术分享

(3)查看tempdb的使用空间

SELECT * FROM sys.dm_db_file_space_usage

技术分享

(4)查看会话的空间分配情况,不包含当前活动的任务。

SELECT * FROM sys.dm_db_session_space_usage WHERE session_id > 50

技术分享

(5)查看TempDB中当前运行任务的信息。

SELECT * FROM sys.dm_db_task_space_usage WHERE session_id > 50

技术分享

 

3.1.3 诊断TempDB磁盘问题

错误

引发错误的情况

1101 或 1105

任何会话都必须分配 tempdb 中的空间。

3959

版本存储区已满。此错误在日志中通常出现在错误 1105 或 1101 之后。

3967

由于 tempdb 已满,版本存储区被强制收缩。

3958 或 3966

事务在 tempdb 中找不到所需的版本记录。

 

 

 

 

 

 

 

 

 

 

3.2 I/O问题

(1)用函数sys.dm_io_virtual_file_stats查看当前实例上的TempDB上的磁盘读写情况。

SELECT DB_NAME(database_id) AS ‘Database Name‘ ,
 file_id ,
 io_stall_read_ms / num_of_reads AS ‘AVG Read Transfer/ms‘ ,
 io_stall_write_ms / num_of_writes AS ‘AVG Write Transfer/ms‘ ,
 *
FROM sys.dm_io_virtual_file_stats(-1, -1)
WHERE num_of_reads > 0
 AND num_of_writes > 0

 技术分享

参考时间:10~20ms 可接受的范围。

 

(2)大量、频繁地创建和删除临时表及表变量

 

四、优化TempDB

1.配置文件的大小

默认配置:

初始大小8M

自动增长10%,不限制增长。

这个配置可以修改,要视生产环境的情况而修改。

 技术分享

建议如下配置

tempdb 文件大小

FILEGROWTH 增量

0 至 100 MB

10 MB

100 至 200 MB

20 MB

200 MB 或更多

10%*

 

 

 

 

 

 

 

 

2.存放文件的地方

一般要将TempDB的文件单独放到一个磁盘中。如果追求性能,考虑放到RAID0,但是不具有容灾性。

RAID:磁盘阵列

RAID 0 无奇偶校验的条带磁盘。数据横跨所有的物理磁盘,无任何容灾特性。

RAID 1 磁盘镜像。最少需要两个物理磁盘。可同时从两个磁盘读取数据,写数据需要备份到另外一个盘。具有容灾特性。浪费50%的磁盘空间。

RAID 5 具有奇偶校验的条带磁盘。最少需要3个物理磁盘,一个用来存放奇偶校验信息,另外两个用来存放数据,。具有容灾特性。浪费50%的磁盘空间。

RAID 10 或RIAD 0+1 组合。读写性能最好且具有容灾性。

3.文件的个数

TempDB只有一个primary文件组,所有的数据文件都会存放到这个文件组中。常规建议是4个书文件开始,并且需要进行监控,如果发现不够,可以再增加4个。依次类推。建议将文件个数控制再两位数以内。

五、其他

1.不能对TempDB执行什么操作

  • 添加文件组。
  • 备份或还原数据库。
  • 更改排序规则。默认排序规则为服务器排序规则。
  • 更改数据库所有者。tempdb 的所有者是 dbo。
  • 创建数据库快照。
  • 删除数据库。
  • 从数据库中删除 guest 用户。
  • 启用变更数据捕获。
  • 参与数据库镜像。
  • 删除主文件组、主数据文件或日志文件。
  • 重命名数据库或主文件组。
  • 运行 DBCC CHECKALLOC。
  • 运行 DBCC CHECKCATALOG。
  • 将数据库设置为 OFFLINE。
  • 将数据库或主文件组设置为 READ_ONLY。
  • 【T-SQL性能优化】01.TempDB的使用和性能问题

    标签:mod   物理   数据   死锁分析   server   阵列   操作   select   page   

    热心网友 时间:2022-05-02 01:44

    你可以手动把TEMPDB的数据大小设的大一些.在TEMPDB上点右键>属性>数据文件>分配的空间设大些.但如果你用这个临时数据库过多.可以看看你的数据库设计是不是有缺陷.

    热心网友 时间:2022-05-02 03:02

    加大内存
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    硅胶与液态硅胶手机壳的区别 什么样的过敏会传染 过敏的原理是什么?为什么有的人过敏,有的人不过敏?谢谢! 过敏为什么会痒 评审报告需要注意什么 财政评审流程及注意事项 高效项目评审的6大注意事项 银行双录 什么意思 什么是银行双录 在异地哪些可公证 什么仪器可以在沙石里面测到金子位置 推荐一款黄金纯度检测仪器? 黄金检测仪 多少钱一台 用于黄金纯度检测的仪器,哪款精准度最高?价格多少钱 有一种仪器,可否测定金子? 黄金如何避开金属探测器呢? 黄金检测仪是一个什么仪器 真的有仪器可以测出黄金吗? 用仪器检测黄金纯度发现局部不满足99.9的要求还算足金么 用什么仪器检测黄金? 世界上最难的字是哪个 全世界最难写最多笔画的汉字是什么字 世界最难写的字? 世界上最难写的字是哪个字 史上最难写的字是什么字? 地球上最难写的字是93画,谁能知道这是什么字呢? 什么样的人成为爱豆 他是传奇组合队长,出道时却受尽嘲笑,是如何成顶级男爱豆的呢? 中国最恐怖的字是什么? 他曾被SM公司无情拒绝,后来是如何成为少有的登顶爱豆的呢? 哪里有卖蹦床的 请问东莞除了爱蹦蹦床馆还有哪里有蹦床馆? 美的一拖一风压可调吗? 问购卖了美的GRD72TW/Bp2N丨一TR智能*空调大3p风管机一拖一包括哪些东西? 空调风管机,一扡一格力好,还是美的好 一拖一风管机优缺点 行车记录仪的缩时录影是什么意思? 有牙结石用什么牙膏效果好 手麻脚嘛!是怎么回事,希望哪位高手来分析一下,谢谢 手麻腿麻是什么问题导致的? 一个位置放久了!老麻手麻脚的怎么了? 台式机怎么使用手机的网 《至尊瞳术师.绝世大小姐》中洛清瞳娘亲的身份是什么?求答案啊! 有时还会手麻脚后跟麻木是咋回事 美的3匹一拖一风管机E1故障 至尊瞳术师洛清瞳的前世是谁? 至尊瞳术师绝世大小姐里的洛清瞳的异瞳为什么不见了? 至尊瞳术师楚凌风的父亲是谁? 洛清瞳的性格特征是什么? 女主叫洛清瞳 连载穿越小说