Your SlideShare is downloading. ×
UNDO TABLESPACE/ UNDO SİZİNG/ Materialized Views
UNDO TABLESPACE/ UNDO SİZİNG/ Materialized Views
UNDO TABLESPACE/ UNDO SİZİNG/ Materialized Views
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

212

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
212
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×