深圳培训课程分类
深圳网校课程
深圳免费公开课讲座
深圳培训资讯网
深圳考试资讯
深圳培训机构视频展示
深圳培训机构
深圳培训资讯网首页 深圳硕士学历培训 深圳自学考试培训 深圳成考远程培训 深圳外语培训 深圳IT培训 深圳资格认证培训 深圳出国留学 深圳就业技能培训 深圳基础教育培训
课程搜索
资料搜索
当前位置:IT培训 -> Oracle认证

Oracle数据库中临时表的进一步深入研究


导航教育中心热点导读
 
 
  深圳成人高考网
· 华杰MBA09年考前辅导热招 ·南昌大学08年成考热门专业招生
· 中南财大金融硕士\华中项目硕士 ·深圳商祺人力资源管理师培训热招
· 深圳物流师认证培训课程大全 ·亚洲(澳门)公开大学MBA深圳热生
· 深圳营养师认证培训课程大全 ·香港财经大学工商管理博士(DBA)
 







    最近考虑到我们的数据库端写存储过程关于临时表使用的情况,由于我们现在还不清楚数据库端到底是怎么处理的?是否和SQL Server的处理方式相同,是否会存在隐患等等一些问题,为了避免将来不必要的麻烦我做了深入的研究和查看了一些权威的资料。 


Oracle临时表是注意一下: 


首先是创建临时表的语法: 


CREATE GLOBAL TEMPORARY TABLE table

"(" column datatype [DEFAULT expr] [{ NULL | NOT NULL}]

[, column datatype [DEFAULT expr] [ {NULL | NOT NULL} ]... ")"

ON COMMIT {DELETE | PRESERVE } ROWS
 

    Oracle中的临时表有两种一种是事务级别的临时表它在事务结束的时候自动清空记录,另一种是会话级的它在我们访问数据库是的一个会话结束后自动的清空。关于临时表多用户并行不是问题,一个会话从来不会阻止另一个会话使用临时表。即使“锁定”临时表,一个会话也不会阻止其他会话使用它们的临时表。 
    如果有在SQL Server或Sybase中使用临时表的经验,需要主要考虑的不是执行select x,y ,z into #temp from some_table 来创建和装载临时表,而是: 


1.对于每一个数据库,创建所有的temp表作为全局临时表。这将作为应用程序安装的一部分完成,就像创建永久表一样。 


2.只要在过程中简单的insert into temp(x,y,z) selelct x,y,z from some_table。 

    只是理解这点,这里的目的不是运行存储过程创建表。在Oracle中这样做不是正确的方法。DDL是一种消耗资源非常大的操作,在运行时尽量不要使用,应用程序需要的临时表应在应用程序安装时创建,而不是在运行时创建。Oracle中的临时表和其他数据库的临时表是相似的,在每个数据库中创建临时表一次,不必在数据库中的每个存储过程中创建一次。临时表总是存在的,他们作为对象存在于数据字典中,并且总是保持为空,直到有会话在其中放入数据。 

    所有我在这里说明如果我们在存储过程中建临时表,每次都建立一个那么我的系统随着用户的操作调用此存储过程,每次多一个这样的表,我们在不知不觉中数据库中的表的数量会越来越多,而我们还不知道会存在很大的隐患的所有说这点不可小视,为了我们的系统能在客户那里平稳、安全的运行我们一定要注意这样的问题。如果不手动Drop 表,临时表还是在数据字典中存在的。
发布日期: (2007-5-17) 来源:互联网
本文关键字:
打印】 【收藏】 【关闭窗口





·深圳雅思强化(保6分)全日班、晚班、周末班
·深圳MBA:亚洲(澳门)国际公开大学MBA招生
·加拿大皇家大学MBA学位班深圳招生
·深圳上海新世界日语套餐班
·华杰MBA精品班保过班热招
·深圳国家物流师职业资格认证培训
关键词
关键词
  • Oracle数据库中使用DBMS_PROFILER进行调优  2008-5-16
  • 详细讲解Oracle数据库后台进程的具体功能  2008-5-16
  • 循序渐进讲解Oracle数据库管理员的职责  2008-5-16
  • 怎样在Oracle中执行一次基本的快照复制  2008-5-16
  • Oracle数据库中管理表空间和数据文件  2008-5-12
  • 讲解Oracle面试过程中常见的二十个问题  2008-5-12

  • | 关于我们 | | 网站地图 | | 联系我们 | | 合作伙伴 | | 设为首页 | 加入收藏 |

    版权所有:深圳培训资讯网 | 深圳市导航教育服务有限公司
    Copyright©2004 szedu.com.cn Inc. All Rights Reserved
    Mailto: Postmaster@szedu.com.cn