—教训深刻—SQL Server大约TempDB使用
场景现象
中午查询了流水,因未与业务人员沟通好。忘了删选条件,导致TempDB不能分配空间,SQL Server高负载执行。
错误分析
我们来看看错误日志:
再来看看TempDB自增长记录:
事件 |
逻辑文件名称 |
启动时间 |
持续时间(毫秒) |
大小变化(MB) |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 13:01:51 |
23 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 13:01:27 |
30 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 13:01:03 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 13:00:42 |
40 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 13:00:18 |
20 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:59:55 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:59:32 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:59:09 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:58:47 |
33 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:58:24 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:58:00 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:57:36 |
30 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:57:12 |
26 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:56:48 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:56:24 |
13 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:56:01 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:55:36 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:55:12 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:54:49 |
30 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:54:24 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:53:59 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:53:37 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:53:14 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:52:53 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:52:30 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:52:05 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:51:43 |
13 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:51:21 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:50:59 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:50:36 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:50:13 |
13 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:49:50 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:49:26 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:49:04 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:48:42 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:48:19 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:47:56 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:47:33 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:47:11 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:46:49 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:46:26 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:46:02 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:45:40 |
60 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:45:16 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:44:54 |
16 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:44:32 |
13 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:44:09 |
13 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:43:47 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:43:25 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:43:03 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:42:41 |
3 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:42:20 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:41:56 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:41:35 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:41:11 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:40:50 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:40:29 |
40 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:40:09 |
30 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:39:45 |
23 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:39:23 |
26 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:39:02 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:38:39 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:38:17 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:37:54 |
13 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:37:32 |
16 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:37:10 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:36:49 |
6 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:36:27 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:36:05 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:35:44 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:35:22 |
10 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:34:59 |
43 |
1,024.00 |
数据文件自己主动增长 |
tempdev_1 |
2014/4/17 12:34:37 |
50 |
1,024.00 |
数据文件自己主动增长 |
tempdev_2 |
2014/4/17 12:34:08 |
23 |
1,024.00 |
数据文件自己主动增长 |
tempdev_0 |
2014/4/17 12:33:35 |
20 |
1,024.00 |
导致原因
查询语句未指定删选条件,语句例如以下:
--得到流水,因数据敏感问题,已将字段使用’xx’取代。
IF EXISTS (SELECT *
FROM tempdb..sysobjects
WHERE id = Object_id(N'tempdb..#t_scfw')
AND type = 'U')
DROP TABLE #t_scfw; IF NOT EXISTS (SELECT *
FROM tempdb..sysobjects
WHERE id = Object_id(N'tempdb..#t_scfw')
AND type = 'U')
SELECT tsvr.*,
bsl.xx AS xxx,
bsl.xx,
bsl.xx
INTO #t_scfw
FROM #t1 AS tsvr
JOIN t2 AS bsl
ON tsvr.xx = bsl.xx
AND tsvr.xx = bsl.xx
AND tsvr.xx = bsl.xx
AND tsvr.xx = bsl.xx
AND bsl.xx > 0;
总结
因为tempdb是存储在SSD上。且总大小为270G。
所以,在显式使用暂时表时一定要注意数据大小。
避免把tempdb空间耗尽,影响整个SQLServer的正常执行。好在设置了tempdb的最大空间。而且最大空间小于SSD硬盘的最大容量,不然server的盘就会挂掉,从而导致server宕机,多么痛的领悟!
切忌犯如此低级错误,作下此文提醒和鞭策自己,凡事三思而后行!
Good Luck!
版权声明:本文博客原创文章,博客,未经同意,不得转载。
—教训深刻—SQL Server大约TempDB使用的更多相关文章
- SQL Server中tempdb的管理
原文:SQL Server中tempdb的管理 资料来自: http://blogs.msdn.com/b/sqlserverstorageengine/archive/tags/tempdb/ ht ...
- SQL Server中TempDB管理(version store的逻辑结构)
原文:SQL Server中TempDB管理(version store的逻辑结构) 原文来自: http://blogs.msdn.com/b/sqlserverstorageengine/arch ...
- SQL Server中TempDB管理(版本存储区的一个example)
原文:SQL Server中TempDB管理(版本存储区的一个example) 原文来自: http://blogs.msdn.com/b/sqlserverstorageengine/archive ...
- 监测谁用了SQL Server的Tempdb空间
原文:监测谁用了SQL Server的Tempdb空间 转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/02/11/sql-server-tempdb. ...
- SQL Server中tempdb的management
对<SQL Server中tempdb的management>的一些更正和补充 对<SQL Server中tempdb的management>的一些更正和补充 前几天看了这 ...
- [转]如何监测谁用了SQL Server的Tempdb空间
Tempdb 系统数据库是一个全局资源,供连接到 SQL Server 实例的所有用户使用.在现在的SQL Server里,其使用频率可能会超过用户的想象.如果Tempdb空间耗尽,许多操作将不能完成 ...
- 对《SQL Server中tempdb的management》的一些更正和补充
对<SQL Server中tempdb的management>的一些更正和补充 前几天看了这篇文章:SQL Server中tempdb的management 发现里面有些内容不是很准确 文 ...
- sql server转移tempdb数据库的物理存放位置
转移前将原来的文件备份一下 将 tempdb 从其在磁盘上的当前位置移动到其他磁盘位置.由于每次启动 MSSQLSERVER 服务时都会重新创建 tempdb,因此不需要从物理意义上移动数据和日志 ...
- SQL server performance - tempdb
When tempdb is used? User objects: User-defined tables and indexes System tables and indexes Global ...
随机推荐
- hdu1505(dp求最大子矩阵)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1505 分析: 这题是HDU 1506 的加强版,定义一个二维数组,d[i][j]表示第i行j列元素在前 ...
- 用cocos2d-x 3.2 实现的FlappyBird
近期才開始学cocos2dx,买了几本书还有看大神(主要是 笨木头)的博客.然后就自己尝试用cocos2d-x实现了一下... (新手,勿喷...) 先看执行效果 http://pan.baidu.c ...
- Swift 的类、结构体、枚举等的构造过程Initialization(下)
类的继承和构造过程 类里面的全部存储型属性--包含全部继承自父类的属性--都必须在构造过程中设置初始值. Swift 提供了两种类型的类构造器来确保全部类实例中存储型属性都能获得初始值,它们各自是指定 ...
- 关于split与StringTokenizer的理解
关于split与StringTokenizer的理解 一.split 依据匹配给定的正則表達式来拆分此字符串.此方法返回的数组包括此字符串的子字符串,每一个子字符串都由还有一个匹配给定表达式的子 ...
- java实现简单web服务器(分析+源代码)
在日常的开发中,我们用过很多开源的web服务器,例如tomcat.apache等等.现在我们自己实现一个简单的web服务器,基本的功能就是用户点击要访问的资源,服务器将资源发送到客户端的浏览器.为了简 ...
- 对consistencygroup的一些研究和实践
声明: 本博客欢迎转载,但请保留原作者信息! 作者:李人可 团队:华为杭州OpenStack团队 consistency group,直译是一致性组,是Juno版本号cinder新引进的一个概念.顾名 ...
- WPF命中测试示例(二)——几何区域命中测试
原文:WPF命中测试示例(二)--几何区域命中测试 接续上次的命中测试,这次来做几何区域测试示例. 示例 首先新建一个WPF项目,在主界面中拖入一个按钮控件,并修改代码中的以下高亮位置: 当前设计视图 ...
- IP Camera 和 Web Camera 差分
一直以来,,没太注意IP camera 和 Web Camera之间的差,这两个摄像头,昨天晚上.闲来无事Google少数,我们发现,还有两者之间的差异. 1) IP Camera IP Camera ...
- UVa 988 - Many Paths, One Destination
称号:生命是非常多的选择.现在给你一些选择(0~n-1),和其他选项后,分支数每一次选择,选择共求. 分析:dp,图论.假设一个状态也许是选择的数量0一个是,代表死亡,计数的路径数将达到所有死亡可以去 ...
- arcmap坐标点生成线和面(更正版)
一:本博客的脉络 (1 )做了例如以下更正:之前在网上搜到的结果是:arcmap坐标点生成线和面 ------ 注意该功能在ArcGIS10中没有了,当时自己也没有多想就转载了,再此做一下更正或者叫做 ...