tempdb数据库,正如它的名字所暗示的那样,是一个临时性的数据库,它存在于SQL Server会话期间,一旦SQL Server关闭,tempdb数据库将丢失。当SQL Server重新启动时,将重建全新的、空的tempdb数据库,以供使用。关于该过程,还有更多可讲述的内容,但是,在深入探讨这些之前,还是先来了解tempdb数据库的用途是什么。
众所周知,数据库能够存储数据,而数据可以存储在多个表中,使用命令和函数来检索和操作这些数据。然而,有时可能想把某个数据集临时存储起来,以便稍后进行处理——例如,当要把得自一个存储过程的数据传递给在该存储过程之后运行的另一个存储过程时,一个选择就是把那些数据存储在tempdb数据库中。在存储过程或查询中创建的所有临时表都将被放置在tempdb数据库中。只要tempdb数据库没被更新,一切将称心如意;一旦重建了tempdb数据库,那么存放于其中的数据将丢失,需要重生成数据。
或许,你会认为这并非一个理想的解决方案,毕竟,如果能把临时信息存储在该数据库之外的某处,不是很完美吗?其实,tempdb不是这样用的,关于tempdb,实际上只应把它看作是过渡的存储空间。
重建tempdb的另一个原因是:不仅开发者要使用该数据库,SQL Server自己也要使用tempdb。实际上,SQL Server始终在使用tempdb,当重新初始化SQL Server时,它需要确认原先正在处理的任何临时性工作都已经清除掉。毕竟,很可能是由于临时性工作的问题导致服务的重启。
正像其他数据库一样,tempdb也有大小的限制,必须确保该数据库的大小对于当前的应用以及所有要存储于其中的临时信息是足够的。阅读随后的章节,将看到数据库的大小有最小值和最大值。tempdb也不例外,应该确保该数据库大小可以扩展,这样当需要时就可以增加其大小。
注意 因为tempdb的大小是有限的,所以在使用它时必须当心,不要让tempdb被来自不好的存储过程(对于创建有太多记录的表没有明确限制)的表中的记录所填满。如果发生了这种情况,不仅当前的处理不能继续,整个服务器都可能无法工作,从而将影响到在该服务器上的所有用户。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-504419/ ,如需转载,请注明出处,否则将追究法律责任。