Oracle 12c: Temporary Tablespace Groups & Pluggable Databases

14. Juli 2014 Aus Von Markus Flechtner

Wie häufig, beantworte ich mal wieder Fragen von Kurs-Teilnehmern durch einen passenden Blog-Eintrag.

Heute kam die Frage auf, ob denn in einer Pluggable Database “temporary tablespace groups” möglich sind.
In der “klassischen Oracle-Architektur” erlauben diese, die Last bei Sortiervorgängen in großen Datenbanken zu verteilen. Wenn ein User sich mehrfach an die Datenbank anmeldet, dann können die Sortieroperationen unterschiedlicher Sessions in unterschiedlichen Tablespaces ausgeführt werden.
Oder bei paralleler Ausführung eines Statements können mehrere temporäre Tablespaces verwendet werden.

Kurz gesagt:
Ja, temporary tablespace groups sind auch auf PDB-Ebene möglich:


SQL> alter session set container=crm02;
Session altered.

SQL> column file_name format a50
SQL> select tablespace_name,file_name from dba_temp_files;

TABLESPACE_NAME FILE_NAME
—————————— ————————————————–
TEMP /u01/oradata/CDB1/crm02/temp01.dbf

SQL> create temporary tablespace TEMP01
2 tempfile ‘/u01/oradata/CDB1/crm02/temp01_1.dbf’ size 50M;
Tablespace created.

SQL> create temporary tablespace TEMP02
2 tempfile ‘/u01/oradata/CDB1/crm02/temp02_1.dbf’ size 50M;
Tablespace created.

SQL> alter tablespace TEMP01 tablespace group TEMP_GROUP_CRM02;
Tablespace altered.

SQL> alter tablespace TEMP02 tablespace group TEMP_GROUP_CRM02;
Tablespace altered.

SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
—————————— ——————————
TEMP_GROUP_CRM02 TEMP01
TEMP_GROUP_CRM02 TEMP02

SQL> alter database default temporary tablespace TEMP_GROUP_CRM02;
Database altered.

SQL> select property_value from database_properties where property_name=’DEFAULT_TEMP_TABLESPACE’;
PROPERTY_VALUE
——————————————————————————–
TEMP_GROUP_CRM02

Auf http://dbakevlar.com/2011/08/warp-speed-with-temp-tablespace-groups/ gibt es ein nettes Beispiel, wie die Performance durch temporary tablespace groups verbessert werden kann.

Ob Datenbanken, bei denen temporary tablespace groups hilfreich sind, wirklich Kandidaten sind, um sie in einer Multitenant Umgebung als Pluggable Database einzubinden, ist allerdings eine andere Frage .. 🙂