SlideShare ist ein Scribd-Unternehmen logo
1 von 3
Anar Godjaev
http://anargodjaev.wordpress.com/
UNDO TABLE SPACE OLUŞTURMA/UNDO SİZİNG/Materialized Views

Database oluşturulurken default olarak undo vermek mümkündür,
SQL>CREATE DATABASE db01
...
UNDO TABLESPACE undo1 DATAFILE 'undo1db01.dbf'
SIZE 20M AUTOEXTEND ON
Yada daha sonrası için tekrar bir undospace oluşturmak ta mümkündür.
SQL>CREATE UNDO TABLESPACE undo1
DATAFILE 'undo1db01.dbf' SIZE 20M;
Mevcut bir undo tablespace e yeni bir datafile eklemek te aşağıdaki gibidir.

SQL>ALTER TABLESPACE undotbs
ADD DATAFILE 'undotbs2.dbf' SIZE 30M
AUTOEXTEND ON;
Aşağıdaki komutlada undo görevini başka bir tablespace e verebiliriz.
SQL>ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;
Mevcut bir undotablespace i bildiğimiz komutlar ile drop edebilmekteyiz.Ama dikkat etmemiz gerekn drop
ettiğimizin aktif undotablespace olmamasıdır.
SQL>SELECT a.name,b.status
FROM v$rollname a, v$rollstat b
WHERE a.name IN ( SELECT segment_name
FROM dba_segments
WHERE tablespace_name = 'UNDOTBS'
)
AND a.usn = b.usn;
Daha sonrada drop diyerek silebiliriz.
SQL>DROP TABLESPACE UNDOTBS2;
Undo istatistilerini almak istiyorsak aşağıdaki sorguyu kullanabiliriz.
SQL>SELECT end_time,begin_time,undoblks
FROM v$undostat;--Undo istatististikleri
END_TIME BEGIN_TIME UNDO
------------------ ------------------ ----22-JAN-01 13:44:18 22-JAN-01 13:43:04 19
22-JAN-01 13:43:04 22-JAN-01 13:33:04 1474
22-JAN-01 13:33:04 22-JAN-01 13:23:04 1347
Anar Godjaev
http://anargodjaev.wordpress.com/
22-JAN-01
22-JAN-01
22-JAN-01
22-JAN-01
22-JAN-01
22-JAN-01

13:23:04
13:13:04
13:03:04
12:53:04
12:43:04
12:33:04

22-JAN-01
22-JAN-01
22-JAN-01
22-JAN-01
22-JAN-01
22-JAN-01

13:13:04
13:03:04
12:53:04
12:43:04
12:33:04
12:23:04

1628
2249
1698
1433
1532
1075

UNDO SİZİNG
Sizing olarak ne kadar undo harcanıyor,yük nedir gibi bilgileri çalıştıracağımız sorgular ile görmek
mümkündür.
--(UR) UNDO_RETENTION değeri
--(UPS) Saniyede oluşan undo bloklarının sayısı
--(DBS) (db_block_size)
UndoSpace = [UR * (UPS * DBS)] + (DBS * 24)
SQL>SELECT (SUM(undoblks) / SUM( ((end_time - begin_time) * 86400)))
FROM v$undostat;--UPS HESAPLAMASI
Undo Space Aşağıdaki gibi de hesaplanabilir.
SQL>SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes"
FROM (SELECT value AS UR
FROM v$parameter
WHERE name = 'undo_retention'),
(SELECT (SUM(undoblks)/SUM(((end_time begin_time)*86400))) AS UPS
FROM v$undostat),
(SELECT value AS DBS
FROM v$parameter
WHERE name = 'db_block_size');
DBA_ROLLBACK_SEGS view ı ile mevcut rollback segmentler görüntülenebilir.
SQL>SELECT segment_name,owner,tablespace_name,status
FROM dba_rollback_segs;
Segmentlerin kullanım bilgiside aşağıdaki sorgu ile görüntülenebilir.
SQL>SELECT n.name, s.extents, s.rssize,s.hwmsize,
s.xacts, s.status
FROM v$rollname n, v$rollstat s
WHERE n.usn = s.usn;
Kullanım amacı Uzak veritabalarındaki tabloların birebir görüntüleri yada lokal veritabalarında kullanılan
tablolar üzerinde hesaplama işlemlerini tutmak için kullanılır.En büyük Avantajı çok hızlıdırlar.Ve yeniden
oluşma süreleri olağünüstüdür.Genellikle Data Wharehouse porojelirnde kullanılırlar.
SQL>CREATE MATERIALIZED VIEW mv_emp_pk
REFRESH FAST START WITH SYSDATE
NEXT SYSDATE + 1/48
Anar Godjaev
http://anargodjaev.wordpress.com/
WITH PRIMARY KEY
AS SELECT * FROM emp@remote_db;
Materialized view created.
Yukarıda SQL SYSDATE + 1/48 zaman süresinde refresh olan primary key alanına göre yaratılmış bir
viewdır.
Fast optionu yarattıktan sonra remote tarafta aşağıdaki cğmleyi çalıştırmak zorundayız.
SQL> CREATE MATERIALIZED VIEW LOG ON emp;
Materialized view log created.
SQL>CREATE MATERIALIZED VIEW mv_emp_rowid
REFRESH WITH ROWID
AS SELECT * FROM emp@remote_db;
Yukarıdaki view ise rowid alanına göre refresh olan bir viewdır.
SQL> CREATE MATERIALIZED VIEW mv_empdept
AS SELECT * FROM emp@remote_db e
WHERE EXISTS
(SELECT * FROM dept@remote_db d
WHERE e.dept_no = d.dept_no)
Yukarıdaki view ise subquery mantığında yaratılmış bir viewdır.
SQL> CREATE MATERIALIZED VIEW
depart_sal_sum as
select d.department_name, sum(e.salary)
from departments d, employees e
where d.department_id = e.department_id
group by d.department_name;
Yukarıdaki view ise local tabanlı summary işlemi yapan bir viewdır.
MV leri istersek aşağıdaki komutlarla da manuel olarak refresh edebiliriz.
SQL>DBMS_MVIEW.REFRESH
(’CUST_SALES’, parallelism => 10);
SQL>DBMS_MVIEW.REFRESH_DEPENDENT(’SALES’);
SQL>DBMS_MVIEW.REFRESH_ALL_MVIEWS;
Ana tablodan oluşan MV nin yeniden yapılanabilmesi için öncelikle QUERY_REWRITE_ENABLED
parametresinin true yapılması gerekir.

Weitere ähnliche Inhalte

Mehr von Anar Godjaev

DataPump ile Single Parititon Export
DataPump ile Single Parititon ExportDataPump ile Single Parititon Export
DataPump ile Single Parititon ExportAnar Godjaev
 
Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Anar Godjaev
 
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Anar Godjaev
 
Instance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeInstance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeAnar Godjaev
 
Conditional Control
Conditional ControlConditional Control
Conditional ControlAnar Godjaev
 
Audit Mekani̇zmasi
Audit Mekani̇zmasiAudit Mekani̇zmasi
Audit Mekani̇zmasiAnar Godjaev
 
Oracle Managed Files
Oracle Managed FilesOracle Managed Files
Oracle Managed FilesAnar Godjaev
 
Recovery Manager (RMAN)
Recovery Manager (RMAN)Recovery Manager (RMAN)
Recovery Manager (RMAN)Anar Godjaev
 
Oracle Enterprise Linux 5
Oracle Enterprise Linux 5Oracle Enterprise Linux 5
Oracle Enterprise Linux 5Anar Godjaev
 

Mehr von Anar Godjaev (20)

DataPump ile Single Parititon Export
DataPump ile Single Parititon ExportDataPump ile Single Parititon Export
DataPump ile Single Parititon Export
 
Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇Redologlar ve Yöneti̇mi̇
Redologlar ve Yöneti̇mi̇
 
Contraints
ContraintsContraints
Contraints
 
Oracle SQL
Oracle SQLOracle SQL
Oracle SQL
 
Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇Veri̇tabani ve Kullanici Yöneti̇mi̇
Veri̇tabani ve Kullanici Yöneti̇mi̇
 
Instance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını IncelemeInstance ve Media Bozukluklarını Inceleme
Instance ve Media Bozukluklarını Inceleme
 
Conditional Control
Conditional ControlConditional Control
Conditional Control
 
PL/SQL Blocks
PL/SQL BlocksPL/SQL Blocks
PL/SQL Blocks
 
Wait Interface
Wait InterfaceWait Interface
Wait Interface
 
Audit Mekani̇zmasi
Audit Mekani̇zmasiAudit Mekani̇zmasi
Audit Mekani̇zmasi
 
Tuning SGA
Tuning SGATuning SGA
Tuning SGA
 
Parallel Server
Parallel ServerParallel Server
Parallel Server
 
Table Partitions
Table PartitionsTable Partitions
Table Partitions
 
Memory Management
Memory ManagementMemory Management
Memory Management
 
LogMiner
LogMinerLogMiner
LogMiner
 
Undo Management
Undo ManagementUndo Management
Undo Management
 
ASM
ASMASM
ASM
 
Oracle Managed Files
Oracle Managed FilesOracle Managed Files
Oracle Managed Files
 
Recovery Manager (RMAN)
Recovery Manager (RMAN)Recovery Manager (RMAN)
Recovery Manager (RMAN)
 
Oracle Enterprise Linux 5
Oracle Enterprise Linux 5Oracle Enterprise Linux 5
Oracle Enterprise Linux 5
 

UNDO TABLESPACE/ UNDO SİZİNG/ Materialized Views

  • 1. Anar Godjaev http://anargodjaev.wordpress.com/ UNDO TABLE SPACE OLUŞTURMA/UNDO SİZİNG/Materialized Views Database oluşturulurken default olarak undo vermek mümkündür, SQL>CREATE DATABASE db01 ... UNDO TABLESPACE undo1 DATAFILE 'undo1db01.dbf' SIZE 20M AUTOEXTEND ON Yada daha sonrası için tekrar bir undospace oluşturmak ta mümkündür. SQL>CREATE UNDO TABLESPACE undo1 DATAFILE 'undo1db01.dbf' SIZE 20M; Mevcut bir undo tablespace e yeni bir datafile eklemek te aşağıdaki gibidir. SQL>ALTER TABLESPACE undotbs ADD DATAFILE 'undotbs2.dbf' SIZE 30M AUTOEXTEND ON; Aşağıdaki komutlada undo görevini başka bir tablespace e verebiliriz. SQL>ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2; Mevcut bir undotablespace i bildiğimiz komutlar ile drop edebilmekteyiz.Ama dikkat etmemiz gerekn drop ettiğimizin aktif undotablespace olmamasıdır. SQL>SELECT a.name,b.status FROM v$rollname a, v$rollstat b WHERE a.name IN ( SELECT segment_name FROM dba_segments WHERE tablespace_name = 'UNDOTBS' ) AND a.usn = b.usn; Daha sonrada drop diyerek silebiliriz. SQL>DROP TABLESPACE UNDOTBS2; Undo istatistilerini almak istiyorsak aşağıdaki sorguyu kullanabiliriz. SQL>SELECT end_time,begin_time,undoblks FROM v$undostat;--Undo istatististikleri END_TIME BEGIN_TIME UNDO ------------------ ------------------ ----22-JAN-01 13:44:18 22-JAN-01 13:43:04 19 22-JAN-01 13:43:04 22-JAN-01 13:33:04 1474 22-JAN-01 13:33:04 22-JAN-01 13:23:04 1347
  • 2. Anar Godjaev http://anargodjaev.wordpress.com/ 22-JAN-01 22-JAN-01 22-JAN-01 22-JAN-01 22-JAN-01 22-JAN-01 13:23:04 13:13:04 13:03:04 12:53:04 12:43:04 12:33:04 22-JAN-01 22-JAN-01 22-JAN-01 22-JAN-01 22-JAN-01 22-JAN-01 13:13:04 13:03:04 12:53:04 12:43:04 12:33:04 12:23:04 1628 2249 1698 1433 1532 1075 UNDO SİZİNG Sizing olarak ne kadar undo harcanıyor,yük nedir gibi bilgileri çalıştıracağımız sorgular ile görmek mümkündür. --(UR) UNDO_RETENTION değeri --(UPS) Saniyede oluşan undo bloklarının sayısı --(DBS) (db_block_size) UndoSpace = [UR * (UPS * DBS)] + (DBS * 24) SQL>SELECT (SUM(undoblks) / SUM( ((end_time - begin_time) * 86400))) FROM v$undostat;--UPS HESAPLAMASI Undo Space Aşağıdaki gibi de hesaplanabilir. SQL>SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes" FROM (SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'), (SELECT (SUM(undoblks)/SUM(((end_time begin_time)*86400))) AS UPS FROM v$undostat), (SELECT value AS DBS FROM v$parameter WHERE name = 'db_block_size'); DBA_ROLLBACK_SEGS view ı ile mevcut rollback segmentler görüntülenebilir. SQL>SELECT segment_name,owner,tablespace_name,status FROM dba_rollback_segs; Segmentlerin kullanım bilgiside aşağıdaki sorgu ile görüntülenebilir. SQL>SELECT n.name, s.extents, s.rssize,s.hwmsize, s.xacts, s.status FROM v$rollname n, v$rollstat s WHERE n.usn = s.usn; Kullanım amacı Uzak veritabalarındaki tabloların birebir görüntüleri yada lokal veritabalarında kullanılan tablolar üzerinde hesaplama işlemlerini tutmak için kullanılır.En büyük Avantajı çok hızlıdırlar.Ve yeniden oluşma süreleri olağünüstüdür.Genellikle Data Wharehouse porojelirnde kullanılırlar. SQL>CREATE MATERIALIZED VIEW mv_emp_pk REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 1/48
  • 3. Anar Godjaev http://anargodjaev.wordpress.com/ WITH PRIMARY KEY AS SELECT * FROM emp@remote_db; Materialized view created. Yukarıda SQL SYSDATE + 1/48 zaman süresinde refresh olan primary key alanına göre yaratılmış bir viewdır. Fast optionu yarattıktan sonra remote tarafta aşağıdaki cğmleyi çalıştırmak zorundayız. SQL> CREATE MATERIALIZED VIEW LOG ON emp; Materialized view log created. SQL>CREATE MATERIALIZED VIEW mv_emp_rowid REFRESH WITH ROWID AS SELECT * FROM emp@remote_db; Yukarıdaki view ise rowid alanına göre refresh olan bir viewdır. SQL> CREATE MATERIALIZED VIEW mv_empdept AS SELECT * FROM emp@remote_db e WHERE EXISTS (SELECT * FROM dept@remote_db d WHERE e.dept_no = d.dept_no) Yukarıdaki view ise subquery mantığında yaratılmış bir viewdır. SQL> CREATE MATERIALIZED VIEW depart_sal_sum as select d.department_name, sum(e.salary) from departments d, employees e where d.department_id = e.department_id group by d.department_name; Yukarıdaki view ise local tabanlı summary işlemi yapan bir viewdır. MV leri istersek aşağıdaki komutlarla da manuel olarak refresh edebiliriz. SQL>DBMS_MVIEW.REFRESH (’CUST_SALES’, parallelism => 10); SQL>DBMS_MVIEW.REFRESH_DEPENDENT(’SALES’); SQL>DBMS_MVIEW.REFRESH_ALL_MVIEWS; Ana tablodan oluşan MV nin yeniden yapılanabilmesi için öncelikle QUERY_REWRITE_ENABLED parametresinin true yapılması gerekir.