來源網絡

1、查看临时表空间(dba_temp_files视图)(v_$tempfile视图)

select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;

select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看

2、缩小临时表空间大小alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TELEMT\TEMP01.DBF' resize 100M;

3、扩展临时表空间:

方法一、增大临时文件大小:

SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ resize 100m;

方法二、将临时数据文件设为自动扩展:

SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize unlimited;

方法三、向临时表空间中添加数据文件:

SQL> alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ size 100m;

4、创建临时表空间:

SQL> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11.dbf’ size 10M;

5、更改系统的默认临时表空间:

--查询默认临时表空间

select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

--修改默认临时表空间

alter database default temporary tablespace temp1;

所有用户的默认临时表空间都将切换为新的临时表空间:

select username,temporary_tablespace,default_ from dba_users;

--更改某一用户的临时表空间:

alter user scott temporary tablespace temp;

6、删除临时表空间

删除临时表空间的一个数据文件:

SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ drop;

删除临时表空间(彻底删除):

SQL> drop tablespace temp1 including contents and datafiles cascade constraints;

7、查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)

GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小

dba_temp_files视图的bytes字段记录的是临时表空间的总大小

SELECT temp_used.tablespace_name,

total - used as "Free",

total as "Total",

round(nvl(total - used, 0) * 100 / total, 3) "Free percent"

FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used

FROM GV_$TEMP_SPACE_HEADER

GROUP BY tablespace_name) temp_used,

(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total

FROM dba_temp_files

GROUP BY tablespace_name) temp_total

WHERE temp_used.tablespace_name = temp_total.tablespace_name

8、查找消耗资源比较的sql语句Select se.username,

se.sid,

su.extents,

su.blocks * to_number(rtrim(p.value)) as Space,

tablespace,

segtype,

sql_text

from v$sort_usage su, v$parameter p, v$session se, v$sql s

where p.name = 'db_block_size'

and su.session_addr = se.saddr

and s.hash_value = su.sqlhash

and s.address = su.sqladdr

order by se.username, se.sid

9、查看当前临时表空间使用大小与正在占用临时表空间的sql语句

select sess.SID, segtype, blocks * 8 / 1000 "MB", sql_text

from v$sort_usage sort, v$session sess, v$sql sql

where sort.SESSION_ADDR = sess.SADDR

and sql.ADDRESS = sess.SQL_ADDRESS

order by blocks desc;

10、临时表空间组介绍

1)创建临时表空间组:

create temporary tablespace tempts1 tempfile '/home/oracle/temp1_02.dbf' size 2M tablespace group group1;

create temporary tablespace tempts2 tempfile '/home/oracle/temp2_02.dbf' size 2M tablespace group group2;

2)查询临时表空间组:dba_tablespace_groups视图

select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME

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

GROUP1                         TEMPTS1

GROUP2                         TEMPTS2

3)将表空间从一个临时表空间组移动到另外一个临时表空间组:

alter tablespace tempts1 tablespace group GROUP2 ;

select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME

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

GROUP2                         TEMPTS1

GROUP2                         TEMPTS2

4)把临时表空间组指定给用户

alter user scott temporary tablespace GROUP2;

5)在数据库级设置临时表空间

alter database default temporary tablespace GROUP2;

6)删除临时表空间组 (删除组成临时表空间组的所有临时表空间)

drop tablespace tempts1 including contents and datafiles;

select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME

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

GROUP2                         TEMPTS2

drop tablespace tempts2 including contents and datafiles;

select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME

11、对临时表空间进行shrink(11g新增的功能)

--将temp表空间收缩为20M

alter tablespace temp shrink space keep 20M;

--自动将表空间的临时文件缩小到最小可能的大小

ALTER TABLESPACE temp SHRINK TEMPFILE ’/u02/oracle/data/lmtemp02.dbf’;

临时表空间作用

Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。

重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。

网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB。

也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小。

临时表空间的主要作用:

索引create或rebuild;

Order by 或 group by;

Distinct 操作;

Union 或 intersect 或 minus;

Sort-merge joins;

analyze.

二,修改

1.查询用户现在所使用的临时表空间

SQL> select username,temporary_tablespace from dba_users;

USERNAME                       TEMPORARY_TABLESPACE

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

MGMT_VIEW                      TEMP2

SYS                            TEMP2

SYSTEM                         TEMP2

DBSNMP                         TEMP2

SYSMAN                         TEMP2

SCOTT                          TEMP2

OUTLN                          TEMP2

MDSYS                          TEMP2

ORDSYS                         TEMP2

CTXSYS                         TEMP2

ANONYMOUS                      TEMP2

EXFSYS                         TEMP2

DMSYS                          TEMP2

WMSYS                          TEMP2

XDB                            TEMP2

ORDPLUGINS                     TEMP2

SI_INFORMTN_SCHEMA             TEMP2

OLAPSYS                        TEMP2

MDDATA                         TEMP2

DIP                            TEMP2

2.查询临时表空间所使用的数据文件

SQL> select name from v$tempfile;

NAME

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

E:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/TEMP02.DBF

3.创建新的临时表空间

SQL> create temporary tablespace temp tempfile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/TEMP01.DBF' size 20m;

Tablespace created

4.切换到新创建后的临时表空间

SQL> alter database default temporary tablespace temp;

Database altered

SQL> select username,temporary_tablespace from dba_users;

USERNAME                       TEMPORARY_TABLESPACE

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

MGMT_VIEW                      TEMP

SYS                            TEMP

SYSTEM                         TEMP

DBSNMP                         TEMP

SYSMAN                         TEMP

SCOTT                          TEMP

OUTLN                          TEMP

MDSYS                          TEMP

ORDSYS                         TEMP

CTXSYS                         TEMP

ANONYMOUS                      TEMP

EXFSYS                         TEMP

DMSYS                          TEMP

WMSYS                          TEMP

XDB                            TEMP

ORDPLUGINS                     TEMP

SI_INFORMTN_SCHEMA             TEMP

OLAPSYS                        TEMP

MDDATA                         TEMP

DIP                            TEMP

5.删除原临时表空间

SQL> drop tablespace temp2 including contents and datafiles;

Tablespace dropped

SQL> select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible

2  from dba_temp_files

3  /

FILE_NAME                                                                        TABLESPACE_NAME                        MB AUTOEXTENSIBLE

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

oracle 更换临时表空间,重建及切换临时表空间相关推荐

  1. oracle查看临时表空间文件,Oracle-临时表空间

    一:临时表空间查询 --查看数据库表空间数据文件 select * from dba_data_files; --查看数据库临时表空间文件 select * from dba_temp_files; ...

  2. ORACLE 错误 1659,数据库导入dmp临时表空间内存不够

    IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败: 今儿在自己电脑上搭建开发环境,在给数据库导入表结构以及数据时出现"IMP-00017: 由于 ORACLE 错误 ...

  3. oracle设置临时表空间,Oracle临时表空间查看、添加临时表空间数据文件、修改默认临时表空间 方法!...

    --查表空间使用率情况(含临时表空间) SELECT d.tablespace_name "Name", d.status "Status", TO_CHAR ...

  4. itpub坛友问题--基于普通表或分区表创建索引,会占用临时表空间及何时回收临时表空间...

    个人简介: 8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问. 服务过的客户: 中国电信 中国移动 中国联通 中国电通 国家电网 四川达州 ...

  5. 创建临时表空间组+查询临时表空间组+临时表空间移动到别的临时表空间组中

    一创建临时表空间组 在创建临时表空间的时候,使用tablespace group 语句指定一个组就行 create temporary tablespace mytemp1 tempfile 'F:\ ...

  6. oracle 查看 用户,用户权限,用户表空间,用户默认表空间

    查看用户和默认表空间的关系. select username,default_tablespace from dba_users; 1.查看表结构:desc表名 2.查看当前用户的表: select ...

  7. Oracle的SQL基础之用户与表空间

    前排提示:数据库对象不理解的,可以查看我的关于数据库对象的博文 1.用户 1.1四个系统默认用户 Oracle的安装完成会产生四个系统默认用户,其级别依次是 sys > system > ...

  8. oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决

    在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...

  9. Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结

    说明: 在创建数据库时输入的密码,是修改系统默认的密码,以system和sysman等系统默认身份登录时要输入的密码就是修改后的密码(创建数据库时输入的密码) 如果要创建新的用户就必须以system或 ...

最新文章

  1. AI Studio中的视觉数据集合
  2. Protocol Buffer序列化协议及应用
  3. [Windows]ping itsafe环境变量
  4. UVA - 1346 Songs (贪心+排序)
  5. 优化定制化abap代码必须遵守的经典黄金规则
  6. KDD CUP 2020之Debiasing赛道方案 (Rush)
  7. LINUX 数据盘的格式化与挂载
  8. 使用Java8改造出来的模板方法真的是yyds
  9. [转载]for循环的执行顺序
  10. 2017/07/27 工作日志
  11. c++ strcmp函数
  12. PS透明婚纱抠图(超详细)
  13. linux重装系统驱动,linux系统下安装驱动方法
  14. mysql五日均线_终于有人把“5日均线做短线”的精髓讲透了!
  15. Mybatis的特性详解——四大操作标签
  16. php二手房系统,phpwind房产新版上线 抢先体验二手房新功能
  17. 路由器dns服务器怎么才能自动改变,路由器服务器dns怎么设置技巧教程 路由器如何设置修改dns最好...
  18. 编写程序实现通过有道或百度翻译url对用户输入数据进行翻译_8亿用户AI有道:超强神经网络翻译技术大解密...
  19. WindowManager LayoutParams 上
  20. react 项目框架的搭建(一)

热门文章

  1. CZT变换的原理及matlab应用
  2. FinChat.io,金融领域的chatgpt
  3. linux 用户权限 数字,linux下rwx权限数字解释
  4. Y05 - 001、Python是什么?
  5. 漫画的由来,卡通漫画、暴走漫画、先锋漫画、漫画与前卫艺术之间的边缘艺术形式、实用漫画、讽刺漫画、幽默漫画的定义...
  6. 恢复视力的方法(飞行员都用) 为了你的眼睛请收藏
  7. Amazon排行榜岁末回顾与展望
  8. Linux中关闭SELinux的方法
  9. MXNet中使用双向循环神经网络BiRNN对文本进行情感分类
  10. 详解高斯混合模型与EM算法