Hurriyet

20 Haziran 2012 Çarşamba

Oracle Data Dictionary

Her Oracle veritabaninin bir veri sozlugu vardir. Veri sozlugu, Oracle veritabani ile ilgili bilgilerin yine Oracle veritabaninda tablolar ve goruntuler halinde saklanmasiyla olusur. Veritabani ile ilgili bu bilgiler kullanicilar, haklar, veritabani nesneleri, tablo kisitlamalari vb. bilgilerinden olusur. Veri sozlugu Oracle veritabanin en onemli bolumudur. Veritabani hakkindaki tum bilgiler veri sozlugunden SQL komutlari yazarak ogrenilebilir. Veri sozlugu, veritabani kurulurken standart olarak olusturulur ve yapilan degisiklikler otomatik olarak veri sozlugune yansitilir. Ornegin bir kullanici bir tabloya bir alan eklerse, veri sozlugunde o tabloya iliskin yapi, kullanici farketmeden degistirilir boylece veri sozlugunden veritabani hakkinda surekli olarak guncel ve saglikli bilgi almak mumkun olur. Veri sozlugu icerisindeki bilgiler SQL komutlariyla sorgulanip gorulebilir. Fakat hicbir kullanici veri sozlugunu degistiremez, ekleme yapamaz ve kayit silemez. Veritabani olusturulurken olusturulan veri sozlugu tablolari SYS adli kullaniciya aittir. Veri sozlugu tablolari icin goruntuler olusturulmustur. Tum kullanicilar haklari oldugu muddetce bu goruntulerden bir ya da birkacini sorgulayabilirler. Veri sozlugu goruntuleri, baslarindaki on eklerine gore uc gruba ayrilir :
  • USER_xxx : Veritabanina o an bagli olan kullanicinin sahip oldugu nesneler ile ilgili goruntulerdir.
  • ALL_xxx : Veritabanina o an bagli olan kullanicinin sahip oldugu ve baskalarina ait olan ve kendisine kullanma hakki verilmis olan tum nesnelerle ilgili goruntulerdir.
  • DBA_xxx : DBA (veritabani yoneticisi) veya DBA hakkina sahip kullanicilarin gorebilecegi goruntulerdir.
Sik kullanilan bazi data dictionary objeleri ve aciklamalari :
USER_TABLES :Kullanicilarin sahip oldugu tablolarin yapisini gosteren goruntudur.
USER_SEQUENCES : Kullanicinin sahip oldugu siralar hakkinda bilgi iceren goruntudur.
USER_VİEWS
: Kullanicinin sahip oldugu goruntuler hakkinda bilgi iceren goruntudur.
ALL_OBJECTS
: Kullanicinin erisebilecegi butun nesneler hakkinda bilgi iceren goruntudur.
DBA_USERS
: Veritabanindaki butun kullanicilar hakkinda bilgi iceren goruntudur.
DBA_TABLESPACES
: Veritabanindaki butun tablo uzaylari hakkinda bilgi iceren goruntudur.

Data Dictionary Kullanimi :
   1) Oracle; kullanicilar, sema ve objeler hakkinda bilgi almak icin kullanir.
   2) Oracle; gerceklesen her DDL(Data Definition Language) islemi sonunda Data Dictionary’i duzenler.
   3) Kullanicilar; sadece bilgi amacli olarak kullanirlar.
     Bunu bir ornek ile aciklamak gerekirse bir tablo olusturdugumuzu dusunelim.Bu tablonun hangi kolonlardan olustugu, kolonlarin tipleri, tablonun segment, extents ve kullanici haklari gibi bilgileri Oracle tarafindan bilinmeliki olusturma asamasindan sonra gerceklesecek tabloyu ilgilendiren operasyonlar saglikli bicimde gerceklestirilsin.Bu amacla ornekte gecen tum bilgiler ve fazlasi Data Dictionary e yazilir ve olusturma yapildiktan hemen sonra dictionary sorgulandiginda bu bilgiler gorulebilir.Bu bilgiler sadece Oracle a degil kullanicilara da lazim(dir) olabilir.Bu amacla genel olarak data dictionary bilgileri kullanicilara aciktir bazilari ise ozel kullanici hakki ister.
Bu kadar sik kullanilan bir yapinin memory de tutulmasi mantikli olcaktir, nitekim Oracle bu bilgileri SGA(System Global Area)’da “dictionary cache” denilen yerde tutar. Data Dictionary bilgilerine klasik SQL sorgulariyla ulasilir.Yukarida da bahsedildigi uzere bazisina tum kullanicilar erisebilirken bazisi icin ozel kullanim haklari tanimlanmalidir.
Dynamic Performans Tables and Views:
      Oracle’in islemler gerceklestirirken gerekli bilgileri ve o anki veritabani aktivitelerini tutmak icin kullandigi tablolardir. ”Fixed Views” da denir ve DBA tarafindan bile degistirilemez ya da silinemezler. SYS altinda bulunurlar ve isimleri “V_$” ile baslar. Bunlara verilen es anlamli isimler ise “V$” ile baslar. Ornegin V$DATAFİLE veritabaninin datafile’lari hakkinda bilgileri  icerir ve ornegin V$FİXED_TABLE veritabaninin kullandigi “Dynamic Performans” tablolari  ve View’lari hakkinda bilgi verir.

DATA DİCTİONARY İSTATİSTİGİNİN ALİNMASİ
    Data dictionary'nin istatistigini iki farkli metodla alabiliriz. Asagidaki PL/SQL kodlarini kullanarak veya direkt Sqlplus'dan begin/end satirlarini silip basina “exec” ibaresini ekleyerek calistirabilirsiniz. İstatistik alirken dikkat etmeniz gereken konu istatistik sonucunda bir histogram olusturulmasidir. Bu histogram‘in olusturulmasi icin komut icersinde mutlaka “Gather Auto” opsiyonu verilmelidir.

begin
dbms_stats.gather_dictionary_stats(options=> 'GATHER AUTO');
end;

veya

begin
dbms_stats.gather_schema_stats (ownname=> 'SYS' ,options=> 'GATHER AUTO');
end;

ya da
exec dbms_stats.gather_dictionary_stats(options=> 'GATHER AUTO');

Hiç yorum yok:

Yorum Gönder