2019独角兽企业重金招聘Python工程师标准>>>

oracle 临时表空间的增删改查

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用户查看

查看表空间:

select b.file_id 文件ID号,

b.tablespace_name 表空间名,

b.bytes / 1024 / 1024 || 'M' 字节数,

(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 || 'M' 已使用,

sum(nvl(a.bytes, 0)) / 1024 / 1024 || 'M' 剩余空间,

100 - sum(nvl(a.bytes, 0)) / (b.bytes) * 100 占用百分比

from dba_free_space a, dba_data_files b

where a.file_id = b.file_id

and b.tablespace_name = ?

group by b.tablespace_name, b.file_id, b.bytes

order by b.file_id;

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

3、扩展临时表空间:
方法一、增大临时文件大小:

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

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

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

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

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

4、扩展表空间:

方法一、增大表空间文件大小:

alter database datafile '/opt/oracle/oradata/esop/so_data01.dbf' resize 200M;

方法二、将表空间数据文件大小:

alter tablespace users add datafile '/opt/oracle/oradata/esop/so_data02.dbf' size 200M;

5、创建临时表空间

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

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

--查询默认临时表空间
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;

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

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

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

drop tablespace temp1 including contents and datafiles cascade constraints;

8、查看临时表空间的使用情况(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

9、查找消耗资源比较的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

10、查看当前临时表空间使用大小与正在占用临时表空间的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;

11、临时表空间组介绍
  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 <db_name> 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

12、对临时表空间进行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.

转载于:https://my.oschina.net/u/210131/blog/268637

oracle 表空间相关推荐

  1. Oracle 表空间扩容

    2019独角兽企业重金招聘Python工程师标准>>> 1.查询当前表空间使用情况 col FILE_NAME format a50; col SPACE_NAME format a ...

  2. oracle 创建空文件系统,六分钟学会创建Oracle表空间的实现步骤

    经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 select tablespace_name,file_id,blo ...

  3. navcat设置oracle表主键自增_初识 Oracle 表空间设置与管理

    本文出自头条号老王谈运维,转载请说明出处. 前言 表空间是 Oracle 特有的一种逻辑结构,是管理和组织 Oracle 数据文件一种方式,一个Oracle 数据库能够有一个或多个表空间,而一个表空间 ...

  4. Oracle 表空间 创建参数 说明

    一. 表空间的说明 官网的几个链接: Logical Storage Structures http://download.oracle.com/docs/cd/E11882_01/server.11 ...

  5. 六分钟学会创建Oracle表空间的步骤

    经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 select tablespace_name,file_id,blo ...

  6. Zabbix 3.2.6 通过Discovery批量监控Oracle表空间

    一.背景 接到任务,要求对所有数据库的所有表空间进行监控,愿意是遇到表空间不足导致业务数据库的不可用,我们知道通过Zabbix监控Oracle的插件有一些,比如Orabbix或者Pyora,前者通过J ...

  7. zabbix自动发现oracle表空间并监控其使用率

    监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创 ...

  8. oracle导入dmp文件报错12154,oracle表空间的创建及dmp 文件的导入(推荐)

    --用oracle系统权限的账号 登陆 -- 1.创建用户 create user u_name identified by "u_password"; --2.赋予权限 gran ...

  9. oracle表空间于表数据啥意思,初识Oracle表空间与数据文件

    初识Oracle表空间与数据文件,描述oracle数据库的逻辑结构,创建表空间,改变表空间大小,为临时段分配空间,改变表空间状态,改 学习目标 1.描述Oracle数据库的逻辑结构 2.创建表空间 3 ...

  10. oracle查表文件大小,Oracle表空间使用大小查询

    1.查询一个表的物理空间数量:select segment_name,sum(bytes)/1024/1024 from user_extents where segment_type = 'TABL ...

最新文章

  1. 数据分析师的职业规划之路
  2. 8个流行的Python可视化工具包!!!
  3. BZOJ-1257-[CQOI2007]余数之和sum
  4. python查看环境路径
  5. java读取 500M 以上文件,java读取大文件
  6. python 下字符串格式时间比较
  7. Silverlight 5 Beta新特性[3]多窗口支持
  8. php怎样连接mysql_php怎么连接数据库
  9. access的papersize命令_巡检命令及查看参数
  10. 用java语言编写石头剪刀布获胜法_石头剪刀布Java实现
  11. 建议手机电池85%以下去换电池
  12. 动态添加新元素事件无法触发解决方法
  13. vm14远程连接服务器,VisualVM 远程连接服务器
  14. 50个Android开发技巧(02 延迟载入和避免反复渲染视图)
  15. 【Windows】Mathpix Snip-公式神器
  16. python风变编程和扇贝编程_想学习phython ,纠结是扇贝编程还是风变编程?
  17. java 音频波形图_java读取wav文件(波形文件)并绘制波形图的方法
  18. Oracle (08)JDBC
  19. 微信开发JS接口安全域名 网页授权域名 业务域名
  20. 最具影响力30人,托起移动医疗千万市场

热门文章

  1. SpringBoot+El-upload实现上传文件到通用上传接口并返回文件全路径(若依前后端分离版源码分析)
  2. DataGridView怎样实现添加、删除、上移、下移一行
  3. GIt版本回退还不会用?轻松学会不怕失误
  4. Ecplise中的Maven项目提示找不到jar包
  5. 2022年为什么要使用Flutter构建应用程序?
  6. php自定义中文分词方法,PHPAnalysis中文分词类详解
  7. java io nio aio_Java IO、NIO、AIO知识总结
  8. 专家解读:《个保法》下,企业在商业营销中有哪些红线绝不可触碰?
  9. 案例丨神策数据赋能物流服务行业数字化转型
  10. maven——pom.xml