Tujuan

Hari ini kita membahas kamus data, juga dikenal sebagai sistem katalog. Pada akhir hari, Anda harus memiliki pemahaman yang kuat sebagai berikut:

  • Definisi kamus data
  • Jenis informasi berisi kamus data
  • Berbagai jenis tabel di dalam kamus data
  • Cara efektif untuk mengambil informasi yang berguna dari kamus data

Pengantar Data Kamus

Setiap database relasional memiliki beberapa bentuk kamus data, atau sistem katalog presentasi. (Kami menggunakan kedua istilah ini di.) Sebuah kamus data adalah area sistem dalam lingkungan database yang berisi informasi tentang bahan dari database. kamus data meliputi informasi seperti desain database, disimpan kode SQL, statistik pengguna, proses database, pertumbuhan database, dan kinerja statistik database.

Kamus data memiliki tabel yang mengandung informasi desain database, yang dihuni atas penciptaan database dan pelaksanaan Data Definition Language (DDL) seperti perintah CREATE TABLE.Ini bagian dari sistem katalog menyimpan informasi tentang sebuah kolom meja dan atribut, informasi-ukuran meja, hak meja, dan pertumbuhan meja. benda lain yang disimpan dalam kamus data mencakup indeks, memicu, prosedur, paket, dan pandangan.

Pengguna tabel laporan statistik status item seperti informasi konektivitas database dan hak untuk pengguna individu. Privileges tersebut dibagi menjadi dua komponen utama:-tingkat sistem dan hak-hak istimewa tingkat objek. Kewenangan untuk membuat pengguna lain adalah tingkat hak istimewa sistem, sedangkan kemampuan untuk mengakses tabel adalah tingkat keistimewaan objek. Peran juga digunakan untuk menegakkan keamanan dalam database. Informasi ini disimpan juga.

16 hari membentang apa yang Anda pelajari kemarin (15 Hari, “Memperlancar SQL Laporan untuk Peningkatan Kinerja”). Data diambil dari katalog sistem dapat digunakan untuk memantau kinerja database dan untuk mengubah parameter database yang akan meningkatkan kinerja database dan pernyataan SQL.

Kamus data adalah salah satu alat yang paling berguna yang tersedia dengan database. Ini adalah cara untuk menjaga database terorganisir, seperti file persediaan di toko ritel. Ini merupakan mekanisme yang menjamin integritas database. Misalnya, ketika Anda membuat sebuah tabel, bagaimana server database tahu apakah sebuah tabel dengan nama yang sama ada? Bila Anda membuat sebuah query untuk memilih data dari tabel, bagaimana bisa memverifikasi bahwa Anda telah diberi hak istimewa yang tepat untuk mengakses meja? Kamus data adalah jantung dari database, sehingga Anda perlu mengetahui bagaimana menggunakannya.

Pengguna Data Kamus

Akhir pengguna, insinyur sistem, dan administrator database semua menggunakan kamus data, apakah mereka menyadarinya atau tidak. akses mereka bisa baik langsung maupun tidak langsung.

Pengguna akhir, seringkali para pelanggan untuk database yang telah dibuat, akses katalog sistem tidak langsung. Ketika pengguna mencoba untuk log on ke database, kamus data dirujuk untuk memverifikasi bahwa user’s username, password, dan hak istimewa untuk menyambung ke database. database ini juga direferensikan untuk melihat apakah pengguna memiliki hak yang sesuai untuk mengakses data tertentu. Yang umum metode yang paling untuk pengguna akhir untuk mengakses kamus data melalui aplikasi front-end. Banyak antarmuka pengguna grafis (GUI) alat, yang memungkinkan pengguna untuk dengan mudah membangun sebuah pernyataan SQL, telah dikembangkan. Ketika login ke database, aplikasi front-end dapat segera melakukan pilih terhadap kamus data untuk mendefinisikan tabel yang memiliki akses pengguna. The-end aplikasi depan mungkin akan membangun sebuah “lokal” sistem katalog bagi pengguna individu berdasarkan data yang diambil dari kamus data. Pelanggan dapat menggunakan katalog setempat untuk memilih tabel yang spesifik ia ingin query.

Sistem insinyur adalah database pengguna yang bertanggung jawab untuk tugas-tugas seperti model database dan desain, pengembangan aplikasi, dan aplikasi manajemen. (Beberapa perusahaan menggunakan judul lainnya, seperti programer, analis pemrogram, dan modelers data, untuk merujuk Sistem insinyur sistem mereka.) Insinyur menggunakan kamus data secara langsung untuk mengelola proses pembangunan, serta mempertahankan proyek-proyek yang ada. Akses juga dapat dilakukan melalui aplikasi front-end, perangkat pengembangan, dan rekayasa perangkat lunak dibantu komputer (CASE) tools. area umum dari sistem katalog bagi para pengguna query objek-objek di bawah kelompok skema, permintaan terhadap peran aplikasi dan hak istimewa, dan permintaan untuk mengumpulkan statistik pada pertumbuhan skema mungkin. System juga insinyur menggunakan kamus data untuk reverse-engineer objek database dalam ditetapkan skema.

Database administrator (DBAs) yang paling jelas persentase terbesar pengguna langsung dari kamus data. Berbeda dengan kelompok lain dua pengguna, yang kadang-kadang menggunakan sistem katalog secara langsung, DBAs harus secara eksplisit mencakup penggunaan kamus data sebagai bagian dari rutinitas sehari-hari mereka. Akses biasanya melalui sebuah query SQL, tetapi juga dapat melalui alat administrasi seperti Oracle Server Manager. Seorang DBA menggunakan kamus data untuk mengelola informasi pengguna dan sumber daya dan akhirnya untuk mencapai database baik-tuned.

Seperti yang Anda lihat, semua pengguna database harus menggunakan kamus data. Bahkan lebih penting, sebuah database relasional tidak bisa ada tanpa beberapa bentuk kamus data.

Isi Kamus Data

Bagian ini mengkaji sistem katalog dua vendor RDBMS, Oracle dan Sybase. Meskipun kedua implementasi memiliki spesifikasi unik untuk kamus data, mereka melayani fungsi yang sama. Jangan keprihatinan sendiri dengan nama yang berbeda untuk tabel sistem, cukup memahami konsep kamus data dan data di dalamnya.

Kamus Oracle’s Data

Karena setiap meja harus memiliki pemiliknya, pemilik sistem tabel dalam kamus data Oracle adalah SYS. Oracle’s data tabel kamus dibagi menjadi tiga kategori dasar: diakses dilihat pengguna, dilihat DBA, dan tabel performa yang dinamis, yang juga muncul sebagai pandangan. Tampilan yang dapat diakses pengguna memungkinkan pengguna untuk permintaan data kamus untuk informasi tentang account database individu, seperti hak istimewa, atau katalog tabel dibuat. DBA dilihat bantuan dalam tugas sehari-hari dari seorang administrator database, yang memungkinkan DBA untuk mengelola pengguna dan objek dalam database. Tabel kinerja dinamis di Oracle juga digunakan oleh DBA dan menyediakan mendalam melihat lebih untuk memantau kinerja database.Pandangan-pandangan ini memberikan informasi seperti statistik pada proses, penggunaan dinamis segmen rollback, penggunaan memori, dan sebagainya. Tabel performa yang dinamis semua Vawalan $.

Data Sybase’s Dictionary

Seperti di Oracle, pemilik tabel dalam kamus data Sybase adalah SYS. Tabel dalam kamus data dibagi menjadi dua kategori: tabel sistem dan tabel database.

Tabel sistem berisi dengan database master saja. Tabel ini define obyek (seperti tabel dan indeks) yang umum melalui beberapa database kamus yang kedua. Set tabel dalam Sybase SQL Server data adalah tabel database. Tabel ini berkaitan hanya untuk obyek dalam setiap database.

A Look Inside’s Oracle Data Dictionary

Contoh dalam bagian ini menunjukkan cara untuk mengambil informasi dari kamus data dan dapat diterapkan ke database relasional pengguna kebanyakan, yaitu, sistem insinyur, end user, atau DBA. kamus data Oracle memiliki array yang luas dari tabel sistem dan pandangan untuk semua jenis pengguna database, itulah sebabnya mengapa kita memilih untuk mengeksplorasi kamus data Oracle secara lebih mendalam.

Tampilan Pengguna

dilihat pengguna data dilihat kamus yang umum untuk semua pengguna database. Hanya hak pengguna perlu permintaan terhadap pandangan pengguna adalah hak istimewa sistem CREATE SESSION, yang harus umum untuk semua pengguna.

Siapa Anda?

Sebelum merambah ke dalam pengetahuan yang tampaknya tak berujung yang terdapat dalam database, Anda harus tahu persis siapa Anda (dalam hal database) dan apa yang dapat Anda lakukan. Kedua berikut menunjukkan contoh laporan SELECT dari dua tabel: satu untuk mengetahui siapa Anda dan yang lainnya untuk melihat saham lain yang database.

INPUT:
  SQL> SELECT * 
    2 DARI USER_USERS;
OUTPUT:
  USERNAME USER_ID tablespace SEMENTARA DEFAULT_TABLESPACE DIBUAT 
  ---------- ------ -------------------- -------------- -------- ------ 
  JSMITH 29 USERS TEMP 14-MAR-97 

  1 baris yang dipilih. 
ANALISIS:

Tampilan USER_USERS memungkinkan Anda untuk melihat bagaimana Anda Oracle ID didirikan, ketika didirikan, dan ia juga menampilkan lainnya pengguna tertentu, statistik vital. The default tablespace dan tablespace sementara juga ditampilkan. The default tablespace, PENGGUNA, adalah tablespace yang objek akan dibuat di bawah sebagai pengguna tersebut. Sementara itu tablespace adalah tablespace ditujukan untuk digunakan selama jenis besar dan fungsi kelompok untuk JSMITH.

INPUT / OUTPUT:
  SQL> * SELECT 
    2 DARI All_users; 

  USERNAME USER_ID DIBUAT 
  -------------- ------- ------------ 
  SYS 0 01-JAN-97 
  SISTEM 5 01-JAN-97 
  SCOTT 8 01-JAN-97 
  JSMITH 10 14-MAR-97 
  TJONES 11 15-MAR-97 
  VJOHNSON 12 15-MAR-97 

Seperti yang dapat Anda lihat dalam hasil pencarian sebelumnya, Anda dapat melihat semua pengguna yang ada di database dengan menggunakan tampilan All_users. Namun, tampilan All_users tidak menyediakan informasi yang spesifik yang sama seperti tampilan sebelumnya (USER_USERS) disediakan karena tidak ada kebutuhan untuk informasi ini di tingkat pengguna. informasi spesifik lebih lanjut dapat diperlukan pada tingkat sistem.

Keistimewaan Apakah Anda?

Sekarang Anda tahu siapa Anda, akan menyenangkan untuk mengetahui apa yang dapat Anda lakukan. Beberapa pandangan kolektif, mampu untuk memberikan informasi tersebut. Pandangan USER_SYS_PRIVS dan tampilan USER_ROLE_PRIVS akan memberi Anda (pengguna) ide yang baik dari apa kewenangan yang Anda miliki.

Anda dapat menggunakan tampilan USER_SYS_PRIVS hak istimewa untuk memeriksa sistem anda. Ingat, hak istimewa sistem hak istimewa yang memungkinkan Anda untuk melakukan hal-hal tertentu dalam database secara keseluruhan. Privileges tersebut tidak spesifik untuk setiap obyek satu atau sekumpulan objek.

INPUT:
  SQL> SELECT * 
    2 DARI USER_SYS_PRIVS;
OUTPUT:
  USERNAME HAK ISTIMEWA ADM 
  -------- -------------------- --- 
  JSMITH UNLIMITED tablespace NO 
  CREATE JSMITH SESI NO 

  2 baris yang dipilih. 
ANALISIS:

JSMITH telah diberikan dua tingkat hak istimewa sistem, di luar dari setiap peran diberikan. Perhatikan kedua, misalnya CREATE SESSION. CREATE SESI juga terkandung dalam standar Oracle peran, CONNECT, yang tercakup dalam berikutnya.

Anda dapat menggunakan USER_ROLE_PRIVS tampilan untuk melihat informasi tentang peran Anda telah diberikan dalam database. Database peran sangat mirip dengan tingkat hak istimewa sistem. Peran dibuat seperti pengguna dan kemudian diberikan hak istimewa. Setelah peran telah diberikan hak istimewa, peran dapat diberikan kepada pengguna. Ingat bahwa tingkat hak objek juga mungkin terdapat dalam peran.

INPUT / OUTPUT:
  SQL> SELECT * 
    2 DARI USER_ROLE_PRIVS; 

  USERNAME ADM DEF GRANTED_ROLE OS_ 
  ---------------- ------------ --- --- - 
  JSMITH TIDAK YA TIDAK CONNECT 
  JSMITH RESOURCE TIDAK YA TIDAK 

  2 baris yang dipilih. 
ANALISIS:

Tampilan USER_ROLE_PRIVS memungkinkan Anda untuk melihat peran yang telah diberikan kepada Anda. Seperti disebutkan sebelumnya, CONNECT berisi CREATE SESSION privilege sistem, serta hak lainnya. RESOURCE memiliki beberapa keistimewaan tersendiri. Anda dapat melihat bahwa kedua peran telah diberikan peran sebagai’s default user, user tidak dapat memberikan peran kepada pengguna lain, seperti dicatat oleh opsi Admin (ADM), dan peran belum diberikan oleh sistem operasi. (Lihat Hari 12, “Keamanan Database.”)

Apa yang Anda Memiliki Akses Untuk?

Sekarang Anda mungkin bertanya, Apa yang harus saya akses? Aku tahu siapa aku, aku tahu hak saya, tapi dimana saya bisa mendapatkan data saya? Anda dapat menjawab pertanyaan tersebut dengan melihat berbagai pandangan pengguna yang tersedia dalam data kamus. Bagian ini mengidentifikasi beberapa pandangan membantu.

Mungkin pengguna pandangan dasar yang paling adalah USER_CATALOG, yang hanyalah katalog meja, pandangan, sinonim, dan urutan yang dimiliki oleh pengguna saat ini.

INPUT:
  SQL> SELECT * 
    2 DARI USER_CATALOG;
OUTPUT:
  TABLE_NAME TABLE_TYPE 
  ---------- ---------------------------- 
  TABEL MAGAZINE_TBL 
  MAG_COUNTER URUTAN 
  MAG_VIEW VIEW 
  TABEL SPORTS 

  4 baris yang dipilih. 
ANALISIS:

Contoh ini memberikan daftar cepat tabel dan obyek terkait yang Anda miliki. Anda juga dapat menggunakan sinonim publik untuk USER_CATALOG untuk itu demi kesederhanaan: CAT. Artinya, mencoba * pilih dari kucing;.

Pandangan lain yang berguna adalah ALL_CATALOG, yang memungkinkan Anda untuk melihat tabel yang dimiliki oleh orang lain.

INPUT / OUTPUT:
 SQL> SELECT * 2 FROM ALL_CATALOG;
  PEMILIK TABLE_NAME TABLE_TYPE 
  -------------------- ------------------ ---------- 
  SYS DUAL TABEL 
  DUAL PUBLIK sinonim 
  JSMITH MAGAZINE_TBL TABEL  
  JSMITH MAG_COUNTER URUTAN 
  JSMITH MAG_VIEW VIEW 
  SPORTS JSMITH TABEL 
  VJOHNSON test1 TABEL 
  VJOHNSON Hobi TABEL 
  VJOHNSON CLASSES TABEL 
  MAHASISWA VJOHNSON VIEW 

  10 baris yang dipilih. 
ANALISIS:

objek Lebih dari muncul dalam daftar sebelumnya akan dapat diakses oleh Anda sebagai pengguna. (Tabel SISTEM sendiri akan menambah banyak tabel daftar.) Kami telah sekadar dipersingkat.Pandangan ALL_CATALOG sama dengan tampilan USER_CATALOG, tapi menampilkan semua tabel, pandangan, urutan, dan sinonim yang Anda memiliki akses (bukan hanya yang Anda sendiri).

INPUT:
  SQL> SELECT substr (OBJECT_TYPE, 1,15) OBJECT_TYPE, 
    2 substr (OBJECT_NAME, 1,30) OBJECT_NAME, 
    3 DIBUAT, 
    4 STATUS 
    5 DARI USER_OBJECTS 
    6 ORDER BY 1;
OUTPUT:
  OBJECT_NAME OBJECT_TYPE DIBUAT STATUS 
  -------------- -------------------- ------------ ---- - 
  INDEKS MAGAZINE_INX 14-MAR-97 Valid 
  INDEKS SPORTS_INX 14-MAR-97 Valid 
  INDEKS HOBBY_INX 14-MAR-97 Valid 
  TABEL MAGAZINE_TBL 01-MAR-97 Valid 
  TABEL SPORTS 14-MAR-97 Valid 
  TABEL HOBBY_TBL 16-MAR-97 Valid 

  6 baris yang dipilih. 
ANALISIS:

Anda dapat menggunakan tampilan USER_OBJECTS untuk memilih informasi umum mengenai obyek yang dimiliki pengguna, seperti nama, jenis, tanggal dibuat, tanggal dimodifikasi, dan status obyek. Dalam permintaan sebelumnya, kita memeriksa data yang dibuat dan validasi dari tiap objek yang dimiliki.

INPUT / OUTPUT:
  SQL> SELECT TABLE_NAME, INITIAL_EXTENT, NEXT_EXTENT 
    2 DARI USER_TABLES; 

  SEJAUH TABLE_NAME NEXT INITIAL_EXTENT 
  ---------------------------- -------------- -------- --- 
  MAGAZINE_TBL 1048576 540672 
  OLAHRAGA 114688 114688 
ANALISIS:

Jauh lebih data tersedia ketika memilih dari tampilan USER_TABLES, tergantung apa yang ingin Anda lihat. Sebagian data yang terdiri dari informasi penyimpanan.


CATATAN: Perhatikan pada output bahwa nilai awal dan selanjutnya Sejauh mana dalam bytes. Dalam beberapa implementasi anda dapat menggunakan kolom output format untuk membuat Anda lebih mudah dibaca dengan menambahkan tanda koma. Lihat Hari 19, “Transact-SQL: An Introduction,” dan Hari 20, “SQL * Plus.”

Tampilan ALL_TABLES adalah USER_TABLES sebagai tampilan ALL_CATALOG adalah untuk USER_CATALOG. Dengan kata lain, ALL_TABLES memungkinkan Anda untuk melihat semua tabel yang Anda memiliki akses, bukan hanya meja Anda sendiri. Pandangan ALL_TABLES mungkin termasuk tabel yang ada di katalog pengguna lain.

INPUT / OUTPUT:
 SQL SELECT substr> (PEMILIK, 1,15) PEMILIK, 2 substr (TABLE_NAME, 1,25) TABLE_NAME, 3 substr (TABLESPACE_NAME, 1,13) tablespace 4 DARI ALL_TABLES; PEMILIK tablespace --------- TABLE_NAME ----------- ---------------------------- ---------- SYS SISTEM DUAL JSMITH PENGGUNA MAGAZINE_TBL SMITH SPORTS PENGGUNA VJOHNSON test1 Hobi VJOHNSON USERS USERS CLASSES VJOHNSON PENGGUNA
ANALISIS:

Sekali lagi, Anda telah memilih hanya informasi yang diinginkan. Banyak kolom tambahan dalam ALL_TABLES juga mungkin berisi informasi yang bermanfaat.

Sebagai pengguna database, anda bisa memonitor pertumbuhan tabel dan indeks dalam katalog Anda dengan query tampilan USER_SEGMENTS. Seperti namanya, USER_SEGMENTS memberi Anda informasi tentang setiap segmen, seperti informasi penyimpanan dan luasan diambil. Sebuah segmen dapat terdiri dari sebuah tabel, indeks, kembalikan cluster, sementara, atau cache.Contoh berikut ini menunjukkan bagaimana Anda dapat mengambil informasi yang dipilih dari tampilan USER_SEGMENTS.

INPUT / OUTPUT:
 SQL SELECT substr> (SEGMENT_NAME, 1,30) SEGMENT_NAME, 2 substr (SEGMENT_TYPE, 1,8) SEG_TYPE, 3 substr (TABLESPACE_NAME, 1,25) TABLESPACE_NAME, 4 BYTES, luasan 5 DARI USER_SEGMENTS 6 ORDER BY DESC luasan; SEG_TYPE SEGMENT_NAME TABLESPACE_NAME BYTES luasan -------------------- ------------ --------------- ----- ------------ ------- TABEL PENGGUNA MAGAZINE_TBL 4292608 7 PENGGUNA INDEKS SPORTS_INX 573.440 4 TABEL PENGGUNA SPORTS 344.064 2 PENGGUNA INDEKS MAGAZINE_INX 1.589.248 1
  4 baris yang dipilih. 
ANALISIS:

Output dalam permintaan sebelumnya telah disortir oleh luasan dalam urutan; segmen dengan pertumbuhan paling (luasan diambil) muncul pertama dalam hasil.

Sekarang Anda tahu mana tabel Anda memiliki akses ke, Anda akan ingin mengetahui apa yang dapat Anda lakukan untuk setiap tabel. Apakah Anda hanya terbatas pada permintaan, atau dapat Anda memperbarui tabel? Pandangan ALL_TAB_PRIVS daftar semua hak istimewa yang telah Anda sebagai pengguna database pada setiap meja tersedia untuk Anda.

INPUT / OUTPUT:
 SQL> SELECT substr (TABLE_SCHEMA, 1,10) PEMILIK, 2 substr (TABLE_NAME, 1,25) TABLE_NAME, 3 HAK ISTIMEWA 4 DARI ALL_TAB_PRIVS; PEMILIK HAK ISTIMEWA TABLE_NAME ------------ ----- --------------- --------- SYS JSMITH INSERT SELECT DUAL MAGAZINE_TBL JSMITH JSMITH PILIH UPDATE MAGAZINE_TBL MAGAZINE_TBL JSMITH MAGAZINE_TBL SPORTS JSMITH JSMITH DELETE SELECT INSERT UPDATE SPORTS SPORTS JSMITH JSMITH SPORTS VJOHNSON VJOHNSON DELETE SELECT test1 test1 test1 VJOHNSON INSERT UPDATE DELETE VJOHNSON VJOHNSON Hobi test1 CLASSES VJOHNSON SELECT SELECT
ANALISIS:

Seperti yang Anda lihat, Anda dapat memanipulasi data dalam beberapa tabel, sedangkan Anda memiliki akses read-only (SELECT hanya) kepada orang lain.

Bila Anda membuat objek, Anda biasanya perlu tahu di mana untuk menempatkan mereka dalam database, kecuali Anda membiarkan tujuan target Anda untuk mengambil default. Sebuah database Oracle ini dipecah menjadi tablespace, yang masing-masing mampu menyimpan objek. Setiap tablespace dialokasikan sejumlah ruang disk, sesuai dengan apa yang tersedia pada sistem. ruang disk biasanya diperoleh melalui administrator sistem (SA).

Permintaan berikut ini dari pandangan disebut USER_TABLESPACES, yang akan daftar tablespace yang Anda memiliki akses ke, default dan selanjutnya ukuran awal objek diciptakan di dalamnya, dan status mereka.

INPUT / OUTPUT:
 SQL> SELECT substr (TABLESPACE_NAME, 1,30) TABLESPACE_NAME, 2 INITIAL_EXTENT, 3 NEXT_EXTENT, 4 PCT_INCREASE, 5 STATUS 6 DARI USER_TABLESPACES; TABLESPACE_NAME INITIAL_EXTENT ----------------- NEXT_EXTENT STATUS PCT_INCREASE ------------- -------------- ----------- ------------ ------ SISTEM 32768 16384 1 RBS ONLINE 2.097.152 2.097.152 1 ONLINE TEMP 114.688 114.688 1 32.768 16.384 ALAT ONLINE USERS ONLINE 1 32.768 16.384 1 ONLINE
  5 baris yang dipilih. 
ANALISIS:

Jenis permintaan ini sangat berguna ketika Anda membuat objek, seperti tabel dan indeks, yang membutuhkan penyimpanan. Ketika sebuah tabel atau indeks dibuat, jika berikutnya penyimpanan parameter dan awal tidak ditentukan dalam DDL, tabel atau indeks akan mengambil nilai default tablespace’s tersebut. Konsep yang sama berlaku untuk PCT KENAIKAN, yang merupakan parameter Oracle menetapkan persentase ruang yang dialokasikan obyek harus diambil saat itu tumbuh. Jika nilai untuk PCT KENAIKAN tidak ditentukan ketika tabel atau indeks dibuat, database server akan mengalokasikan nilai default yang ditentukan untuk tablespace yang sesuai. Melihat nilai-nilai default memungkinkan Anda untuk menentukan apakah Anda perlu menggunakan klausa penyimpanan dalam pernyataan CREATE.

Kadang-kadang, namun Anda perlu tahu lebih dari yang tablespace Anda dapat mengakses, yaitu, membangun tabel di bawah. Misalnya, Anda mungkin perlu tahu apa batas Anda dalam tablespace sehingga Anda bisa mengatur pembentukan dan ukuran benda-benda Anda. Pandangan USER_TS_QUOTAS menyediakan informasi yang diperlukan. Menampilkan permintaan berikutnya pengguna ruang batas untuk membuat objek dalam database.

INPUT / OUTPUT:
  SQL> substr SELECT (TABLESPACE_NAME, 1,30) TABLESPACE_NAME, 
    2 BYTES, MAX_BYTES 
    3 DARI USER_TS_QUOTAS; 

  TABLESPACE_NAME BYTES MAX_BYTES 
  ------------------------------ ---------- ---------- 
  SISTEM 0 0 
  ALAT 5242880 16384 
  573.440 PENGGUNA -1 

  3 baris yang dipilih. 
ANALISIS:

Hasil sebelumnya khas output dari data Oracle kamus. BYTES mengidentifikasi jumlah byte dalam tablespace yang berkaitan dengan user BYTES. MAX mengidentifikasi maksimum byte yang diberikan kepada pengguna, atau user kuota, di tablespace tersebut. Dua yang pertama nilai dalam kolom ini adalah diri-jelas baris. Para -1 pada ketiga berarti kuota tak terbatas – yaitu, tidak ada batas yang ditempatkan pada user untuk tablespace tersebut.


CATATAN: Fungsi substr banyak muncul dalam permintaan sebelumnya data dilihat kamus. Anda dapat menggunakan banyak fungsi yang Anda pelajari sebelumnya untuk meningkatkan readablility data Anda mengambil. Penggunaan standar penamaan yang konsisten dalam database Anda mungkin mengizinkan anda membatasi ukuran data dalam output Anda, seperti yang telah kita lakukan dalam contoh ini.

Contoh-contoh ini menunjukkan bagaimana semua pengguna database biasa dapat mengekstraksi informasi dari kamus data. Pandangan ini adalah hanya beberapa dari sekian banyak yang ada di kamus’s data Oracle. Penting untuk memeriksa implementasi database Anda untuk melihat apa yang tersedia bagi Anda di kamus data Anda. Ingat, Anda harus menggunakan data kamus untuk mengelola kegiatan database Anda. Meskipun sistem katalog berbeda dengan implementasi, Anda hanya perlu memahami konsep ini dan mengetahui bagaimana untuk mengambil data yang diperlukan untuk melengkapi pekerjaan Anda.

Sistem DBA Tampilan

Pandangan DBA yang berada dalam sebuah kamus data Oracle biasanya yang utama, atau yang paling umum, pandangan bahwa DBA akan akses. Pandangan-pandangan ini tidak ternilai dengan produktivitas dari setiap DBA. Mengambil tabel ini jauh dari DBA akan seperti merampas seorang tukang kayu dari palu.

Seperti yang Anda harapkan, Anda harus memiliki hak istimewa sistem SELECT_ANY_TABLE, yang terkandung dalam peranan DBA, untuk mengakses tabel DBA. Misalnya, Anda JSMITH, yang tidak memiliki hak istimewa yang diperlukan untuk memilih dari tabel DBA.

INPUT:
  SQL> SELECT * 
    2 DARI USER_ROLE_PRIVS;
OUTPUT:
 USERNAME               GRANTED_ROLE            ADM    DEF    OS_
------------------     --------------------    ---    ---    --
JSMITH                 CONNECT                 NO     YES    NO
JSMITH                 RESOURCE                NO     YES    NO
INPUT / OUTPUT:
 SQL> SELECT *
  2 FROM SYS.DBA_ROLES;
FROM SYS.DBA_ROLES;
       * 

  ERROR pada baris 2: 
ORA-00942: table or view does not exist
ANALISIS:

When you try to access a table to which you do not have the appropriate privileges, an error is returned stating that the table does not exist. This message can be a little misleading. Virtually, the table does not exist because the user cannot “see” the table. A solution to the problem above would be to grant the role DBA to JSMITH. This role would have to be granted by a DBA, of course.

Database User Information

The USER_USERS dan dilihat All_users memberikan informasi minimal tentang pengguna.Pandangan DBA disebut DBA_USERS (dimiliki oleh SYS) memberi Anda informasi tentang semua pengguna jika Anda memiliki peran DBA atau hak istimewa SELECT_ANY_TABLE, seperti ditunjukkan pada contoh berikut.

INPUT:
 SQL> SELECT * 2 FROM SYS.DBA_USERS;
OUTPUT:
  USER_ID USERNAME PASSWORD 
  -------------------------------- ------ ------------ ----------------- 
  TEMPORARY_TABLESPACE DEFAULT_TABLESPACE DIBUAT 
  ------------------------------ -------------------- ---------- -------- 
  PROFIL 
  ------------------------------ 
  SYS 0 4012DA490794C16B 
  SISTEM TEMP 06-Juni-96 
  DEFAULT 

  JSMITH 5 A4A94B17405C10B7 
  PENGGUNA TEMP 06-Juni-96 
  DEFAULT 

  2 baris yang dipilih. 
ANALISIS:

Bila Anda memilih semua dari tampilan DBA_USERS, Anda dapat melihat informasi penting pada setiap pengguna. Perhatikan bahwa password dienkripsi. DBA_USERS adalah pandangan utama yang digunakan oleh DBA untuk mengelola pengguna.

Keamanan Database

Tiga kamus data dasar dilihat berurusan dengan keamanan, meskipun pandangan ini dapat dikaitkan dengan-gether dengan pandangan yang terkait lainnya untuk informasi lebih lengkap. Ketiga dilihat berurusan dengan peran database, peran yang diberikan kepada pengguna, dan sistem hak istimewa yang diberikan kepada pengguna. Tiga pandangan yang diperkenalkan di bagian ini adalah DBA_ROLES, DBA_ROLE_PRIVS, dan DBA_SYS_PRIVS. Permintaan contoh berikut menunjukkan bagaimana untuk memperoleh informasi yang berkaitan dengan keamanan database.

INPUT:
  SQL> SELECT * 
    2 DARI SYS.DBA_ROLES;
OUTPUT:
  PERAN PASSWORD 
  ------------------------------ -------- 
  NO CONNECT 
  RESOURCE NO 
  NO DBA 
  NO EXP_FULL_DATABASE 
  NO IMP_FULL_DATABASE 
  NO END_USER_ROLE 

  6 baris yang dipilih. 
ANALISIS:

Tampilan DBA_ROLES daftar semua peran yang telah dibuat di dalam database. Hal ini memberi nama peran dan apakah atau tidak peran memiliki password.

INPUT:
  SQL> SELECT * 
    2 DARI SYS.DBA_ROLE_PRIVS 
    3 WHERE Grantee = 'RJENNINGS'; 

  Penerima beasiswa GRANTED_ROLE ADM DEF 
  ------------------------------ -------------------- ---------- --- --- 
  YA NO CONNECT RJENNINGS 
  YA NO RJENNINGS DBA 
  YA NO RJENNINGS RESOURCE 

  3 baris yang dipilih. 
ANALISIS:

Pandangan DBA_ROLE_PRIVS memberikan informasi tentang peran database yang telah diberikan kepada pengguna. Kolom pertama adalah penerima beasiswa, atau pengguna. Menampilkan kolom kedua peran yang diberikan. Perhatikan bahwa setiap peran yang diberikan kepada user sesuai dengan catatan dalam tabel. ADM mengidentifikasi apakah peran itu diberikan dengan opsi Admin, yang berarti bahwa pengguna dapat memberikan peran yang cocok untuk pengguna lain. Kolom terakhir adalah DEFAULT, menyatakan apakah peran yang cocok peran default untuk pengguna.

INPUT / OUTPUT:
  SQL> SELECT * 
    2 DARI SYS.DBA_SYS_PRIVS 
    3 WHERE Grantee = 'RJENNINGS'; 

  Penerima beasiswa HAK ISTIMEWA ADM 
  ------------------------------ -------------------- -------------------- --- 
  CREATE RJENNINGS SESI NO 
  RJENNINGS UNLIMITED tablespace NO 

  2 baris yang dipilih. 
ANALISIS:

Pandangan DBA_SYS_PRIVS daftar semua level hak istimewa sistem yang telah diberikan kepada pengguna. Pandangan ini mirip dengan DBA_ROLE_PRIVS. Anda dapat menyertakan sistem hak istimewa dalam peran tersebut dengan memberikan hak istimewa sistem untuk peran, karena Anda akan ke pengguna.

Database Objects

Database objek fokus utama lain untuk DBA. Beberapa pandangan dalam kamus data memberikan informasi tentang objek, seperti tabel dan indeks. Pandangan ini dapat berisi informasi umum atau mereka dapat berisi informasi rinci tentang objek yang berada dalam database.

INPUT:
  SQL> SELECT * 
    2 DARI SYS.DBA_CATALOG 
    3 WHERE ROWNUM <5;
OUTPUT:
  PEMILIK TABLE_NAME TABLE_TYPE 
  ------------------------------ -------------------- ---------- ---------- 
  CDEF $ TABEL SYS 
  TAB SYS $ TABEL 
  SYS IND $ TABEL 
  SYS CLU $ TABEL 

  4 baris yang dipilih. 
ANALISIS:

DBA_CATALOG adalah hal yang sama seperti USER_CATALOG, hanya pemilik meja ini disertakan. Sebaliknya, tampilan USER_CATALOG berhubungan semata-mata dengan tabel yang dimiliki pengguna saat ini. DBA_CATALOG adalah pandangan bahwa DBA dapat digunakan untuk mengambil cepat melihat semua tabel.

Permintaan berikut ini menunjukkan jenis objek yang ada di database tertentu.


TIP: Anda dapat menggunakan ROWNUM untuk mempersempit hasil pencarian Anda ke nomor baris tertentu untuk tujuan pengujian panggilan. Oracle ROWNUM sebuah pseudocolumn,.ROWNUM seperti ROWID, dapat digunakan pada setiap tabel database atau melihat.

INPUT / OUTPUT:
 SQL> SELECT DISTINCT(OBJECT_TYPE)
  2  FROM SYS.DBA_OBJECTS;

OBJECT_TYPE
  ------------ 
CLUSTER
DATABASE LINK
  FUNGSI 
INDEX
  PAKET 
PACKAGE BODY
  PROSEDUR 
SEQUENCE
SYNONYM
  TABEL 
TRIGGER
VIEW

12 rows selected.
ANALISIS:

Fungsi berbeda dalam permintaan sebelumnya daftar semua jenis objek yang unik yang ada di database. Query ini adalah cara yang baik untuk mengetahui apa jenis objek database desainer dan pengembang yang menggunakan.

Pandangan DBA_TABLES memberikan informasi spesifik tentang tabel database, kebanyakan tentang penyimpanan.

INPUT / OUTPUT:
 SQL> SELECT SUBSTR(OWNER,1,8) OWNER,
  2       SUBSTR(TABLE_NAME,1,25) TABLE_NAME,
  3 SUBSTR(TABLESPACE_NAME,1,30) TABLESPACE_NAME
  4 FROM SYS.DBA_TABLES
  5  WHERE OWNER = 'JSMITH';

OWNER    TABLE_NAME                TABLESPACE_NAME
-------- ------------------------  --------------------
JSMITH   MAGAZINE_TBL              USERS
JSMITH   HOBBY_TBL                 USERS
JSMITH   ADDRESS_TBL               SYSTEM
JSMITH   CUSTOMER_TBL              USERS

4 rows selected.
ANALISIS:

Semua tabel dalam tablespace USERS kecuali ADDRESS_TBL, yang ada di tablespace SYSTEM. Karena hanya Anda yang pernah tabel harus simpan di tablespace SYSTEM adalah tabel SYSTEM, DBA perlu mengetahui situasi ini. Ini merupakan hal yang baik Anda berlari query ini!

JSMITH harus segera diminta untuk memindahkan mejanya ke tablespace lain yang memenuhi syarat.

Tampilan DBA_SYNONYMS menyediakan daftar semua sinonim yang ada di database.DBA_SYNONYMS memberikan daftar sinonim untuk semua pengguna database, tidak seperti USER_SYNONYMS, yang berisi hanya nama-muradif pribadi pengguna saat ini.

INPUT / OUTPUT:
 SQL> SELECT SYNONYM_NAME,
  2 SUBSTR(TABLE_OWNER,1,10) TAB_OWNER,
  3  SUBSTR(TABLE_NAME,1,30) TABLE_NAME
  4 FROM SYS.DBA_SYNONYMS
  5 WHERE OWNER = 'JSMITH';

SYNONYM_NAME                   TAB_OWNER  TABLE_NAME
------------------------------ ---------- ----------
TRIVIA_SYN                     VJOHNSON   TRIVIA_TBL

  1 baris yang dipilih. 
ANALISIS:

Menunjukkan output sebelumnya bahwa JSMITH memiliki sinonim disebut TRIVIA_SYN di atas meja yang disebut TRIVIA_TBL yang dimiliki oleh VJOHNSON.

Sekarang anggaplah bahwa Anda ingin mendapatkan daftar semua tabel dan indeks mereka milik JSMITH. Anda akan menulis permintaan serupa dengan berikut ini, menggunakan DBA_INDEXES.

INPUT / OUTPUT:
 SQL> SELECT substr (TABLE_OWNER, 1,10) TBL_OWNER, 2 substr (TABLE_NAME, 1,30) TABLE_NAME, 3 substr (INDEX_NAME, 1,30) INDEX_NAME 4 5 WHERE SYS.DBA_INDEXES DARI PEMILIK 'JSMITH =' 6 DAN ROWNUM < 5 7 ORDER BY TABLE_NAME; TBL_OWNER TABLE_NAME INDEX_NAME ---------- ------------------------------ - ----------- JSMITH ADDRESS_TBL ADDR_INX JSMITH CUSTOMER_TBL CUST_INX JSMITH HOBBY_TBL HOBBY_PK JSMITH MAGAZINE_TBL MAGAZINE_INX 4 baris yang dipilih.
ANALISIS:

Sebuah query seperti sebelumnya adalah metode yang mudah dari daftar semua indeks yang termasuk dalam skema dan mencocokkannya dengan tabel terkait mereka.

INPUT / OUTPUT:
 SQL> SELECT substr (TABLE_NAME, 1,15) TABLE_NAME, 2 substr (INDEX_NAME, 1,30) INDEX_NAME, 3 substr (COLUMN_NAME, 1,15) COLUMN_NAME, 4 COLUMN_POSITION 5 DARI SYS.DBA_IND_COLUMNS 6 WHERE TABLE_OWNER 'JSMITH =' 7 DAN <ROWNUM 10 8 ORDER BY 1,2,3; COLUMN_NAME TABLE_NAME INDEX_NAME COLUMN_POSITION -------------- ------------------- ----------- -------------- ADDRESS_TBL ADDR_INX --------------- PERS_ID 1 ADDR_INX NAMA ADDRESS_TBL ADDRESS_TBL ADDR_INX 2 KOTA 3 CUSTOMER_TBL CUST_INX CUST_ID 1 CUSTOMER_TBL CUST_INX CUST_NAME 2 CUSTOMER_TBL CUST_INX CUST_ZIP 3 HOBBY_TBL HOBBY_PK SAKEY 1 MAGAZINE_TBL MAGAZINE_INX ISSUE_NUM 1 MAGAZINE_TBL MAGAZINE_INX EDITOR 2 9 baris yang dipilih.
ANALISIS:

Sekarang Anda telah memilih setiap kolom yang diindeks dalam setiap tabel dan memerintahkan hasil dengan urutan kolom yang muncul dalam indeks. Anda telah belajar tentang meja, tapi apa memegang meja? Tablespace berada pada tingkat yang lebih tinggi daripada objek seperti tabel, indeks dan sebagainya. Tablespace adalah Oracle’s mekanisme untuk mengalokasikan ruang untuk basis data. Untuk mengalokasikan ruang, Anda harus tahu apa tablespace saat ini tersedia. Anda dapat melakukan pilih dari DBA_TABLESPACES untuk melihat daftar semua tablespace dan status mereka, seperti ditunjukkan pada contoh berikut.

INPUT / OUTPUT:
 SQL SELECT TABLESPACE_NAME>, STATUS 2 STATUS TABLESPACE_NAME DARI SYS.DBA_TABLESPACES ------ ------------------------------ SISTEM RBS ONLINE ONLINE ALAT TEMP ONLINE ONLINE USERS ONLINE ONLINE DATA_TS INDEX_TS ONLINE 7 baris yang dipilih.
ANALISIS:

Hasil sebelumnya memberitahu Anda bahwa semua tablespace sedang online, yang berarti bahwa mereka yang tersedia untuk digunakan. Jika sebuah tablespace offline, maka objek database di dalamnya (yaitu, tabel) tidak dapat diakses.

Apakah kuota JSMITH di semua tablespace yang ia memiliki akses? Dengan kata lain, berapa banyak ruang yang tersedia untuk objek database JSMITH’s?

INPUT / OUTPUT:
 SQL> SELECT TABLESPACE_NAME,
  2     BYTES,
  3   MAX_BYTES
  4  FROM SYS.DBA_TS_QUOTAS
  5 WHERE USERNAME = 'JSMITH'

TABLESPACE_NAME                     BYTES  MAX_BYTES
------------------------------  ---------- ----------
DATA_TS                         134111232         -1
INDEX_TS                        474390528         -1

2 rows selected.
ANALISIS:

JSMITH memiliki kuota terbatas di kedua tablespace untuk yang memiliki akses. Dalam hal ini jumlah byte yang tersedia di tablespace tersebut tersedia pada pertama-datang pertama-dilayani. Misalnya, jika JSMITH menggunakan semua ruang bebas di DATA_TS, maka tidak ada orang lain yang dapat membuat objek di sini.

Pertumbuhan Database

Bagian ini membahas dua pandangan bahwa bantuan dalam pengukuran pertumbuhan database: DBA_SEGMENTS dan DBA_EXTENTS. DBA_SEGMENTS menyediakan informasi tentang masing-masing segmen, atau objek dalam database seperti alokasi penyimpanan, ruang digunakan, dan luasan. Setiap kali sebuah tabel atau indeks tumbuh dan harus mengambil lebih banyak tempat seperti yang telah diidentifikasi oleh NEXT_EXTENT, meja mengambil sejauh lain. tabel biasanya menjadi terpecah ketika tumbuh dengan cara ini.DBA_EXTENTS menyediakan informasi tentang masing-masing segmen tingkat.

INPUT:
 SQL> SELECT SUBSTR(SEGMENT_NAME,1,30) SEGMENT_NAME,
  2  SUBSTR(SEGMENT_TYPE,1,12) SEGMENT_TYPE,
  3  BYTES,
  4   EXTENTS,
  5 FROM SYS.DBA_SEGMENTS
  6 WHERE OWNER = 'TWILLIAMS'
  7  AND ROWNUM < 5;
OUTPUT:
 SEGMENT_NAME                   SEGMENT_TYPE      BYTES    EXTENTS
------------------------------ ------------ ---------- ----------
INVOICE_TBL                    TABLE            163840         10
COMPLAINT_TBL                  TABLE           4763783          3
HISTORY_TBL                    TABLE         547474996         27
HISTORY_INX                    INDEX         787244534         31

4 rows selected.
ANALISIS:

Dengan melihat output dari DBA_SEGMENTS, Anda dapat dengan mudah mengidentifikasi tabel yang paling mengalami pertumbuhan dengan mengacu pada jumlah luasan. Kedua HISTORY_TBL dan HISTORY_INXhave tumbuh lebih dari dua tabel lainnya.

Selanjutnya Anda dapat melihat setiap tingkat salah satu meja. Anda bisa mulai dengan INVOICE_TBL.

INPUT / OUTPUT:
SQL> SELECT SUBSTR(OWNER,1,10) OWNER, 2 SUBSTR(SEGMENT_NAME,1,30) SEGMENT_NAME, 3 EXTENT_ID, 4 BYTES 5 FROM SYS.DBA_EXTENTS 6 WHERE OWNER = 'TWILLIAMS' 7 AND SEGMENT_NAME = 'INVOICE_TBL' 8 ORDER BY EXTENT_ID; OWNER      SEGMENT_NAME                    EXTENT_ID     BYTES ---------- ------------------------------ ---------- -------- TWILLIAMS  INVOICE_TBL                            0      16384 TWILLIAMS  INVOICE_TBL                            1      16384 TWILLIAMS  INVOICE_TBL                            2      16384 TWILLIAMS  INVOICE_TBL                            3      16384 TWILLIAMS  INVOICE_TBL                            4      16384 TWILLIAMS  INVOICE_TBL                            5      16384 TWILLIAMS  INVOICE_TBL                            6      16384 TWILLIAMS  INVOICE_TBL                            7      16384 TWILLIAMS  INVOICE_TBL                            8      16384 TWILLIAMS  INVOICE_TBL                            9      16384 10 rows selected.
ANALISIS:

Contoh ini menampilkan setiap tingkat meja, extent_id, dan ukuran sejauh dalam bytes. Setiap tingkat hanya 16K, dan karena ada 10 luasan, Anda mungkin ingin untuk membangun kembali meja dan meningkatkan ukuran initial_extent untuk mengoptimalkan penggunaan ruang.Membangun kembali meja akan memungkinkan semua data tabel untuk masuk ke tingkat satu, dan karenanya, tidak terpecah-pecah.

Ruang yang dialokasikan

Oracle mengalokasikan ruang untuk basis data dengan menggunakan “file data.” Ruang secara logis ada dalam tablespace, tapi file data adalah entitas fisik tablespace. Dalam implementasi lain, data juga akhirnya terdapat dalam file data, meskipun file-file data dapat dirujuk oleh nama lain. Tampilan disebut DBA_DATA_FILES memungkinkan Anda untuk melihat apa sebenarnya dialokasikan untuk sebuah tablespace.

INPUT / OUTPUT:
SQL> SELECT SUBSTR(TABLESPACE_NAME,1,25) TABLESPACE_NAME, 2 SUBSTR(FILE_NAME,1,40) FILE_NAME, 3 BYTES 4 FROM SYS.DBA_DATA_FILES; TABLESPACE_NAME           FILE_NAME                                     BYTES ------------------------- ---------------------------------------- ---------- SYSTEM                    /disk01/system0.dbf                        41943040 RBS                       /disk02/rbs0.dbf                          524288000 TEMP                      /disk03/temp0.dbf                         524288000 TOOLS                     /disk04/tools0.dbf                         20971520 USERS                     /disk05/users0.dbf                         20971520 DATA_TS                   /disk06/data0.dbf                         524288000 INDEX_TS                  /disk07/index0.dbf                        524288000 7 rows selected.
ANALISIS:

Anda sekarang dapat melihat berapa banyak ruang telah dialokasikan untuk setiap tablespace yang ada di database. Perhatikan nama file data sesuai dengan tablespace yang mereka milik.

Space Available

Sebagai contoh berikut menunjukkan, tampilan DBA_FREE_SPACE memberitahu Anda berapa banyak ruang kosong tersedia dalam tablespace masing-masing.

INPUT:
 SQL> SELECT TABLESPACE_NAME, SUM(BYTES)
  2 FROM SYS.DBA_FREE_SPACE
  3 GROUP BY TABLESPACE_NAME;
OUTPUT:
TABLESPACE_NAME                SUM(BYTES) ------------------------------ ---------- SYSTEM                           23543040 RBS                             524288000 TEMP                            524288000 TOOLS                            12871520 USERS                              971520 DATA_TS                            568000 INDEX_TS                          1288000 7 rows selected.
ANALISIS:

The preceding example lists the total free space for each tablespace. You can also view each segment of free space by simply selecting bytes from DBA_FREE_SPACE instead of SUM(bytes) .

Rollback Segments

Sebagai daerah untuk menggulingkan transaksi adalah bagian penting untuk kinerja database, Anda perlu tahu apa segmen rollback yang tersedia.DBA_ROLLBACK_SEGS menyediakan informasi ini.

INPUT:
 SQL> SELECT OWNER,
  2 SEGMENT_NAME
  3  FROM SYS.DBA_ROLLBACK_SEGS;
OUTPUT:
 OWNER  SEGMENT_NAME
------ ------------
SYS    SYSTEM
SYS    R0
SYS    R01
SYS    R02
SYS    R03
SYS    R04
SYS    R05

  7 baris yang dipilih. 
ANALISIS:

Contoh ini melaksanakan pilih sederhana untuk daftar segmen rollback semua nama. Jauh lebih banyak data yang tersedia untuk evaluasi Anda.

Dynamic Performance Views

Oracle DBAs dilihat kinerja sering mengakses dinamis karena mereka memberikan detail yang lebih besar tentang ukuran kinerja internal dari banyak data lainnya dilihat kamus. (Pandangan DBA mengandung beberapa informasi yang sama.)

Pandangan ini melibatkan rincian luas, yang merupakan implementasi khusus. Bagian ini hanya menyediakan tinjauan tentang jenis informasi sebuah kamus berisi data yang diberikan.

Sesi Informasi

Sebuah perintah DESCRIBE V SESI $ dilihat berikut. (DESCRIBE adalah perintah SQL * Plus dan akan dibahas pada Hari 20) Anda bisa melihat detail yang terdapat di dalam view..

INPUT:
 SQL> DESCRIBE V$SESSION
OUTPUT:
 Nama Null? Type ------------------------------  -------  ---- SADDR                                    RAW(4) SID                                      NUMBER SERIAL#                                  NUMBER AUDSID                                   NUMBER PADDR                                    RAW(4) USER#                                    NUMBER USERNAME                                 VARCHAR2(30) COMMAND                                  NUMBER TADDR                                    VARCHAR2(8) LOCKWAIT                                 VARCHAR2(8) STATUS                                   VARCHAR2(8) SERVER                                   VARCHAR2(9) SCHEMA#                                  NUMBER SCHEMANAME                               VARCHAR2(30) OSUSER                                   VARCHAR2(15) PROCESS                                  VARCHAR2(9) MACHINE                                  VARCHAR2(64) TERMINAL                                 VARCHAR2(10) PROGRAM                                  VARCHAR2(48) TYPE                                     VARCHAR2(10) SQL_ADDRESS                              RAW(4) SQL_HASH_VALUE                           NUMBER PREV_SQL_ADDR                            RAW(4) PREV_HASH_VALUE                          NUMBER MODULE                                   VARCHAR2(48) MODULE_HASH                              NUMBER ACTION                                   VARCHAR2(32) ACTION_HASH                              NUMBER CLIENT_INFO                              VARCHAR2(64) FIXED_TABLE_SEQUENCE                     NUMBER ROW_WAIT_OBJ#                            NUMBER ROW_WAIT_FILE#                           NUMBER ROW_WAIT_BLOCK#                          NUMBER ROW_WAIT_ROW#                            NUMBER LOGON_TIME                               DATE LAST_CALL_ET                             NUMBER

To get information about current database sessions, you could write a SELECT statement similar to the one that follows from V$SESSION.

INPUT / OUTPUT:
SQL> SELECT USERNAME, COMMAND, STATUS 2 FROM V$SESSION 3 WHERE USERNAME IS NOT NULL; USERNAME                          COMMAND STATUS ------------------------------ ---------- -------- TWILLIAMS                               3 ACTIVE JSMITH                                  0 INACTIVE 2 rows selected.
ANALISIS:

TWILLIAMS ini login ke database dan melakukan pilih dari database, yang diwakili oleh perintah 3.

JSMITH hanyalah login ke database. sesi-Nya tidak aktif, dan ia tidak melakukan semua jenis perintah. Lihat dokumentasi database anda untuk mengetahui bagaimana perintah yang diidentifikasi dalam kamus data. Perintah termasuk SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, dan DROP TABLE.

Statistik Kinerja

Data statistik mengenai kinerja luar wilayah sesi pengguna juga tersedia dalam data kamus.Jenis data yang lebih spesifik dari implementasi pandangan lain yang dibahas hari ini.

Statistik Kinerja meliputi data seperti membaca / menulis tingkat, hit sukses pada tabel, gunakan sistem area global, penggunaan cache memori, informasi kembalikan segmen rinci, informasi transaksi log rinci, dan kunci meja dan menunggu. Pengetahuan baik tentang hampir tak berdasar.

Rencana Tabel

Tabel Rencana adalah tabel default yang digunakan dengan alat pernyataan Oracle SQL, MENJELASKAN RENCANA. (Lihat Hari 15) Tabel ini. Dibuat oleh Oracle disebut script UTLXPLAN.SQL, yang disalin ke server bila perangkat lunak telah diinstal. Data yang dihasilkan oleh alat RENCANA MENJELASKAN, yang Mempopulai RENCANA meja dengan informasi tentang objek yang sedang diakses dan langkah-langkah dalam rencana pelaksanaan pernyataan SQL.

Ringkasan

Meskipun rincian dari kamus data bervariasi dari satu implementasi ke yang lain, konten tetap konseptual sama pada semua database relasional. Anda harus mengikuti aturan sintaks dan sistem manajemen database, tapi contoh hari ini akan memberikan Anda kepercayaan diri untuk permintaan data kamus Anda dan untuk menjadi kreatif ketika melakukan itu.

Catatan: Menjelajahi kamus data petualangan, dan Anda akan perlu untuk mengeksplorasi untuk belajar untuk menggunakannya secara efektif.

1. Dalam Oracle, bagaimana Anda bisa mencari tahu apa tabel dan tampilan Anda sendiri?
2. Jenis informasi yang disimpan dalam kamus data?
3. Bagaimana Anda bisa menggunakan statistik kinerja?
4. Apa sajakah objek database?

Sumber ; http://www.webbasedprogramming.com