- 浏览: 453561 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhengch00:
这个文档不是你自己写的吧
informatica连接ftp -
ctcwri:
于我心有慽慽焉,java的web就像陷入了泥坑。
Java 的纯真年代已经离我们越来越远了 -
bestxiaok:
Glorin 写道这个应该是你的安装目录tomcat文件夹下面 ...
Value must be an existing directory配置tomcat问题? -
Glorin:
这个应该是你的安装目录tomcat文件夹下面少了一个temp文 ...
Value must be an existing directory配置tomcat问题? -
bestxiaok:
sheep3600 写道bestxiaok 写道sheep36 ...
AES加密解密
以下是在学习中学到的一些关于临时表空间的语句:
--1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)
select tablespace_name,file_name,bytes/1024/1024 "file_size(M)",autoextensible from dba_temp_files;
select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看
--2、改变临时表空间大小
alter database tempfile 'C:\ORADATA\ORCL\TEMP01.DBF' resize 21M;
--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、创建临时表空间:
create temporary tablespace temp01 tempfile 'C:\ORADATA\ORCL\TEMP01.DBF' size 10M;
--5、更改系统的默认临时表空间:
--查询默认临时表空间
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--修改默认临时表空间
alter database default temporary tablespace temp02;
--所有用户的默认临时表空间都将切换为新的临时表空间:
select username,temporary_tablespace,default_tablespace from dba_users;
--更改某一用户的临时表空间:
alter user scott temporary tablespace temp02;
--6、删除临时表空间
--删除临时表空间的一个数据文件:
alter database tempfile 'C:\ORADATA\ORCL\TEMP03.DBF' drop;
--删除临时表空间(彻底删除):
drop tablespace temp 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 'C:\ORADATA\ORCL\TEMP1_01.DBF' size 2M tablespace group group1;
create temporary tablespace tempts2 tempfile 'C:\ORADATA\ORCL\TEMP1_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;
alter database orcl 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 temp02 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、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)
select tablespace_name,file_name,bytes/1024/1024 "file_size(M)",autoextensible from dba_temp_files;
select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看
--2、改变临时表空间大小
alter database tempfile 'C:\ORADATA\ORCL\TEMP01.DBF' resize 21M;
--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、创建临时表空间:
create temporary tablespace temp01 tempfile 'C:\ORADATA\ORCL\TEMP01.DBF' size 10M;
--5、更改系统的默认临时表空间:
--查询默认临时表空间
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
--修改默认临时表空间
alter database default temporary tablespace temp02;
--所有用户的默认临时表空间都将切换为新的临时表空间:
select username,temporary_tablespace,default_tablespace from dba_users;
--更改某一用户的临时表空间:
alter user scott temporary tablespace temp02;
--6、删除临时表空间
--删除临时表空间的一个数据文件:
alter database tempfile 'C:\ORADATA\ORCL\TEMP03.DBF' drop;
--删除临时表空间(彻底删除):
drop tablespace temp 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 'C:\ORADATA\ORCL\TEMP1_01.DBF' size 2M tablespace group group1;
create temporary tablespace tempts2 tempfile 'C:\ORADATA\ORCL\TEMP1_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;
alter database orcl 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 temp02 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。
发表评论
-
JAVA 程序中使用ORACLE 绑定变量( bind variable )
2012-08-17 10:45 28901、为什么要使用绑定变量 (1)SQL语 句硬分 ... -
oracle加 行锁
2012-06-13 13:19 1658加锁是为了防止一些操作而进行的,比如说共享锁,可以防止 ... -
update多列更新
2012-04-05 16:06 1955再ETL的时候,经常会遇到列转换的问题,再对照转换中出现多列更 ... -
oracle数据库间数据快速 复制
2012-03-26 15:59 1994一种利用dblink模式: 1 Create public ... -
Can't open a connection to site 'SYB_BACKUP' 解决办法
2012-02-08 10:56 2064把可能遇到的情况总结一下: 1、出错该错误可以先检查一下Syb ... -
数据库知识:Oracle服务的知识详解
2012-01-06 14:40 1157Oracle数据库的操作中, ... -
UNION替换OR效率测试及总结
2011-11-09 17:11 1118大家在做SQL优化的过程中,可能都知道一个事实:某些情况下使用 ... -
update 多表更新
2011-11-09 15:35 1016在开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件 ... -
ora-00957:duplicate column name
2011-11-07 16:49 2430ora-00957:duplicate column name ... -
Oracle: ORA-01000: 超出打开游标的最大数问题
2011-11-02 09:53 1787java.sql.SQLException: ORA-0100 ... -
几种常用的数据库分页
2011-11-01 22:33 12151.oracle数据库分页 select * from (se ... -
查看当前数据库全表扫描的SQL
2011-07-22 16:07 2119在大数据操作表的时候经常会遇到查询慢的问题,有的时候的确是数据 ... -
oracle flashback闪回技术
2011-07-21 16:13 951今天在操作数据库的时候,由于登陆的时候没有认真看数据库名,导致 ... -
oracle flashback闪回技术
2011-07-21 16:13 925今天在操作数据库的时候,由于登陆的时候没有认真看数据库名,导致 ... -
导入导出csv文件(PL/SQL Developer)
2011-07-13 19:13 2036在运用与数据库有关的操作时,总是会与数据的导入导出打交道。因此 ... -
SQL查询原理及执行顺序
2011-07-06 16:00 6489一、sql语句的执行步骤: 1)语法分析,分析语句的语法是否符 ... -
oracle基本结构
2011-06-29 19:59 1016Oracle服务器=Oracle实例+数据库(物理组件) a ... -
Oracle dba和sysdba的区别
2011-05-18 16:42 1045之前老是把dba和sysdba混为一体,今天看到论坛在讨论两者 ... -
oracle字符串转换
2011-05-04 20:03 1533今天看代码,看到不少代码显示的时候拼接字符串用的是substr ... -
java oracle clob string 大字符串存储
2011-05-03 20:04 7880这几天在在往数据库里更新一个大字符串,忙了好几天终于试出来一个 ...
相关推荐
解决 Oracle 临时表空间满的问题需要通过查看当前数据库的默认临时表空间、查看当前临时表空间的大小、创建新的临时表空间、将新建的临时表空间设置为数据库的默认临时表空间、删除原来的临时表空间、创建新的临时表...
Oracle 临时表空间不足和批处理缓慢问题探讨 本文探讨了 Oracle 临时表空间不足和批处理缓慢问题的原因和解决方法。通过分析和测试,发现了问题的根源在于应用逻辑方面,具体来说是 SQL 语句的编写问题。通过编写...
Oracle 临时表空间是Oracle...总之,理解并正确使用Oracle临时表空间是确保数据库高效运行的关键。通过对临时表空间的合理配置和管理,可以有效地提升数据库的响应速度,降低系统资源消耗,从而优化整体的数据库性能。
### Oracle 临时表空间管理与释放脚本解析 在Oracle数据库管理中,临时表空间(Temporary Tablespace)的管理是一项非常重要的任务。合理的管理和优化临时表空间不仅可以提高系统的性能,还可以帮助解决空间不足等...
### Oracle 临时表空间管理详解 #### 一、概述 Oracle 数据库中的临时表空间主要用于存储临时对象,如排序操作、表连接等过程中产生的临时数据。这些数据在事务结束后会被自动清除,不会占用永久存储空间。正确管理...
oracle查找定位占用临时表空间较大的SQL语句方法,包括:(1)造成临时表空间暴涨的SQL还在运行中(2)造成临时表空间暴涨的SQL已经运行过了。
### Oracle 临时表空间详解 #### 一、Oracle表空间概览 在Oracle数据库系统中,数据被组织成多个逻辑单元,这些单元被称为表空间。每个表空间由一个或多个物理磁盘文件(称为数据文件)组成,并且是数据库中的最高...
在Oracle数据库系统中,表空间(Tablespace)是存储数据对象(如表、索引、视图等)的逻辑单位,而临时表空间(Temporary Tablespace)则用于存储临时数据,比如排序或联接操作产生的中间结果。创建和管理表空间及...
在Oracle数据库系统中,临时表空间是用于存储临时数据的特定区域,这些数据通常由排序、聚合、JOIN等操作产生。当处理大量数据或者运行复杂SQL查询时,临时表空间的作用尤为关键。然而,如果不正确地管理和使用临时...
4. Oracle临时表空间满的问题:当临时表空间的磁盘空间被全部占用后,可能会出现错误消息,例如“ORA-1652: unable to extend temp segment by %s in tablespace %s”。这会导致用户无法完成如排序、并行查询等操作...
然而,当排序区的空间不足时,Oracle会将超出内存容量的临时数据存储到临时表空间中。 临时表空间在数据库操作中扮演着关键角色,尤其是在处理复杂查询和大型数据集时。虽然看似只是临时存储,但实际上它对数据库...
根据题目描述,我们需要对Nagios的check_oracle脚本进行修改,以添加对Oracle临时表空间的监控功能。脚本原版的表空间监控部分是通过查询dba_data_files和dba_free_space表来获取数据,但这两个表并不包含临时表空间...
Oracle中的临时表是一种特殊的数据结构,用于存储会话或事务期间的数据,这些数据仅对当前会话可见,并在特定条件下自动清除。Oracle提供两种类型的临时表:事务型和会话型。 事务型临时表在事务开始时创建,插入的...
直接划一个xxG的裸设备就行 然后执行alter tablespace xxx add datfile '***' size 30000M autoextend off; 建裸设备时,裸设备的大小要大于文件的大小,下面以是建设备system01的命令:
### Oracle 11g 创建临时表空间组 在Oracle 11g R2版本中,引入了临时表空间组的概念,这一特性为数据库管理提供了更大的灵活性。与传统的单个临时表空间相比,临时表空间组允许多个临时表空间协同工作,从而提高...
### Oracle 创建表空间、用户及分配权限详解 在Oracle数据库管理中,创建表空间和用户是常见的基础操作之一。本文将详细介绍如何在Oracle数据库中创建表空间、创建用户并分配相应的权限,以及如何设置表空间的自...
本文档将深入探讨如何在Oracle中创建临时表空间,并介绍一款方便的一键导入、导出工具。 首先,我们来看如何创建临时表空间。在Oracle中,创建临时表空间的SQL语句通常如下: ```sql CREATE TEMPORARY TABLESPACE ...
当Oracle数据库执行涉及排序、连接等操作时,会使用临时表空间来存储临时数据。如果这些操作所需的空间超过了临时表空间的可用空间,就会引发ORA-01652错误。 #### 二、ORA-01652 错误分析 ##### 1. 错误现象 当...
Oracle的临时表空间是数据库系统中的一个重要组成部分,主要用于存储临时数据和执行特定操作时的中间结果。临时表空间在查询优化、数据处理和分析中扮演着关键角色。当执行涉及排序、分组、去重、联合、交集或差集等...
在Oracle中,创建用户并为其分配默认表空间和临时表空间的命令如下: ``` create user abstest identified by abstest default tablespace abs_test temporary tablespace abs_test_temp; ``` 这里,`...