Heim Datenbank MySQL-Tutorial 临时表空间(Temporary Tablespace)相关

临时表空间(Temporary Tablespace)相关

Jun 07, 2016 pm 05:23 PM

Temporary Tablespace 用于存放瞬时数据,只有在session连接期间才能够看到数据。Permanentobject无法创建在temporarytablespace

Temporary Tablespace

Temporary Tablespace 用于存放瞬时数据,只有在session连接期间才能够看到数据。Permanentobject无法创建在temporarytablespace中。

空间利用原理:

它不会由smon来监控、回收空间。而是使用SEP(Sort Extent Pool)来记录空闲的extent。

在OracleDatabase创建数据库的时候会自动的创建默认临时表空间,并且临时表空间的类型是 Locally Managed Temporary Tablespace with Tempfile 。

Temporary File

本地管理临时表空间拥有temp file,它是为存放hash数据、排序数据等而设计的文件。Temp file同样在超出memory大小后存储结果集的数据。

TemporaryFile在创建的时候,就像一个稀疏文件,不会占用磁盘空间。只有当第一次使用的时候才会在其中创建temporary segment,分配disk block。

Temp file 与 通常的数据文件(permanent data file)有如下不同点:

1.      持久化数据库对象比如说通常的表,不会存放于temp file中。

2.      temp file 通常是nologging状态。

3.      无法将temp file置于read-only状态(无法write,,temp file将没有意义)。

4.      无法使用alter database创建 temp file 。

5.      无法保证temp file的大小,就像UNIX系统下的sparse files 。稀疏文件解释请看附录1。

6.      查询temp file的视图也和普通数据文件视图不一样,是在dba_temp_files和v$tempfile中。

Temporary Segment

执行查询的过程中,oracle db通常需要临时工作空间。通常来说,sorting、hashing、merging bitmaps都需要用到临时段。当创建一个索引的时候,oracle db 同样将索引segment放在临时segemnt中,然后索引创建完之后转换为持久化index segment。

如果操作可以在内存中完成,那么oracle db不会使用临时segment。不管怎样如果memory不可用,那么数据库自动的分配一个在存储磁盘上面的临时segment。

临时segement的改变不会记录在online redo log中,除了那些在临时段上面的空间管理操作。

Temporary table

临时表中的数据,只保证存在于事务或者会话当中(取决于定义信息)。数据在会话当中是私有的,也就是说其他的会话只能看到自己会话内更改的数据。

在创建临时表的时候,只需要指定临时表的生命周期范围,事务 or 会话 有效,而不需要指定它的存储参数,创建一个临时表,其实只是创建了临时表的定义信息。只有当在session内第一次插入数据的时候,才会在用户相应的临时表空间内非配temporary segment(一个segment可以被多个用户使用,只是分配各自的extent)。

临时表通常只有定义信息,并且数据存放是动态的。可以存放于同一个temporary tablespace , 也可以是不同的。比如user 1 default temporary tablespace 为temp 1 ,user 2 为temp 2 ,那么u1 存储临时数据到 temp1 中,u2 存储临时表数据到temp2 中。

虽然临时表数据的存储是动态的,但是因为临时表的定义信息是静态的,所以也可以创建索引在临时表上,数据的存放也与临时表类似,在第一次使用的时候分配临时segemnt。当然,也可以创建视图、触发器在临时表上。

什么时候需要使用Temporary Tablespace

首先就是当使用临时表的时候多个用户会共享使用一个temporarysegment,还有hashing,bitmap merge,然后就是排序操作了,当操作需要使用的内存空间大于sort_area_size的时候,就会使用临时表空间做为临时存储,进行排序操作,以下是需要排序的操作,也就是说有可能使用临时表空间的操作。

- Index creation.

创建索引的时候,服务器进程在构建tree之前按照索引值排序好(这可能会在临时表空间中进行)。排序完成后,会在indextablespace中使用临时segment构建最终的index,一旦索引构建结束,segment type改变为index 。(如果创建index失败,则需要smon来负责清理这些index tablespace中的临时空间)

- ORDER BY or GROUP BY clauses of SELECTstatements.

- DISTINCT values of SELECT statements.

需要排序来消除重复值

- UNION, INTERSECTor MINUS operations.

因为需要消除重复值,所以需要排序操作(这里不包括unionall)

- Sort-Merge joins.

如果没有索引可用,一个等值连接需要分别执行全表所描和排序操作。然后排序好的rowsource会被合并在一起,取出两个rowsource 中匹配的行。

- Analyze command execution.

分析、收集统计信息的时候会需要排序操作。优化器需要收集的统计信息在附录2

-Others

比如说创建主键,createtable as select 等操作。

linux

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Mar 18, 2025 pm 12:01 PM

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]

Wie behandeln Sie große Datensätze in MySQL? Wie behandeln Sie große Datensätze in MySQL? Mar 21, 2025 pm 12:15 PM

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

Erläutern Sie InnoDB Volltext-Suchfunktionen. Erläutern Sie InnoDB Volltext-Suchfunktionen. Apr 02, 2025 pm 06:09 PM

Die Volltext-Suchfunktionen von InnoDB sind sehr leistungsfähig, was die Effizienz der Datenbankabfrage und die Fähigkeit, große Mengen von Textdaten zu verarbeiten, erheblich verbessern kann. 1) InnoDB implementiert die Volltext-Suche durch invertierte Indexierung und unterstützt grundlegende und erweiterte Suchabfragen. 2) Verwenden Sie die Übereinstimmung und gegen Schlüsselwörter, um den Booleschen Modus und die Phrasesuche zu unterstützen. 3) Die Optimierungsmethoden umfassen die Verwendung der Word -Segmentierungstechnologie, die regelmäßige Wiederaufbauung von Indizes und die Anpassung der Cache -Größe, um die Leistung und Genauigkeit zu verbessern.

Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Wie lassen Sie eine Tabelle in MySQL mit der Drop -Tabelle -Anweisung fallen? Mar 19, 2025 pm 03:52 PM

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Wie repräsentieren Sie Beziehungen mit fremden Schlüsseln? Mar 19, 2025 pm 03:48 PM

In Artikeln werden ausländische Schlüssel zur Darstellung von Beziehungen in Datenbanken erörtert, die sich auf Best Practices, Datenintegrität und gemeinsame Fallstricke konzentrieren.

Wie erstellen Sie Indizes für JSON -Spalten? Wie erstellen Sie Indizes für JSON -Spalten? Mar 21, 2025 pm 12:13 PM

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.

See all articles