TEMPDB存放显式创建的临时对象,如表,存储过程,表变量和游标,以及所有版本的已更新记录(如果启用了快照隔离)或所用的隐式基于快照隔离的功能
你的数据库用户多,查询量很大当然TEMPDB会很大咯如果可以的话,把SQL SERVER的TEMPDB单独放到一个高速磁盘上,TEMPDB的初始大小根据数据库查询和使用量来确定,建议你直接设定为10G
当然,你也要看看那些查询语句,使用了临时表要记得DROP,如果很大的查询临时结果譬如SQL SERVER的执行计划里有TABLE SPOOL,可以做成临时表,在使用完之后再删除
1、创建方法:
方法一:
createtable
或
select[字段1,字段2,,]intofromtable
方法二:
createtabletempdbMyTempTable(Tidint)
说明:
(1)、临时表其实是放在数据库tempdb里的一个用户表;
(2)、必须带“#”,“#"可以是一个或者两个,以#(局部)或##(全局)开头的表,这种表在会话期间存在,会话结束则自动删除;
(3)、如果创建时不以#或##开头,而用tempdbTempTable来命名它,则该表可在数据库重启前一直存在。
2、手动删除
droptable
说明:
DROPTABLE语句显式除去临时表,否则临时表将在退出其作用域时由系统自动除去:
(1)、当存储过程完成时,将自动除去在存储过程中创建的本地临时表。由创建表的存储过程执行的所有嵌套存储过程都可以引用此表。但调用创建此表的存储过程的进程无法引用此表;
(2)、所有其它本地临时表在当前会话结束时自动除去;
(3)、全局临时表在创建此表的会话结束且其它任务停止对其引用时自动除去。任务与表之间的关联只在单个Transact-SQL语句的生存周期内保持。换言之,当创建全局临时表的会话结束时,最后一条引用此表的Transact-SQL语句完成后,将自动除去此表。
最简单的一种方法是重启服务,tempdb会自动收缩
否则,看下面内容详细介绍几种收缩方法:
>
以上就是关于sql server 2008r2的tempdb很大怎么办全部的内容,包括:sql server 2008r2的tempdb很大怎么办、SQL临时表使用(建立临时表sql语句)、如何收缩 SQL Server 中的 Tempdb 数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)