段概述
段(segment)由一组数据扩展(extent)构成,其中存储了表空间内各种逻辑存储结构的数据。例如,Oracle能为每个表的数据段(data segment)分配数据扩展,还能为每个索引的索引段(index segment)分配数据扩展。
数据段简介
在Oracle数据库中,一个数据段可以供以下方案对象(或方案对象的一部分)容纳数据:
1、非分区表或非簇表
2、分区表的一个分区
3、一个簇表
当用户使用CREATE 语句创建表或簇表时,Oracle创建相应的数据段。表或簇表的存储参 数(storage parameter)用来决定对应数据段的数据扩展如何被分配。用户可以使用 CREATE 或ALTER语句直接设定这些存储参数。这些参数将会影响与方案对象(object)相关的数据段的存储与访问效率。
索引段
Oracle 数据库中每个非分区索引(nonpartitioned index)使用一个索引段(index segment)来容纳其数据。而对于分区索引(partitioned index),每个分区使用一个索引段来容纳其数据。
用户可以使用CREATE INDEX语句为索引或索引的分区创建索引段。在创建语句中,用户可以设定索引段的数据扩展(extent)的存储参数(storage parameter)以及此索引段应存储在哪个表空间中。(表的数据段和与其相关的索引段不一定要存储在同一表空间中。)索引段的存储参数将会影响数据的存储与访问效率。
临时段简介
当Oracle处理一个查询时,经常需要为SQL语句的解析与执行的中间结果(intermediate stage)准备临时空间。Oracle会自动地分配被称为临时段 (temporary segment)的磁盘空间。例如,Oracle在进行排序操作时就需要使用临时段。当排序操作可以在内存中执行,或Oracle设法利用索引就执行时,就不必创建临时段。
需要使用临时段的操作:
1、CREATE INDEX
2、SELECT ... ORDER BY
3、SELECT DISTINCT ...
4、SELECT ... GROUP BY
5、SELECT . . . UNION
6、SELECT ... INTERSECT
7、SELECT ... MINUS
有些不能使用索引的关联操作(unindexed join),或者需要在子查询间建立相互关系(correlated subqueries),也可能需要使用临时段(temporary segment)。所以当查询包含DISTINCT ,GROUP BY ,或 ORDER BY 子句时,Oracle有可能使用两个临时段。
临时表及索引使用的临时段
Oracle可以为临时表及其索引分配临时段。临时表中的数据只在会话或事务的运行期内存在。
临时段如何被分配
Oracle为查询(query)与临时表(temporary table)分配临时段(temporary segment)的过程是不同的。
为查下分配临时段
在用户会话(session)期间,如果用户需要,Oracle可以在用户的临时表空间内为用户创建临时段。管理员可以使用CREATE USER 或 ALTER USER 语句中的 TEMPORARY TABLESPACE 子句指定用户默认使用的临时表空间 。
TIPS:用户默认使用的永久表空间(permanent tablespace) 也可以同时被设定为(temporary tablespace)。
在字典管理模式下的表空间,如果没有为用户指定临时表空间,那么默认的临时表空间为 SYSTEM 。同时在$ORACLE_BASE/admin/bdump/alert.log下会有相关的报错信息。临时表空间的默认存储参数决定了临时段的数据扩展如何分配。在语句结束时Oracle负责移除临时段
因为临时段的分配与回收经常发生,所以有必要为创建临时段准备一个专用的表空间。这样可以分流磁盘设备的I/O,也可以减少由于在 SYSTEM 或其他表空间内频繁创建临时段而造成的碎片。
分享到:
相关推荐
Oracle 游标是 Oracle 数据库中的一种重要概念,用于查询数据库,获取记录集合(结果集)的指针。游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、分类、声明方式、...
根据提供的文件信息,我们可以归纳出以下Oracle存储过程的相关知识点: ### Oracle存储过程基础概念 ...以上是基于提供的部分内容对Oracle存储过程进行的总结,包含了从基础概念到具体应用实例的全面解析。
本文将介绍 Oracle 回滚段的概念、用法和规划,并提供多种解决回滚段使用率过高的问题的方法。 一、回滚段概述 回滚段是一种特殊的表空间,它用于存放数据修改之前的值。回滚段的头部包含正在使用的该回滚段事务的...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级数据存储、管理和处理方面具有卓越性能。..."Oracle核心基础总结"文档将帮助你快速回顾和掌握这些关键概念,节省自我研究的时间。
### Oracle基础知识总结初学者必备 Oracle数据库作为一款广泛使用的数据库管理系统,在企业和开发领域扮演着重要的角色。对于初学者而言,掌握其基础知识是非常必要的。本文将根据提供的内容进行深入解析,并结合...
本文将根据"oracle学习总结(适合刚学习oracle的人)"这一主题,深入探讨Oracle数据库的基础知识,帮助初学者建立起对Oracle的基本理解。 1. **Oracle简介**:Oracle数据库是由美国甲骨文公司开发的一款产品,它...
### Oracle概念详解 #### 一、数据库名 (Database Name) **定义:** 数据库名是用于唯一标识一个Oracle数据库的名称,类似于人的身份证号码。它由`DB_NAME`参数表示,并在数据库创建时设置。 **作用:** - **安装...
【Oracle DB优化总结】 在数据库管理系统中,Oracle Database(Oracle DB)因其稳定性和高性能而备受赞誉,但随着数据量的增长,优化数据库性能显得至关重要。本文将深入探讨Oracle DB的优化策略,包括优化器的选择...
8. **安全性**:Oracle支持用户权限管理,如GRANT和REVOKE命令,以及角色的概念。实例将展示如何创建和管理用户,设定访问权限,以及如何使用审计功能来监控数据库活动。 9. **数据库复制**:Oracle的逻辑复制技术...
通过对《Oracle Form 实战总结》的详细分析,我们可以看到文档不仅提供了创建客户化应用的具体步骤,而且还涉及了许多Oracle Forms的核心概念和技术要点。这对于初学者来说是非常宝贵的资料,可以帮助他们更快地掌握...
Oracle 学习总结 Oracle 是一种关系数据库管理系统,由 Larry Ellison 和 Bob Miner 于 1977 年创立。它是一种对象关系数据库管理系统,支持多种编程语言,包括 Java、Python、C++ 等。 一、创建 Oracle 数据库...
本学习总结涵盖了Oracle的入门知识、全套命令及SQL语法,旨在为初学者提供全面的学习材料。以下是对这些主题的详细阐述: 一、Oracle入门总结 Oracle数据库的基本概念包括数据库实例、表空间、数据文件、控制文件、...
本文将针对“Oracle重要知识总结”这一主题,深入探讨Oracle的核心概念、关键技术和实用技巧,结合提供的压缩包文件,包括"oracle官方文档介绍.doc"、"Oracle Flashback 技术总结.doc"以及"Oracle 10g 要点整理 之 ...
这篇笔记总结将深入探讨Oracle的核心概念、关键功能以及常见操作,旨在帮助读者理解和掌握Oracle数据库的关键知识点。 一、Oracle数据库基础 Oracle数据库采用SQL(结构化查询语言)作为其主要的数据交互方式,支持...
这篇文档“Oracle数据库语法总结”旨在为用户提供一个全面的参考指南,帮助理解和掌握Oracle SQL的使用。 1. **数据定义语言(DDL)** - **创建表(CREATE TABLE)**:用于定义表的结构,包括字段名、数据类型、...
逻辑存储则由表空间、段、区和块等概念构成,用于管理和组织数据。理解这些概念有助于优化数据库性能和存储管理。 二、SQL语法与PL/SQL编程 Oracle支持标准SQL语法,包括DML(数据操纵语言)、DDL(数据定义语言)...
在本文中,我们将深入探讨Oracle数据库系统的核心概念、管理和优化技术。 首先,Oracle数据库采用SQL(结构化查询语言)作为其主要的数据操作语言,允许用户进行数据查询、更新、插入和删除等操作。SQL在Oracle中的...
本文将全面总结如何使用Java与Oracle存储过程进行交互。 首先,理解Oracle存储过程的基本概念。存储过程是预编译的SQL语句集合,存储在数据库中,可以接受参数、执行一系列操作并返回结果。它们提高了性能,减少了...