首先造成tem圬桦孰礅pdb数据库增长的原因有几点,比如你运行的语句太复杂语句过程中缓存的数据太多造成内存不够然后使用了数据文件缓存,还有绺从萦米可能是你的语句中有利用到临时表,临时表的数据是保存在tempdb中的,检查你运行的语句。那么出现Tempdb空间异常增长,提示空间不足,业务中断时应该怎么解决?
工具/原料
sqlserver2012
windows2012server
方法/步骤
1、如果可以重启SQLServer,tempdb会自动重新创建,从而使tempdb回归到初始大小。但是量产环境尽量不要重启,除非万不得已。
2、在开始应用里找到SQLSERVER目录,找到SQLSERVER配置管理器并打开;
3、点击左侧的SQLServer服务,选中右侧的SQLServer(MSSQLSERVER)右键重启服务;
方法/步骤2
1、收缩数据库。在开始应用里找到MicrosoftSQLServerManagermentStudio;
2、在对象资源管理器界面中,打开数据库在tempdb节点,点击右键任务---收缩---数据库;
3、点击确定,开始收缩数据库。
方法/步骤3
1、更改TEM绯摺驼予PDAB位置,换到空间容量大的分区;首先检查tempdb的逻辑名字和当前位置SELECTname,physical_nameFROMsys.mas墉掠载牿ter_filesWHEREdatabase_id=DB_ID('tempdb');记录下数据库文件的位置(NAME=tempdev,NAME=templog是逻辑名,FILENAME指向的是数据库文件的实际位置)
2、停止SQL服务;点击左侧的SQLServer服务,选中右侧的SQLServer(MSSQLSERVER)右键停止服务;
3、在磁盘新位置创建数据库日志文件夹,执行以下脚本:USEmaster;GOALTE六咝媲拜RDATABASEtempdbMODIFYFILE(NAME=temp颊俄岿髭dev,FILENAME='D:\tempdb\tempdb.mdf');GOALTERDATABASEtempdbMODIFYFILE(NAME=templog,FILENAME='D:\tempdb\templog.ldf');GO
4、执行语句完成后,查看tempdb新位置。执行SELECTname,physical_nameFROMsys.master_filesWHEREdatabase_id=DB_ID('tempdb');