教你使用T-SQL临时表需要注意哪些事项
2019-03-25 10:24:22 来源:沈阳软件公司 作者:沈阳软件开发
另外使用临时表还可以减少中间表的产生。在进行某些操作时,本来往往需要一些中间表的帮助才可以完成。而现在数据库管理员可以让数据库在需要时自动生成中间表,并在用完后进行自动删除。如此的话,中间表的建立与删除就不需要数据库管理员人为的管理了。所以,使用临时表可以减少数据库系统中的垃圾表,也可以降低用户的工作量。为此笔者认为,临时表是SQL Server数据库中一个很使用的工具。作为数据库管理员,要在平时的工作中,合理使用这个临时表,发挥其最大的效用。虽然针对特定的任务该采用什么类型的临时表,有很多容易混淆的地方。但是数据库管理员不能够因噎废食,而应该积极的去尝试。
三、要对本地临时表特别引起重视。
在平时的应用与管理中,本地临时表的应用几率要比全局临时表多的多。而且本地临时表由于只有用户自己的会话可以进行访问,而全局临时表则是所有用户都可以访问。为此在安全性上本地临时表也要比全局临时表高的多。为此笔者认为数据库管理员主要要掌握本地临时表的应用技巧。然后再对比的去了解全局临时表的信息,这可能是学习SQLServer数据库临时表的一个捷径。
对于本地临时表来说,需要注意在不同情形下应用本地临时表其删除的实际。如假设数据库在执行一个存储过程的时候建立了本地临时表。那么此时这个本地临时表并不是在会话终止的时候自动删除,而是在这个存储过程执行完毕后就会删除。这是什意思呢?也就是说,用户发起的某个会话,为了执行一个特殊的作业(如用户的这个会话调用了某个存储过程)。此时其实就是会话再创建一个子会话的过程。在这种情况下需要注意的是,子会话创建的本地临时表只在子会话内部有效。当这个子会话终止的时候(存储过程执行完毕),此时这个临时表就会自动删除。即对于调用这个子会话的会话来说,这个其子会话的创建的临时表对于其也是无效的,因为临时表已经在子会话关闭的时候自动删除。做一个形象的比喻。即现在做父亲的去叫儿子造一座房子。当儿子死亡的时候,这座房子也会消失。对于这种情况,数据库管理员需要注意。父会话只能够引用子会话从临时表中传递出来的数据。也就是说,父会话要访问子会话创建的临时表的数据,只有一种手段。即先让子会话对临时表中的数据进行查询或者操作,然后把结构回传给父会话。父会话是不能够直接访问子会话所创建的临时表。当然这个限制是专门针对本地临时表而言的。对于全局临时表来说,本身就是所有用户都可以访问,为此就没有这个限制。
四、临时表对日志与锁的影响。
日志文件是数据库中很重要的一个工具。无论是SQL Server数据库还是Oracle数据库,都有日志这个工具。如凭借重做日志工具,数据库管理员可以在数据库故障的时候借此来恢复数据,将数据恢复到故障的那个点上。但是在使用临时表的时候,需要注意一点,就是临时表不会有日志文件。即对临时表进行的DML等操作不会形成日志文件。这个特性即有好处,也有坏处。好处是对于临时表的更改不会保存到日志文件中。也就是说,如果数据库发生了故障,则保存在临时表中的数据是不能够恢复的。为此数据库管理员不得不重新执行某些作业以重新生成临时表中的数据。好处就是对于临时表的DML操作速度会非常的块。除了其他的原因导致其性能的提升外,在更改其内容沈阳软件设计
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。