数据库中“temp”是全局存储内部对象之一,是用户对象,临时表,临时对象,以及SQL Server *** 作创建的存储过程。
每个数据库实例只有一个tempdb,所以可能存在性能以及磁盘空间瓶颈。各种形式的可用空间及过度饿DDL/DML *** 作都会导致tempdb负载过重。这会导致运行在服务器上不相干程序运行缓慢或者运行失败。
“tempdb”的一些常见通病如下:
(1)耗完了tempdb的所有存储空间。
(2)读取tempdb时的I/O瓶颈造成的查询运行缓慢。
(3)过度的DDL *** 作造成在系统表上的瓶颈。
(4)分配竞争。
以上内容参考:百度百科-tempdb
临时表是只有创建的用户才可以使用的,用户退出或事务结束时(具体看on commit 选项)自动删除该表,也可以手动drop。
在临时表上的 *** 作比在一般的表上的 *** 作要快。
建临时表是动态编译的,所以对临时表的使用也必须放在DECLARE CURSER 后面。
对普通表的DML,建触发器等 *** 作同样适合临时表,与普通表不同的是,临时表使用的是PGA,如果PGA空间不够了才会使用临时表空间。
【延展】
Oracle中临时表的使用:
我们在创建数据表的时候,若没有特殊的指明,那么我们创建的表是一个永久的关系型表格,也就是说,这个表格中对应的数据,除非是我们显示的删除的话,表中的数据是永远都存在的。相对应的,在Oracle数据库中还有一种类型的表,叫做临时表。这个临时表跟永久表最大的区别就是表中的数据不会永远的存在。当一个会话结束或者事务结束的时候,这个临时表中的数据,不用用户自己删除,数据库自己会自动清除。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)