—教训深刻—SQL Server大约TempDB使用
2015-07-08 20:41
330 查看
场景现象
中午查询了流水,因未与业务人员沟通好。忘了删选条件,导致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!
相关文章推荐
- mysqlcluster简介
- SQL 合并两个结果集 一个倒序,一个正序
- 数据类型和运算符(一)
- mysql相关时间函数
- 执行MySql更新报错:error code [1785]
- MySQL的binlog数据如何查看
- MySQL的binlog数据如何查看
- Mongodb的范式化和反范式化
- 实现基于Memcache存储的Session类
- [转]LAMP 系统性能调优,第 3 部分: MySQL 服务器调优
- mysql数据类型
- Mysql数据库的优化
- jdbc 连接mysql数据库
- Mysql 简介
- MySQL与PostgreSQL:该选择哪个开源数据库?哪一个更好?
- PostgreSQL新手入门
- 11g新特性-自动sql调优(Automatic SQL Tuning)
- Redis的安装与使用
- SQL Server 2008 R2——创建函数 筛选出字符串中的数字 筛选出字符串中的非数字
- Ubuntu 14.04 下自动安装mongodb shell 脚本