26 Nisan 2012 Perşembe

Tablespace Yönetimi - IV

Tablespace ‘ler iki tiptir. Permanent(Kalıcı) ve Temporary(Geçici) tablespace’ lerdir.


Temporary Tablespace:

Temporary Tablepace, sadece  kullanıcıların session süresince disk üzerinde kullandığı geçici alanlardır. Session süresi bitince bu bilgiler silinir.
Temporary tablepace’ ler session’ ın bir çok sort işlemlerinin yükünü azaltmak için kullanılır.RAM’ daki PGA alanı büyük sort işlemleri için yetersiz kaldığında fiziksel disk üzerindeki temporary alanını kullanır.
Bildiğimiz gibi Memory’deki SORT _AREA_SIZE parametresi bu işlemlerin RAM’ da yapılmasını için gerekli alanı belirten parametredir. Bu alanı bir çok kullanıcının default temporary  alanı olarak paylaştırabiliriz.
Default olarak tüm kullanıcılar temp alanı için SYSTEM tablespace’ i kullanırlar.  Her bir kullanıcı SYSTEM TABLESPACE kullanırsa sistemde yavaşlama ve system tablespace in kapasitesini zorlyacağından bir DBA’ nin bir temporary tablepace oluşturup default oalrak tüm kullanıcılara paylaşması gerekmektedir.

Örnek: Kullanıcı oluştururken yada var olan kullanıcıya default temprary tablespace alanını referans gösteririz.
SQL>ALTER USER xyz  DEFAULT TEMPORARY TABLESPACE test_tbs;

Yada yeni kullanıcı oluşturken;

SQL>CREATE USER xyz IDENTIFIED BY xyx_pass DEFAULT TABLESPACE user
DEFAULT TEMPORARY TABLESPACE test_tbs;

Temporarytablespace, diğer tablepace’ler gibi datafile ‘lardan değil ona has bir tempfile ‘lardan oluşur.
Temporary tablepace içierisinde tüm sort operasyonlarının yapıldığı bir sort segment vardır.Sort Segment , intance’ gelen sıralama(sorting) işlemi görülen sorgu için kendiliğinden oluşur. Biz haricen bir temp segmenti oluşturamayız.

V$SORT_SEGMENT  ve v$TEMP_SEG dinamik view ile içerisindeki alan ve sort işlemi yapan user’ ları görebiliriz.
Extent yönetimi  Lokal dir. Ve AUTOALLOCATE extent yönetimi desteklemez. Extent yönetimi Uniform (sabit boyutta) olabilir.

Daha önceden de söylediğimiz gibi database üzerinde bir tane default temporary tablespace ve bir tane undo tablespace olabilir.
Not: Default temporary tablespace Offline durumuna getirilemez. Yeni bir tane temporary tablespace oluştuncaya kadar eskisini silinemez.
Not:Birden fazla tempoary tablespace oluşturulabilir. Fakat bunlardan sadece birisini kullanabilir.

SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE new_temp;

Eski temporary tablespace silinebilir.

SQL>DROP TABLEPACE old_temp  including contents and  datafiles;

SQLPLUS ile Temporary Tablespace oluşturma:

“CREATE TABLEPACE”yetkisine sahip bir kullanıcı yada “sysdba” rolündeki bir kullanıcı temporary tablespace oluşturabilir. Create temprorary tablespace cümlesi ile bir tablespace oluşturulabilir.
SQL>CREATE TEMPORARY TABLESPACE test_tmp_tbs TEMPFILE '/u01/app /oracle/oradata/XDB/datafile/temp_tbs01.dbf'
     SIZE 20M REUSE
     EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; 


Kullanıcı işlemlerinin çok yoğun olduğu ortamlarda (groupby, join,distinct, order by,Minus,Union,,Intersect, Create Index, vb.) Temporary tablespace alanı yetmediği durumlarda  temporary tablespace yeni tempfile’ lar eklenebilir.

SQLPLUS ile Temporary tablespace yeni bir Tempfile ekleme:

SQL>ALTER TABLESPACE ADD TEMPFILE ‘/u01/app /oracle/oradata/XDB/datafile/test_temp02.dbf';


Create Bigfile Temporary Tablespace:
SQL>CREATE BIGFILE TEMPORARY TABLESPACE big_tbs TEMPFILE '/u01/app /oracle/oradata/XDB/datafile/big_temp01.dbf'
     SIZE 50M REUSE
     EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;


Temporary tablespace ‘in boş  alan durumu ile ilgili bilgileri görmek istersek V$TEMP_SPACE_HEADER dinamik view’ kullanabiliriz. 

0 yorum:

Yorum Gönder