当前位置:  开发笔记 > 数据库 > 正文

Oracle中的临时表与全局临时表有什么区别?

如何解决《Oracle中的临时表与全局临时表有什么区别?》经验,为你挑选了3个好方法。

我听过这两个术语"临时表"和"全局临时表"在类似的上下文中使用了很多.

两者有什么区别?



1> Thomas Jones..:

在Oracle中没有任何区别.在Oracle数据库中创建临时表时,它将自动为全局表,并且您需要包含"全局"关键字.

SQL标准定义了术语"GLOBAL TEMPORARY TABLE"的解释方式,它允许LOCAL或GLOBAL范围.这将允许用户特定表(LOCAL)或每个人(GLOBAL).Oracle仅实现GLOBAL版本.

您放入Oracle临时表的数据特定于您的会话.也就是说,即使有100个用户都使用同一个表,您也可以看到您的数据,并且当您断开连接时(或提交当前事务时),您的数据将从表中删除,具体取决于表设置.

将其与MS SQL-Server进行对比,其中临时表是本地的.如果你创建一个,除了你之外没有人知道你的临时表存在.在Oracle中,创建临时表允许每个人(每个人都可以访问您的模式)查看该表.当您退出会话时,将删除SQL-Server表,并且需要为下一个会话重新创建.在Oracle中,临时表现在是模式的永久部分,即使数据不是.


啊......明白了.Informix提供本地临时表; 你必须在每个会话中创建它们,但任何人都可以这样做.全局临时表使您不必在每个会话中创建表; 它"存在"但它是空的,其内容在每个会话中是唯一的(和私有的).谢谢.

2> 小智..:

将其与MS SQL-Server进行对比,其中临时表是本地的.如果你创建一个,除了你之外没有人知道你的临时表存在.在Oracle中,创建临时表允许每个人(每个人都可以访问您的模式)查看该表.当您退出会话时,将删除SQL-Server表,并且需要为下一个会话重新创建.在Oracle中,临时表现在是模式的永久部分,即使数据不是(如果不是这样,您可以决定是否保留它).Oracle仅支持全局临时表,使您不必在每个会话中创建表; 它"存在"但它是空的,其内容在每个会话中是唯一的(和私有的).



3> David Aldrid..:

请注意,全局临时表没有与之关联的统计信息,因此请查看是否应设置实例的动态采样级别,以确保在分析时对未分析的表进行采样.否则,启发式方法可能会导致恶劣的执行计划.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有