temp表空间的认识

合集下载

c语言中temp的含义

c语言中temp的含义

c语言中temp的含义在C语言的编程中,我们经常会听到一个变量名叫做"temp"。

那么,"temp"是什么意思呢?下面,我将从几个方面来分步骤阐述。

1. 什么是变量首先,我们需要明确一个概念——变量。

变量是指在程序运行时可以改变其值的,用来存储数据或者对象的一种占位符。

在C语言中,变量需要定义后才可以使用。

2. 什么是"temp""temp"是一个变量名,它不是C语言中的关键字或保留字,可以用来命名任何合法类型的变量。

"temp"一般表示一个临时变量(temporary variable),即用来存储临时数据的变量。

3. "temp"的作用在C语言中,常常需要将变量之间的值进行交换或替换,或者涉及到多个变量的计算。

这时,就需要用到一个临时变量来保存数据,以便进行操作。

例如,我们要将变量a和b的值进行交换,可以定义一个临时变量"temp",将a的值赋给temp,再将b的值赋给a,最后将temp的值赋给b。

代码如下:```int a = 10;int b = 20;int temp;temp = a;a = b;b = temp;```在另外一个例子中,我们需要计算两个变量a和b的和,但是不想改变它们的值,这时就可以使用一个临时变量来存储计算结果。

代码如下:```int a = 10;int b = 20;int temp;temp = a + b;printf("The sum of a and b is: %d", temp);```4. "temp"的命名规范在C语言中,变量的命名需要遵循一定的规范。

虽然"temp"不是关键字或保留字,但是它不够具有描述性,不利于代码的可读性和维护性。

因此,建议使用更具描述性的变量名,如"tempValue"、"tmp"等。

ORACLE临时表空间总结

ORACLE临时表空间总结

ORACLE临时表空间总结临时表空间概念临时表空间⽤来管理数据库排序操作以及⽤于存储临时表、中间排序结果等临时对象,当ORACLE⾥需要⽤到SORT的时候,并且当PGA中sort_area_size⼤⼩不够时,将会把数据放⼊临时表空间⾥进⾏排序。

像数据库中⼀些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等都可能会⽤到临时表空间。

当操作完成后,系统会⾃动清理临时表空间中的临时对象,⾃动释放临时段。

这⾥的释放只是标记为空闲、可以重⽤,其实实质占⽤的磁盘空间并没有真正释放。

这也是临时表空间有时会不断增⼤的原因。

临时表空间存储⼤规模排序操作(⼩规模排序操作会直接在RAM⾥完成,⼤规模排序才需要磁盘排序Disk Sort)和散列操作的中间结果.它跟永久表空间不同的地⽅在于它由临时数据⽂件(temporary files)组成的,⽽不是永久数据⽂件(datafiles)。

临时表空间不会存储永久类型的对象,所以它不会也不需要备份。

另外,对临时数据⽂件的操作不产⽣redo⽇志,不过会⽣成undo⽇志。

创建临时表空间或临时表空间添加临时数据⽂件时,即使临时数据⽂件很⼤,添加过程也相当快。

这是因为ORACLE的临时数据⽂件是⼀类特殊的数据⽂件:稀疏⽂件(Sparse File),当临时表空间⽂件创建时,它只会写⼊⽂件头部和最后块信息(only writes to the header and last block of the file)。

它的空间是延后分配的.这就是你创建临时表空间或给临时表空间添加数据⽂件飞快的原因。

另外,临时表空间是NOLOGGING模式以及它不保存永久类型对象,因此即使数据库损毁,做Recovery也不需要恢复Temporary Tablespace。

vba中temp的定义

vba中temp的定义

vba中temp的定义
在VBA中,"temp"通常被用作临时变量的名称。

临时变量在程序执行过程中用于存储临时数值或对象,并且通常在程序的其他部分不需要访问它。

临时变量的命名通常以"temp"开头,以表示它的临时性质。

在VBA中,"temp"可以是任何数据类型,包括整数、浮点数、字符串、对象等。

它可以用于各种用途,例如临时存储计算结果、临时存储用户输入的值、临时存储对象引用等。

临时变量的定义通常发生在程序的局部范围内,例如在子程序或函数内部。

它可以通过使用Dim语句来定义,如下所示:
vba.
Dim temp As Integer.
这将创建一个名为"temp"的整数类型的临时变量。

在VBA中,也可以使用其他关键字来定义临时变量,如Private或Public,以确定其作用域。

除了作为临时变量的名称外,"temp"还可以用作临时工作表或文件的名称。

在处理临时数据或临时文件时,程序员经常使用"temp"作为命名约定,以确保不会与其他重要的工作表或文件发生冲突。

总之,在VBA中,"temp"通常用作临时变量或临时工作表/文件的名称,用于临时存储数据或对象,并且通常具有局部范围。

表空间(TABLESPACE)

表空间(TABLESPACE)

表空间(TABLESPACE)表空间(TABLESPACE)是ORACLE数据库中最大的逻辑结构。

ORACLE数据库是由一个或多个表空间组成的。

它在物理上与磁盘上的数据文件相对应(一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间)。

从物理上说数据库的数据被存放在数据文件中,而从逻辑上说是被存放在表空间中的。

数据库的逻辑配置实际上就是指表空间的配置。

一、表空间概述表空间是ORACLE数据库中最大的逻辑结构。

数据库的所有对象和方案都被逻辑的保存在表空间中。

(一)表空间的特性与作用数据库管理系统(DBMS)是建立在操作系统(OS)基础上的,它的数据也必须存储在各个文件中,如数据文件、重做日志文件、归档日志文件等。

表不是文件,表不是空间。

表空间是组织结构和分配空间的逻辑结构。

除了数据文件之外,控制文件、重做日志文件、归档日志文件等其他文件都不属于任何表空间。

表空间的特性如下:1.一个数据库可以有多个表空间。

可以在数据库中创建、删除表空间;2.一个表空间只属于一个数据库;3.一个表空间必须要有一个数据文件;4.一个表空间的大小等于其中所有数据文件的大小之和。

数据库的大小等于其中所有表空间的大小之和;5.表空间可以被联机和脱机。

SYSTEM表空间不能被脱机;6.表空间可以在读写、只读状态之间切换;7.每个表空间由一个或多个物理存在的操作系统的数据文件组成。

这种数据文件可以具有固定的大小,或允许其自动变大。

可以在表空间中添加、删除数据文件;8.方案对象、表、索引的数据都被存储在表空间的数据文件中。

一个数据文件存储不下,就存储在另一个数据文件中,只要该数据文件是本表空间中的就可以;9.一个用户默认使用一个表空间,但他的不同方案对象的数据可以被存储在不同表空间中;10.一个用户使用的表空间的数量是有一定配额的,不能超出这个配额;11.可以根据使用目的,创建不同类型的表空间,如永久表空间、临时表空间、撤销表空间、大表空间等。

oracle创建表空间详解

oracle创建表空间详解
第六: 段空间的管理方式:
AUTO: 只能使用在本地管理的表空间中. 使用LOCAL管理表空间时,数据块中的空闲空间增加或减少后,其新状态都会在位图
中反映出来。位图使 Oracle 管理空闲空间的行为更加自动化,并为管理空闲空间提供了更好的性,但对含有LOB字段的表不
能自动管理.
4 'D:\ORACLE\ORADATA\ORA92\dd.ora' SIZE 5M
5 EXTENT MANAGEMENT LOCAL
6 UNIFORM SEGMENT SPACE MANAGEMENT
7* AUTO
SQL> /
表空间已创建。
要删除表空间进,可以
MANUAL: 目前已不用,主要是为向后兼容.
第七: 指定块大小. 可以具体指定表空间数据块的大小.
创建例子如下:
1 CREATE TABLESPACE "SAMPLE"
2 LOGGING
3 DATAFILE 'D:\ORACLE\ORADATA\ORA92\SAMPLE.ora' SIZE 5M,
建日志,因此,在创建表空间时,选择 NOLOGGING,以加快表空间的创建速度.
第三: DATAFILE 用于指定数据文件的具体位置和大小.
如: DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M
说明文件的存放位置是 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' , 文件的大小为5M.
如果有多个文件,可以用逗号隔开:
DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M,

详解OracleTemp临时表空间处理方法

详解OracleTemp临时表空间处理方法
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 DESC
以上就是Oracle临时表空间的处理方法,希望会对读者带来帮助。
TS# NAME
---------- ------------------------------
0 SYSTEM
Байду номын сангаас UNDOTBS1
2 SYSAUX
3 TEMP
4 USERS
5 UNDOTBS2
2、执行清理操作
SQL>alter session set events ‘immediate trace name DROP_SEGMENTS level 4’ ;
3、把TEMP表空间回缩一下
SQL>Alter tablespace TEMP coalesce;
注:
这处方法只能针对字典管理表空间(Dictionary Managed Tablespace)。于本地管理表空间(LMT:Local Managed Tablespace),不需要整理的。9i以后只能创建本地管理的表空间。
NAME
———————————————————————
D:\ORACLE\ORADATA\TEST\TEMP01.DBF
SQL> select username,temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE
CREATE TABLESPACE TEST DATAFILE ‘D:\TEST01.dbf’ SIZE 5M EXTENT MANAGEMENT DICTIONARY

DM-表空间

DM-表空间

DM-表空间表空间表空间由⼀个或者多个数据⽂件组成。

表空间的名称不能超过128个字节,单个表空间最多可以添加256个数据⽂件【由 TS_FIL_MAX_ID 静态参数限制每个表空间所⽀持的最⼤⽂件个数,范围(2 ~255)】。

在创建 DM 数据库时,会⾃动创建 5 个表空间:SYSTEM 表空间、ROLL 表空间、MAIN 表空间、TEMP 表空间和 HMAIN 表空间。

1. SYSTEM 表空间:存放了有关 DM 数据库的字典信息,⽤户不能在 SYSTEM 表空间创建表和索引。

2. ROLL 表空间:完全由 DM 数据库⾃动维护,⽤户⽆需⼲预。

该表空间⽤来存放事务运⾏过程中执⾏ DML 操作之前的值,从⽽为访问该表的其他⽤户提供表数据的读⼀致性视图。

3. MAIN 表空间:在初始化库的时候,就会⾃动创建⼀个⼤⼩为 128M 的数据⽂件MAIN.DBF。

在创建⽤户时,如果没有指定默认表空间,则系统⾃动指定 MAIN 表空间为⽤户默认的表空间。

4. TEMP 表空间:完全由 DM 数据库⾃动维护。

当⽤户的 SQL 语句需要磁盘空间来完成某个操作时,DM 数据库会从 TEMP 表空间分配临时段。

如创建索引、⽆法在内存中完成的排序操作、SQL 语句中间结果集以及⽤户创建的临时表等都会使⽤到 TEMP表空间。

5. HMAIN 表空间:属于 HTS (HUGE TABLESPACE) 表空间,完全由 DM 数据库⾃动维护,⽤户⽆需⼲涉。

当⽤户在创建 HUGE 表时,未指定 HTS 表空间的情况下,充当默认 HTS 表空间。

页⼤⼩与表空间容量关系初始化页⼤⼩的选择不仅影响表空间数据⽂件的⼤⼩选择,也会对表中每个字段及每条记录产⽣限制,如下表所⽰:数据库页⼤⼩每个字符类型字段实际最⼤长度(字节)每⾏记录最⼤字段外其他字段总长度(字节)表空间单个数据⽂件最⼩ (MB)/最⼤(MB)4 KB1938204716/8388608 8 KB3878409532/16777216 16 KB8000819564/33554432 32 KB818816176128/67108864单个⽂件的最⼩值为页⼤⼩乘以4096,最⼤值为页⼤⼩乘以2147483647 (即:2^31-1=2147483647)相关参数EXTENT_SIZE:数据⽂件使⽤的簇⼤⼩ (16),可选值: 16、 32、 64,单位:页select para_name, para_value from v$dm_ini where para_name = 'GLOBAL_EXTENT_SIZE';PAGE_SIZE:数据页⼤⼩ (8),可选值: 4、 8、 16、 32,单位: KBselect para_name, para_value from v$dm_ini where para_name = 'GLOBAL_PAGE_SIZE';TS_MAX_ID:限制系统所⽀持的最⼤表空间 ID,有效值范围(512 ~ 65517)。

深入undo和临时表空间

深入undo和临时表空间

深入undo和临时表空间1.什么是undo和临时表空间?要深入首先要知道什么是undo和临时表空间,接下来先对这2个表空间分别做介绍。

1.1什么是undo表空间undo表空间在oracle的归类中化为了永久表空间,同时undo表空间是一个本地管理的表空间,为系统管理的回滚数据保留。

一个数据库可以有多个undo 表空间,但是一次性只能使用一个。

当一个实例试图打开一个数据库的时候,oracle自动选择第一个可用的回滚表空间。

如果没有可用的回滚表空间,那么实例就是在没有回滚表空间的状态启动,并将回滚数据存储在system表空间,当然这是不推荐的做法。

undo表空间在oracle中是为数据库提供读一致性,每次要对数据进行操作的时候数据库会将数据复制一份到undo表空间中,作为BI保存。

以此为基础为oracle的MVCC 算法提供支持。

在此特性中可以查看数据库中多个时间点的不同数据,这一点也算是和临时表空间不同的一点。

总的来说oracle会尽力为回滚数据保留尽可能长的时间,oracle 会收集统计信息数据和回滚表空间的数据来自动调整保留周期。

如果回滚表空间被设置为AUTOEXTEND选项,并且没有指定最大的大小,那么回滚保留就不同了。

此时数据库调整保留周期比执行最长的查询的时间稍微长一点。

但是另外一方面oracle提供了undo表空间的自动管理,这自然也是推荐的方式,该方式数据库会自动的维护回滚段来满足性能需求。

这其中有一个重要的参数undo_retention,该参数指定了数据库会尽力为undo段的保留时间,默认为900秒。

之前说了是尽力,在没有指定guarantee参数的前提下,如果undo表空间不够了,就会不在保留一些undo段。

说到这里又要说undo数据的三种分类(active:正被活动的事务使用,需要保留并用于一致性;unexpired:事务已经完成,但是还没有超过保留期限,在空间不够的情况下就会删除这些信息,并重用;expired:事务已经完成,并且已经过了保留期限。

oracle表空间的概念

oracle表空间的概念

oracle表空间的概念在Oracle数据库中,表空间(Tablespace)是一个逻辑存储单元,用于组织和管理数据库中的数据。

表空间是由一个或多个物理数据文件组成的,这些文件可以位于数据库的不同位置,例如不同的磁盘驱动器或文件系统。

以下是一些与Oracle表空间相关的关键概念:1. 数据文件(Data Files):表空间的物理实体是数据文件,这些文件存储了表空间中的实际数据。

每个表空间可以包含一个或多个数据文件。

2. 段(Segment):表空间中的数据逻辑上分为段。

段是数据库中的基本存储单位,它包括表、索引、簇等。

一个表空间可以包含一个或多个段。

3. 区(Extent):每个段又被划分为若干区,每个区是一组连续的数据库块。

数据库块是数据库中最小的物理存储单位。

4. 块(Block):块是数据库中的最小物理存储单位,通常大小为多个字节。

表空间中的数据文件由块组成,而块是段和区的基本组成单元。

5. 临时表空间(Temporary Tablespace):除了常规的表空间,Oracle还提供了专门用于排序和临时存储的临时表空间。

这些表空间用于处理查询中的排序操作和临时存储。

6. 回滚段(Rollback Segment):在数据库中执行事务时,Oracle需要跟踪事务的变化,以便在需要时进行回滚操作。

为了支持事务的回滚,Oracle使用回滚段来存储修改前的数据。

7. 表空间管理:管理表空间包括创建、修改、删除表空间,以及为表空间添加或移除数据文件。

这些管理任务通常由数据库管理员执行。

8. 表空间的类型:Oracle数据库中有多种类型的表空间,包括数据表空间、临时表空间、回滚段表空间等,每种类型的表空间有不同的用途和特性。

通过合理规划和管理表空间,数据库管理员可以优化数据库的性能、存储管理和数据备份等方面的操作。

sql中temp的用法

sql中temp的用法

sql中temp的用法
在SQL中,TEMP是一个关键字,通常用于创建临时表。

临时表
是在数据库会话期间存在的表,当会话结束时,临时表会自动销毁。

临时表在处理大量数据或需要临时存储中间结果时非常有用。

临时表可以通过以下方式创建:
sql.
CREATE TEMPORARY TABLE temp_table_name (。

column1 datatype,。

column2 datatype,。

...
);
在这里,关键字TEMPORARY用于创建临时表,temp_table_name
是临时表的名称,后面跟着列的定义。

临时表的用法可以包括但不限于以下几个方面:
1. 存储中间结果,在复杂的查询中,可以使用临时表来存储中间结果,以便后续的查询可以使用这些结果,从而提高查询性能。

2. 数据处理,临时表可以用于数据处理,例如在数据清洗、转换或者合并过程中暂时存储数据。

3. 会话特定数据,临时表是会话特定的,不同的数据库会话可以创建同名的临时表而互不影响,这样可以在不同的会话中使用相同的临时表名而不会发生冲突。

需要注意的是,不同的数据库管理系统对TEMPORARY关键字的支持可能有所不同,具体的用法和语法可能会有所差异。

在使用临时表时,还需要注意临时表的作用范围和生命周期,以免出现意外情况。

总的来说,临时表是SQL中一个非常有用的功能,可以帮助我们更好地处理数据和优化查询性能。

希望这些信息能够帮助你更好地理解SQL中临时表的用法。

oracle temp 表空间的回收机制

oracle temp 表空间的回收机制

oracle temp 表空间的回收机制Oracle数据库中的Temp表空间是用于存储临时数据的特殊表空间。

在数据库运行过程中,临时表空间会被频繁使用,因此及时回收临时表空间中的未使用空间非常重要。

本文将从回收机制的原理、回收策略和注意事项等方面对Oracle Temp表空间的回收机制进行详细介绍。

一、回收机制的原理Oracle数据库中的Temp表空间主要用于存放排序、连接等操作的临时数据。

这些临时数据的存储在完成相应操作后会被自动删除,但是由于某些原因(如操作异常结束、事务未提交等),临时数据并没有被完全删除,导致Temp表空间中存在大量未使用空间。

为了避免Temp表空间的空间浪费,Oracle引入了自动回收机制。

Temp表空间的回收机制主要通过两个关键参数来控制,分别是"sort_area_size"和"pga_aggregate_target"。

其中,"sort_area_size"参数用于控制单个排序操作的内存分配大小,而"pga_aggregate_target"参数则用于控制整个实例的PGA内存使用情况。

在进行排序操作时,Oracle会首先尝试使用PGA内存进行排序,如果不够用,则会将部分数据写入到Temp表空间中。

当排序操作完成后,如果Temp表空间中的临时数据没有被完全删除,Oracle会自动回收这些未使用空间。

二、回收策略Oracle数据库提供了两种回收Temp表空间的策略,分别是自动回收和手动回收。

1. 自动回收自动回收是指Oracle数据库根据一定的条件和规则自动回收Temp 表空间中的未使用空间。

Oracle数据库会根据PGA内存的使用情况和排序操作的频率等因素,自动判断是否需要回收Temp表空间。

在自动回收过程中,Oracle会根据一定的回收算法,将Temp表空间中的未使用空间进行整理和释放。

Temp表空间的分配与回收测试

Temp表空间的分配与回收测试

Temp表空间的分配与回收测试_20100410上一篇/ 下一篇 2010-04-24 19:53:10 / 个人分类:Database查看( 265 ) / 评论( 0 ) / 评分( 0 / 0 )Temp表空间的分配与回收机制测试1 Temp表空间的分配与回收机制?贪心法分配机制. 使用完后释放Extents,但仍表示已分配.下一个Session要用时,先从已分配的空间中,先使用,只有不够时,才又再重新申请分配新的Extents.直到没有Extent可用,则报错:ORA-01652: unable to extend temp segment by 128 in tablespace TEMP 这其实就是Extent的分配机制,只是在临时表空间上的应用而已.2 哪些动作会占用到temp表空间DISK Sort, Temporary Table, Direct write/read path. Create table xx as select * from xx;3 临时表空间的相关视图:3.1 临时表空间的基本信息dba_tablespacesselect tablespace_name, block_size,initial_extent, next_extent, pct_increase,MAX_EXTENTS,status,extent_management,SEGMENT_SPACE_MANAGEMENTfrom dba_tablespaces where tablespace_name='TEMP';3.2 临时文件的信息dba_temp_filescol file_name format a40;select file_name, file_id, tablespace_name, bytes/1024/1024,autoextensible, maxbytes/1024/1024, user_bytes/1024/1024 from dba_temp_files;V$TEMPFILEcol name format a40;select FILE#, NAME,BYTES/1024/1024,STATUS from V$TEMPFILE;3.3 查看临时文件使用率V$TEMP_SPACE_HEADERThis view displays aggregate information per file per LOCALLY MANAGED temporary tablespaceregarding how much space is currently being used and howmuch is free as identified in the space header.select TABLESPACE_NAME,file_id,(bytes_used+bytes_free)/1024/1024 "size_total(mb)",bytes_used/1024/1024,bytes_free/1024/1024from V$TEMP_SPACE_HEADER;bytes_used应理解为用过的.bytes_free应理解为没用过的.3.4 查看正在使用的sort segment V$SORT_SEGMENTselect tablespace_name, CURRENT_USERS,TOTAL_EXTENTS,USED_EXTENTS,FREE_EXTENTS from v$sort_segment;3.5 查看哪个用户的哪个语句在使用sort segment,使用了多少, V$SORT_USAGE=v$tempseg_usage select ername, a.SESSION_NUM,b.sql_text, a.segfile#, a.segblk# "Begin block number", a.extents , a.blocks, a.TABLESPACEfrom v$tempseg_usage a, v$sqlarea bwhere a.SQLHASH = b.hash_value;3.6 测试SQL> select tablespace_name, initial_extent, next_extent/1024/1024, pct_increase fromdba_tablespaces where tablespace_name='TEMP';TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT/1024/1024 PCT_INCREASE------------------------------ -------------- --------------------- ------------TEMP 1048576 1 0EXTENT SIZE=1Mv$sort_segment 中记录的是当前使用的Sort Segment空间大小.但这里记录的是已分配的.即: 当一个SQL语句需要使用Sort Segment时,Oracle会分配相应的Extent给这个会话使用.1) 假定最开始执行查询语句: select count(*) from test group by name; 前:col tablespace_name format a20;select tablespace_name,CURRENT_USERS,TOTAL_EXTENTS total,USED_EXTENTS used,FREE_EXTENTS free, FREED_EXTENTS unallocated from v$sort_segment;TABLESPACE_NAME CURRENT_USERS TOTAL USED FREE UNALLOCATED-------------------- ------------- ---------- ---------- ---------- -----------TEMP 0 0 0 0 0表示当前没有已分配的Extent.2) 执行select count(*) from test group by name; 查询语句时:col tablespace_name format a20;select tablespace_name,CURRENT_USERS,TOTAL_EXTENTS total,USED_EXTENTS used,FREE_EXTENTS free, FREED_EXTENTS unallocated from v$sort_segment;TABLESPACE_NAME CURRENT_USERS TOTAL USED FREE UNALLOCATED-------------------- ------------- ---------- ---------- ---------- -----------TEMP 0 0 0 0 0还是0,表明排序过程中没有用到Sort Segment.全部在内存中就完成,通过Statspack生在报告可以发现Sorted In-Memory 100%.在排序的过程中,分配的Extent一直在增长.用多少,分配多少.TABLESPACE_NAME CURRENT_USERS TOTAL USED FREE UNALLOCATED-------------------- ------------- ---------- ---------- ---------- -----------TEMP 1 295 295 0 0SQL> /TABLESPACE_NAME CURRENT_USERS TOTAL USED FREE UNALLOCATED-------------------- ------------- ---------- ---------- ---------- -----------TEMP 1 312 312 0 03) 执行select count(*) from test group by name; 查询语句完成后:col tablespace_name format a20;select tablespace_name,CURRENT_USERS,TOTAL_EXTENTS total,USED_EXTENTS used,FREE_EXTENTS free, FREED_EXTENTS unallocated from v$sort_segment;TABLESPACE_NAME CURRENT_USERS TOTAL USED FREE UNALLOCATED -------------------- ------------- ---------- ---------- ---------- -----------TEMP 0 399 0 399 0排序完成后,全部归还.used=0, Total为已分配的Extent个数.5) 增加Sort Segment的需求量insert into test select * from test;commit;执行select count(*) from test group by object_name; 查询语句:col tablespace_name format a20;select tablespace_name,CURRENT_USERS,TOTAL_EXTENTS total,USED_EXTENTS used,FREE_EXTENTS free, FREED_EXTENTS unallocated from v$sort_segment;会分配更多的Extent.SQL> /TABLESPACE_NAME CURRENT_USERS TOTAL USED FREE UNALLOCATED -------------------- ------------- ---------- ---------- ---------- -----------TEMP 2 593 593 0 0SQL> /TABLESPACE_NAME CURRENT_USERS TOTAL USED FREE UNALLOCATED -------------------- ------------- ---------- ---------- ---------- -----------TEMP 0 798 0 798 06) 重启后.SQL> select tablespace_name,CURRENT_USERS,TOTAL_EXTENTS total,USED_EXTENTS used,FREE_EXTENTS free,FREED_EXTENTS unallocated from v$sort_segment;TABLESPACE_NAME CURRENT_USERS TOTAL USED FREE UNALLOCATED-------------------- ------------- ---------- ---------- ---------- -----------TEMP 0 798 0 798 0已分配的Extent不会回收,已分配与使用完全不是一个概念.4 问题记录ASK Tom Question and answer about Temporary tablespace.Q1: When user is doing sort operation.oracle first do sort in memory(sort_area_size) and if the space is not enough it go to temporary tablespace(if temp tablespace is TEMP) and create TEMP SEGMENT for sorting.Once process is done with sorting oracle deallocate extents.Answer:The extents are managed internally -- once we allocate them (like RBS) we don't give them back (there is no "shrink" for temp). You will find the temp space only "stays the same size or grows", it does not shrink. The expense of allocating the extent is removed in this fashion.As a normal behaviour all the used temporary space/segments should be released automatically upon the instance shutdown & startup, ..this is false. once allocated - temp stays allocated forever.Q2: As far as i konw we only create TEMP tablespace ,How Sort segment are created? and how many sort segment(max) can be in a database.A: You can have as many TEMP tablespaces as you want -- one is typical, dozens can be made – they would each have a temp segment. We also create temp segments when doing some operations like CREATE TABLE AS SELECT -- these temp segments are destined to become permanent ones when the operation is done.(First Session need to disk sort. One sort segment for one tablespace)Q3: If many session are performing sort operation,will it user only one sort segment or each sort session will have their own sort segment.A: one sort segment, many extents -- each extent used by a session.(one Sort Segment,Different Extents)Q4: What is the unit of measurment(i.e bytes or block etc..) of the following V$SYSSTAT parameter.A: none of the above -- it is not bytes or blocks -- it is a cardinality representing the number of times you sorted or the number of rows.Q5: How we konw sort segment is releasing Space or not.A: Select * from v$sort_usage;Q6: V$temp_space_header and V$sort_segment 在空间大小上的矛盾?A: v$temp_space_header shows you the usage of the temp files forever (as long as they've been around).As SOME POINT in the past, you used that many blocks from each file (those blocks were touched). You shutdown and restarted -- clearing out v$sort_usage (but not v$temp_space_header as that one is based on the tempfiles themselves)So, in short, v$temp_space_header and v$sort_segment are not supposed to reconcile with each other. The blocks in temp_space_header are the total number of "initialized" blocks in the tempfiles.The blocks in sort_segment are the total number of allocated and usable blocks.You cannot really compare these views as you are trying.Q7: Do there any relationship between SORT_AREA_SIZE parameter values and TEMPORARY TABLESPACE extent size?A: your extent size in temp should be a multiple of the sort_area_sizes you use. (8i,9以上好像没这个要求)Q8: What are the errors ORA-1630 & ORA-1652, i could not find proper oracledocumentation for these errors ?A: both are documented in the Server Messages guide/docs/cd/A58617_01/server.804/a58312/newch225.htm#17574The unix command line utility oerr would tell you:$ oerr ora 163001630, 00000, "max # extents (%s) reached in temp segment in tablespace %s"// *Cause: A temp segment tried to extend past max extents.// *Action: If maxextents for the tablespace is less than thethe system// maximum, you can raise that. Otherwise, raisepctincrease for the// tablespace$ oerr ora 165201652, 00000, "unable to extend temp segment by %s in tablespace %s"// *Cause: Failed to allocate an extent for temp segment intablespace.// *Action: Use ALTER TABLESPACE ADD DATAFILE statement to addone or more// files to the tablespace indicated.Q9: What is the concept of temp segment in a tablespace which is going to storetables and indexes alone? Should it not be TEMP tablespace which store tempsegments?A: during the creation of those objects(Index, tables) -- temporary extents were allocated to "create them". After their creation -- these temporary extents would be converted into realextents and given to the table. During the "create phase", they are temporary -- when the entire thing is built -- they will become permanent.(创建某些对象的时候先在临时表空间上创建,最后再变永久的.)Q10: When session are done with sorts,does values sorts (memory) sorts (disk) sorts (rows) for this parameter goes down?A:sort(disk) will never go down until the server is rebooted. v$sysstat is a cumulative counter table. sorts(rows)什么意思?排序的况行数.。

temp表空间99.9%

temp表空间99.9%

先了解一下,在临时表空间中的临时段的分配和释放机制The temporary (sort) segment of a given temporary tablespace iscreated at the time of the first sort operation, which has to writeto disk to free up sort space in memory. The first disk sort (afterinstance startup) creates a sort segment in the temporary tablespace.Multiple transactions which need a sort on disk, can share the samesort segment, however, they cannot share the same extent. The sortsegment expands by allocating new extents. The sort extents are notde-allocated while the instance is running, but are marked as freeand can be re-used as required. Therefore, the sort segment grows toa certain steady state. The Oracle server stores the informationabout the sort segment in the Sort Extent Pool (SEP), a part of theSystem Global Area (SGA). Every statement that needs to sort in thetemporary tablespace checks this part of the SGA for free extents.Because the extents do not have to be allocated and de-allocatedafter each operation, you will benefit an overall database performanceincrease.你应该计算你的数据库所需要的排序段大小,这样便于你在创建临时表空间时设置数据文件的大小。

Oracle 10gTEMP表空间和UDNO表空间的处理

Oracle 10gTEMP表空间和UDNO表空间的处理

Oracle 10gTEMP表空间和UDNO表空间的处理在实际工作过程中,如果有巨量的排序、对比等操作,都会造成 TEMP UNDO两个表空间的迅速增长, 但是Oracle又采用的是贪心策略,即占有了的空间,他就不再释放,所以,一段时间之后,就需要释放重建这2个表空间。

先说TEMP表空间方法一:对于临时表空间,可以用resize修改其空间,但是前提是其中没有数据或不是正在使用;SQL> ALTER database TEMPFILE '/u01/app/oracle/database/oradata/Bondex/temp01.dbf' resize100M ;ALTER database TEMPFILE '/u01/app/oracle/database/oradata/Bondex/temp01.dbf ' resize 100MORA-03297: file contains used data beyond requested RESIZE value出现这样的提示,说明该表空间里还有数据不能立即resize.只能等到其中没有数据才可以 resize了方法二:对于其中有数据的表空间,则可以采取替换的方法:SQL> create temporary tablespace TEMP1 tempfile '/u01/app/oracle/oradata/BXG/temp02.dbf' size 200M;Tablespace created.SQL> alter database default temporary tablespace TEMP1;Database altered.SQL> drop tablespace TEMP including contents and datafiles;Tablespace dropped.新建后的表空间因为没有数据,就可以再resize了SQL> alter database tempfile '/u01/app/oracle/oradata/BXG/temp02.dbf' resize 100M;Database altered.----------------------------------------------再看UNDO表空间,UNDO表空间就没有resize了,直接重建1创建新的undo表空间SQL> CREATE UNDO TABLESPACE undotbs DATAFILE ‘/oracle/app/oracle/oradata/ora10g/undo01.dbf‘ SIZE 100M ; Tablespace created.2。

TMP、TEMP和TMP文件区别解析

TMP、TEMP和TMP文件区别解析

TMP、TEMP和TMP文件区别解析总是发现很多tmp和temp等缓存文件,不懂为什么要那么多区别,看了下文,感觉不错大家在使用Windows操作系统的时候,可能会经常在C盘根目录发现一些后缀名为TMP的文件,还会在Windows目录里发现一个TEMP的目录。

一些刚接触电脑的用户可能会觉得莫明其妙,这是什么东西来的,我没建立过这样的文件啊!其实,这是Windows产生的临时文件,本质上和虚拟内存没什么两样,只不过临时文件比虚拟内存更具有针对性,单独为某个程序服务而已。

还有,如果您是使用WORD编辑文档,也会在WORD的安装目录里发现一批~开头的,TMP结尾的文件,这是WORD产生的临时文件,但如果你的WORD还没关闭,想删除它们,却可能会发现怎么都删除不了,系统反复提示读写保护,这又如何是好呢?下面就综合谈谈这些临时文件及处理的办法:一般来说,你当前运行着大型的工具软件的时候,都不应该去碰临时文件,比如Photoshop 会在处理图形时候产生巨大的临时文件,如果你认为这不是你创建的文件企图删除,可能会导致Photoshop死机。

你当前没有运行程序的话,发现的临时文件都可以删除,以免它们天长日久堆积如山,占据磁盘空间还是小事,关键是它们又多又散乱,会给磁盘扫描整理带来时间上的无谓消耗,也可能会造成文件分配表混乱,导致文件交叉链接的错误。

但是不能所有的临时文件都一概而论。

比如,C盘根目录的TEMP目录,是很多工具程序临时文件的指向目录,没有这个目录的话,临时文件无法创建,这些工具软件就很可能会出错,所以要删除的话,只应该清空里面的临时文件垃圾,而不能把TEMP这个目录都干掉了;Windows里通常也有一个TEMP文件,是系统默认的临时文件的放置地方,也不建议连目录都删除了,定期清空里面的垃圾即可。

还有就是WORD安装目录里的临时文件,在你使用WORD的时候,不要去删除它们,这些~开头,TMP结尾的文件是WORD程序工作要用到的,多处于读写保护状态,你想删除它们也删除不了;如果你在使用WORD时候死机,下次开机进入Windows的时候,也不要先删除它们,应该打开WORD,WORD会从这些临时文件里读取上次你死机时候最新保存的结果,让你最大限度地恢复上次的工作。

Temp1,Temp2,Temp3什么意思?

Temp1,Temp2,Temp3什么意思?

Temp1,T emp2,Temp3什么意思?Q&A写信至责任编辑的信箱或者tougao~.)cnitiCorn往明’大师答疑”.与《微型计算机》的编辑和读者们一起来分享你的经验……本刊特邀嘉宾解答在计算机使用过程中会遇到各种各样的故障.如何才能解决?计算机知识千头万绪,如何才能更快地学习硬件?一些奇妙的想法,一点对知识的感悟,如何和大家一起分享?生产线越新,液晶面板就越好吗?最近在购买液晶显示器的时候遇到一个问题,据经销商介绍说,某款显示器使用的是第5代面板,但据我所知,现在面板都到第7代了,是不是液晶面板的生产线越新,品质就越好呢?这里面没有必然的联系,因为液晶面板的生产线主要是以生产时原始基板的尺寸大小来区别.每次生产线进行升级之后,可以使用更大的玻璃基板来生产液晶面板,因此在切割的时候就比较灵活,在产量和成本控制上更有优势.投入一条生产线要花费大量的资金,因此我国国内的生产线以技术比较成熟的第5代生产线居多.液晶面板的品质并不是由第几代生产线决定的,同样的生产线生产出来的面板尺寸也要分为好几个等级;当然,越新的生产线代数代表越先进的生产能力,其良品率要相对高一些.不能单纯用第几代生产线来衡量液晶面板的品质.(重庆悠悠假期)鼠标线越粗就越好吗?在电脑城里看上一款鼠标,做工很好,但是鼠标线却细得可怜.我觉得粗一点的鼠标线信号可能会好一些,强度也要高一些,是不是这样呢?原则上你的想法是正确的,如果鼠标线里面的铜导线越粗,信号的衰减就越小也不容易断线.但是这种情况并不绝对,现在的鼠标线线芯都很细,外面套着一层尼龙丝,鼠标线的强度主要靠这层尼龙丝来支撑;最后在尼龙丝的外面是橡胶层,可以很薄也可以很厚,主要起到绝缘和保护的作用.所以鼠标线的强度不能单靠”粗细”来衡量,在选择产品的时候,如果是大厂的产品可以放心的选择;但如果是没有听说过的杂牌产品,还是买粗一些的比较稳妥.(河北Rock猫)液晶电视,还是液晶显示器+电视盒?现在市场上的液晶显示器和液晶电视都很便宜130NO.19.2005MicroComputer硬派讲堂了,我想购买一套放在家里看电视,但是究竟该购买液晶电视还是液晶显示器加一个电视盒,请问二者到底有何区别?液晶电视和液晶显示器在显示效果方面有很大的差异.首先是亮度和对比度,液晶电视为电视信号做过优化,亮度可以达到500流明甚至更高,对比度可以做到l000:l,更适合人眼的观看习惯;而液晶显示器亮度只有300流明,对比度通常只有500:l左右.其次是画面质量,液晶电视所使用的面板显示颗粒比较大,这样看起来要粗糙一些,分辨率一般只有800×600,只适合看电影或者图片, 不适合用作文字处理;液晶显示器则要清晰得多.所以如果多数时间只是用作看电视的话,建议选购液晶电视;如果作为两用显示器,就应该选择液晶显示器加电视盒的方案.(上海Pizza)Templ,Temp2,Temp3什么意思?我在前面的几期《微型计算机》上看到一篇关于用CPUC00I监测温度的文章,上面有三个选项Temp1.Temp2,Temp5,请问这三个温度探测的是哪里的温度呢?Tempi和Temp2两个数值均为预埋在CPU内部的半导体二极管测量的CPU温度,Templ的测温位置更加靠近核心,是真正的核心温度,变化幅度较大,用于报警和自动温度控制;Temp2的测量位置距离核心相对较远,仅用于显示CPU温度;Temp3是焊接在主板上的热敏电阻的测量结果, 代表机箱内的环境温度,有些主板用它来控制机箱风扇的转速.(安徽A van)系统提示硬盘未被格式化,如何处理?在使用计算机的过程中突然停电,来电之后发现访问E盘时提示”磁盘未被格式化”,但是其它盘正。

temp[]的用法

temp[]的用法

temp[]的用法Temp[]是一种非常常见的编程技术,它通常用于需要临时存储一些数据或计算结果的情况。

在本文中,我们将探讨Temp[]的用法,并介绍一些使用Temp[]的最佳实践。

Temp[]的定义在计算机科学中,Temp[]是一个简单的数组,通常用来存储计算结果或临时数据。

这个数组的大小通常与需要存储的数据类型相关。

例如,如果我们需要存储10个整数,则我们可以使用一个大小为10的整数数组。

Temp[]的用途Temp[]通常用于以下几个方面:1. 存储计算结果有时候,我们需要进行一些计算并得出结果。

在这种情况下,我们可以使用Temp[]数组来存储结果,以便稍后使用。

例如,假设我们需要计算一个数字列表的平均值。

我们可以使用Temp[]数组来保存所有数字的总和,并在计算平均值时使用它。

2. 存储临时数据在程序执行的过程中,我们可能需要保存一些中间结果,这些结果可以在稍后的操作中使用。

Temp[]数组是一个很好的选择来存储这些结果。

例如,我们可以使用Temp[]数组来存储一组数据的排序结果,以便稍后检索。

3. 存储状态信息Temp[]数组还可以用于存储程序的状态信息。

例如,我们可以使用Temp[]数组来跟踪程序的进度或存储程序的配置信息。

Temp[]的最佳实践以下是一些使用Temp[]数组的最佳实践:1. 使用恰当的数据类型在使用Temp[]数组时,我们应该确保选择恰当的数据类型。

如果我们需要存储一个整数列表,我们应该使用整数数据类型的Temp[]数组。

如果我们需要存储一个浮点数列表,我们应该选择浮点数数据类型的Temp[]数组。

2. 指定数组大小在声明Temp[]数组时,我们应该确保指定数组的大小。

这可以确保我们不会在运行时遇到数组过大或过小的问题。

如果数组的大小可能会改变,我们应该在编程时处理这个问题。

3. 调用时检查数组范围在访问Temp[]数组中的元素时,我们应该确保检查数组的范围。

这可以确保我们不会访问数组范围之外的元素,从而避免出现崩溃和其他错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle Temp 临时表空间分类:Oracle 基础知识2009-10-19 11:27 1423人阅读评论(0) 收藏举报一. Temporary Tablespacs 说明A temporary tablespace contains transient data that persists only for the duration of a session. No permanent schema objects can reside in a temporary tablespace. The database stores temporary tablespace data in temp files.Temporary tablespaces can improve the concurrency of multiple sort operations that do not fit in memory. These tablespaces also improve the efficiency of space management operations during sorts.When the SYSTEM tablespace is locally managed, a default temporary tablespace is included in the database by default during database creation. A locally managed SYSTEM tablespace cannot serve as default temporary storage.-- 本地管理的system 表空间,不能作为默认的临时表空间。

You cannot make a default temporary tablespace permanent. You can specify a user-named default temporary tablespace when you create a database by using the DEFAULT TEMPORARY TABLESPACE extension to the CREATE DATABASE statement. If SYSTEM is dictionary managed, and if a default temporary tablespace is not defined atdatabase creation, then SYSTEM is the default temporary storage. However, the database writes a warning in the alert log saying that a default temporary tablespace is recommended.-- 当SYSTEM 表空间是数据字典管理时,并且没有定义默认的临时表空间,那么SYSTEM 表空间会作为默认的temporary storage。

关于表空间的两种类型: locally managed 和 dictionary managed的区别,参考我的Blog:Oracle 自动段空间管理(ASSM:auto segment space management)/tianlesoftware/archive/2009/12/07/4958989.asp xA temporary tablespace contains schema objects only for the duration of a session. Locally managed temporary tablespaces have temporary files (temp file s), which are special files designed to store data in hash, sort, and other operations.Temp files also store result set data when insufficient space exists in memory.Temp files are similar to permanent data files, with the following exceptions:(1)Permanent database objects such as tables are never stored in tempfiles.(2)Temp files are always set to NOLOGGING mode,which means that they never have redo generated for them. Media recovery does not recognize temp files.(3)You cannot make a temp file read-only.(4)You cannot create a temp file with the ALTER DATABASE statement.(5)When you create or resize temp files, they are not always guaranteed allocation of disk space for the file size specified. On file systems such as Linux and UNIX, temp files are created as sparse files. In this case, disk blocks are allocated not at file creation or resizing, but as the blocks are accessed for the first time. Caution:Sparse files enable fast temp file creation and resizing; however, the disk could run out of space later when the temp files are accessed.(6)Temp file information is shown in the data dictionary view DBA_TEMP_FILES and the dynamic performance view V$TEMPFILE, but not in DBA_DATA_FILES or the V$DATAFILE view.临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。

当oracle里需要用到sort的时候,PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间,正常来说,在完成Select语句、create index等一些使用TEMP 表空间的排序操作后,Oracle是会自动释放掉临时段的。

注意这里的释放,仅仅是将这些空间标记为空闲,并可重用,真正占用的磁盘空间并没有释放。

所以Temp表空间可能会越来越大。

排序是很耗资源的,Temp表空间满了,关键是优化你的语句,尽量使排序减少才是上策.二. Temp 表空间的操作You cannot use the ALTER TABLESPACE statement, with the TEMPORARY keyword, to change a locally managed permanent tablespace into a locally managed temporary tablespace. You must use the CREATE TEMPORARY TABLESPACE statement to create a locally managed temporary tablespace.You can use ALTER TABLESPACE to add a tempfile, take a tempfile offline, or bring a tempfile online, as illustrated in the following examples:ALTER TABLESPACE lmtempADD TEMPFILE '/u02/oracle/data/lmtemp02.dbf' SIZE 18M REUSE; SQL>ALTER TABLESPACE lmtemp TEMPFILE OFFLINE;SQL>ALTER TABLESPACE lmtemp TEMPFILE ONLINE;Note:You cannot take a temporary tablespace offline. Instead, you take its tempfile offline. The view V$TEMPFILE displays online status for a tempfile.-- 不可以将Temp 表空间offline,但是可以将tempfile offline。

V$TEMPFILE 显示了tempfile 的状态。

The ALTER DATABASE statement can be used to alter tempfiles.The following statements take offline and bring online tempfiles. They behave identically to the last two ALTER TABLESPACE statements in the previous example.SQL>ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' OFFLINE; SQL>ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' ONLINE; The following statement resizes a tempfile: -- resize 表空间SQL>ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' RESIZE 18M;The following statement drops a tempfile and deletes its operating system file:SQL>ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' DROP INCLUDING DATAFILES;-- drop tempfile 和它的物理文件。

相关文档
最新文档