广告
返回顶部
首页 > 资讯 > 数据库 >oracle优化--表优化(临时表)
  • 773
分享到

oracle优化--表优化(临时表)

2024-04-02 19:04:59 773人浏览 泡泡鱼
摘要

一、创建临时表与普通表 sql> CREATE GLOBAL TEMPORARY TABLE TMP_TEST ON COMMIT PRESERVE ROWS AS SELECT

一、创建临时表与普通表


sql> CREATE GLOBAL TEMPORARY TABLE TMP_TEST ON COMMIT PRESERVE ROWS AS SELECT * FROM emp;


Table created.


SQL> select count(0) from TMP_TEST;


  COUNT(0)

----------

14


SQL> CREATE GLOBAL TEMPORARY TABLE TMP_TEST1 ON COMMIT DELETE ROWS AS SELECT * FROM emp;


Table created.


SQL> select count(0) from TMP_TEST1;


  COUNT(0)

----------

 14


SQL> create table tmp_test2 as select * from emp;


Table created.


SQL> select count(0) from TMP_TEST2;


  COUNT(0)

----------

14


--由于创建tmp_test2为ddl,所以TMP_TEST1数据被清空;


SQL> select count(0) from TMP_TEST1;


  COUNT(0)

----------

0


--关闭会话重新打开,TMP_TEST数据也被清空


SQL> select count(0) from TMP_TEST;


  COUNT(0)

----------

0


二、分别对副本表进行增删改操作,对比性能,可以发现以下差别:


新增时:临时表的cr=8,普通表cr=11

修改时:临时表的cr=3,cost=2;普通表cr=7,cost=3

删除时:临时表的cr=3,cost=2;普通表cr=7,cost=3


所以临时表如果作为运算中间表做增删改运算时性能皆比普通表高


SQL> insert into SCOTT.TMP_TEST SELECT * FROM SCOTT.emp;


14 rows created.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  LOAD TABLE CONVENTIONAL  ( cr=8  pr=0 pw=0 time=548 us)

        14         14         14   TABLE ACCESS FULL EMP (cr=7 pr=0 pw=0 time=64 us cost=3 size=1218 card=14)


SQL> insert into SCOTT.TMP_TEST1 SELECT * FROM SCOTT.emp;


14 rows created.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  LOAD TABLE CONVENTIONAL  ( cr=8 pr=0 pw=0 time=566 us)

        14         14         14   TABLE ACCESS FULL EMP (cr=7 pr=0 pw=0 time=63 us cost=3 size=1218 card=14)


SQL> insert into SCOTT.TMP_TEST2 SELECT * FROM SCOTT.emp;


14 rows created.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  LOAD TABLE CONVENTIONAL  ( cr=11 pr=2 pw=0 time=784 us)

        14         14         14   TABLE ACCESS FULL EMP (cr=7 pr=0 pw=0 time=31 us cost=3 size=1218 card=14)


SQL> delete from SCOTT.TMP_TEST where SAL<=2500;


9 rows deleted.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  DELETE  TMP_TEST ( cr=3 pr=0 pw=0 time=125 us)

         9          9          9   TABLE ACCESS FULL TMP_TEST (cr=3 pr=0 pw=0 time=50 us cost=2 size=117 card=9)


SQL> delete from SCOTT.TMP_TEST1 where SAL<=2500;


9 rows deleted.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  DELETE  TMP_TEST1 ( cr=3 pr=0 pw=0 time=161 us)

         9          9          9   TABLE ACCESS FULL TMP_TEST1 (cr=3 pr=0 pw=0 time=77 us cost=2 size=117 card=9)


SQL> delete from SCOTT.TMP_TEST2 where SAL<=2500;


9 rows deleted.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  DELETE  TMP_TEST2 ( cr=7 pr=0 pw=0 time=105 us)

         9          9          9   TABLE ACCESS FULL TMP_TEST2 (cr=7 pr=0 pw=0 time=13 us cost=3 size=117 card=9)


SQL> update SCOTT.TMP_TEST set sal=sal+100;


5 rows updated.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  UPDATE  TMP_TEST ( cr=3 pr=0 pw=0 time=132 us)

         5          5          5   TABLE ACCESS FULL TMP_TEST (cr=3 pr=0 pw=0 time=46 us cost=2 size=65 card=5)


SQL> update SCOTT.TMP_TEST1 set sal=sal+100;


5 rows updated.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  UPDATE  TMP_TEST1 ( cr=3 pr=0 pw=0 time=132 us)

         5          5          5   TABLE ACCESS FULL TMP_TEST1 (cr=3 pr=0 pw=0 time=34 us cost=2 size=65 card=5)


SQL> update SCOTT.TMP_TEST2 set sal=sal+100;


5 rows updated.


Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         0          0          0  UPDATE  TMP_TEST2 ( cr=7 pr=0 pw=0 time=69 us)

         5          5          5   TABLE ACCESS FULL TMP_TEST2 (cr=7 pr=0 pw=0 time=15 us cost=3 size=65 card=5)


您可能感兴趣的文档:

--结束END--

本文标题: oracle优化--表优化(临时表)

本文链接: https://www.lsjlt.com/news/46214.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle优化--表优化(临时表)
    一、创建临时表与普通表 SQL> CREATE GLOBAL TEMPORARY TABLE TMP_TEST ON COMMIT PRESERVE ROWS AS SELECT ...
    99+
    2022-10-18
  • MySQL查询优化临时表
    【理论分析】 MySQL在执行SQL查询时可能会用到临时表,一般情况下,用到临时表就意味着性能较低。 临时表存储 MySQL临时表分为“内存临时表”和“磁盘临时表”,其中内存临时表使用MySQL的MEMORY存储引擎,磁盘临时表使用MySQ...
    99+
    2019-09-24
    MySQL查询优化临时表
  • Oracle优化——单表分页优化
    单表分页优化思路:--创建测试表:SQL> create table t_test as select * from dba_objects; Table created.如,下面...
    99+
    2022-10-18
  • ORA-1652:临时表空间异常优化处理
    1、查看 alert_PROD.log    【错误信息】:ORA-1652: unable to extend temp segment by 128 in tablespa...
    99+
    2022-10-18
  • MySQL 临时表的原理以及优化方法
    目录1 临时表2 union临时表优化3 group by临时表优化1 临时表 sort buffer、内存临时表和join buffer,这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助SQL语句的...
    99+
    2022-08-22
    MySQL 临时表优化 MySQL 临时表
  • Oracle临时表
    Oracle临时表分为会话级临时表和事务级临时表。会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。事务级临时表是指临时表中的数据只在事务生...
    99+
    2022-10-18
  • 临时表在SQL优化中的作用是什么
    本篇内容主要讲解“临时表在SQL优化中的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“临时表在SQL优化中的作用是什么”吧!今天我们来讲讲临时表的优化...
    99+
    2022-10-18
  • Oracle的临时表
    临时表概念临时表用于保存事务或会话期间的中间结果集。临时表中保存的数据只对当前会话可见,所有会话都看不到其他会话的数据;即使当前会话已经提交(commit)了数据,别的会话也看不到它的数据。对于临时表,不存...
    99+
    2022-10-18
  • oracle优化--表优化(行链接产生实验)
    一、通过一次插入一笔大于基本块大小(8K)的数据,制造一笔有行链接但没有行迁移的数据 SQL> insert into t_pctfree values (10002,dbms_rand...
    99+
    2022-10-18
  • oracle表优化方法教程
    这篇文章主要讲解了“oracle表优化方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle表优化方法教程”吧!1、建立实验表create ta...
    99+
    2022-10-19
  • DB2 ORACLE 临时表创建
    一、临时表     临时表(TEMPORARY TABLE)通常应用在需要定义临时集合的场合。但是,在大部分需要临时集合的时候,我们根本就不需要定义临时表。当我们在一条SQL语句中只使用一次临时集合时,我们可以使用嵌套表表达式来定义临时集...
    99+
    2015-09-25
    DB2 ORACLE 临时表创建
  • 微课sql优化(4)、帮助“表姐”优化报表
    1、"表姐"的报表SQL问题 ...
    99+
    2022-10-18
  • oracle临时表如何使用
    在Oracle数据库中,临时表是一种用于临时存储数据的特殊表。临时表在创建后只对当前会话可见,并在会话结束时自动删除。临时表可以用于...
    99+
    2023-08-23
    oracle
  • 如何优化MySQL表?
    优化 MySQL 表是提高数据库性能和效率的关键一步。通过采用有效的优化技术,您可以提高查询执行速度、降低存储要求并优化资源利用率。本文探讨了优化 MySQL 表的各种策略和最佳实践,使您能够最大限度地提高数据库驱动的应用程序的性能。 在本...
    99+
    2023-10-22
  • oracle创建表空间,临时表空间,用户
    create tablespace a_dat datafile 'D:\oracle\product\10.2.0\oradata\orcl\a_dat.dbf' size 1024m autoexten...
    99+
    2022-10-18
  • SQL数据库中滥用临时表和排序的解决优化是怎样的
    这篇文章给大家介绍SQL数据库中滥用临时表和排序的解决优化是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 游标、临时表、触发器、COLLATE等等 无可厚非、这些都是好东西...
    99+
    2022-10-19
  • oracle怎么释放临时表空间
    要释放Oracle数据库中的临时表空间,可以按照以下步骤进行操作:1. 首先,确保当前会话没有使用该临时表空间。可以通过执行以下查询...
    99+
    2023-09-28
    oracle
  • oracle 表空间,临时表空间使用率查询
    临时表空间: SELECT a.tablespace_name, a.BYTES total, a.bytes - nvl(b.bytes, 0) free      ...
    99+
    2022-10-18
  • win10如何删除临时文件优化系统
    这篇文章将为大家详细讲解有关win10如何删除临时文件优化系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。鼠标点击开始图标,选择“设置”。在设置窗口中,选择点击“系统”。在界面中,点击“存储→此电脑”。...
    99+
    2023-06-28
  • 解决oracle临时表空间的报错
    报错信息:[HY000](1652) [Oracle][ODBC][Ora]ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展&nbs...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作