Anar Godjaev
http://anargodjaev.wordpress.com/
UNDO TABLE SPACE OLUŞTURMA/UNDO SİZİNG/Materialized Views

Database oluştur...
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...
Anar Godjaev
http://anargodjaev.wordpress.com/
WITH PRIMARY KEY
AS SELECT * FROM emp@remote_db;
Materialized view created....
Upcoming SlideShare
Loading in …5
×

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

463 views

Published on

  • Be the first to comment

  • Be the first to like this

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

  1. 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. 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. 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.

×