首页 > 数据库技术 > 详细

SQLServer Temp tables 数据疑问

时间:2014-07-01 21:36:31      阅读:713      评论:0      收藏:0      [点我收藏+]

1. 现象

使用Cacti监控,有关于临时表的一个图形

bubuko.com,布布扣

可以看到正在使用的临时表Active Temp Tables的数量非常大,并且在非工作时间,也维持在400个左右。感觉非常奇怪,所以追查下!

2. 探索

首先,先验证下Cacti数据是否准确,已知Cacti数据是从SQLServer的sys.dm_os_performance_counters 计数器DMV中取数的。所以查询下数据:

 

select * 
from sys.dm_os_performance_counters 
where counter_name =‘Active Temp Tables‘

查询结果和图中展示数据没有差别

然后,查询下目前的临时表究竟有哪些。使用如下SQL:

use tempdb
go 
select * 
from sys.objects 
where name like #% 
order by create_date asc 

查询结果如下:

bubuko.com,布布扣

可以得出如下结论:

1) 临时表的数量与Cacti图中的数量基本一致

2)从临时表的命名来看,基本为表变量对应的临时表。因为若是创建的临时表,命名为#temp_xxxx_随机标识

3)很多临时表,基本是表变量对应的,创建日期为十几天前,且最近并未更改,但SQLServer一直为销毁

3.未解谜题

按照已有的知识,表变量在所在批处理语句结束后,就会释放掉,为什么会有如此的temp tables 未被销毁呢?

请指教!谢谢~

 

 

 

SQLServer Temp tables 数据疑问,布布扣,bubuko.com

SQLServer Temp tables 数据疑问

原文:http://www.cnblogs.com/JentleWang/p/3816735.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!