Apa perbedaan antara av $ view dan yang setara dba_?


9

Apa perbedaan umum antara v$tampilan dan yang dba_setara? Ambil, misalnya, v$tablespacedan dba_tablespaces.

Jawaban:


13

Cara termudah untuk memikirkannya adalah:

  • DBA_ / USER_ / ALL_ tampilan dibuat di kamus data - mereka tidak tersedia jika database tidak dipasang dan dibuka.

  • V$ tampilan cenderung berjalan terhadap instance, dan oleh karena itu mungkin tersedia jika database tidak di-mount, atau tidak dipasang dan dibuka, tergantung pada sifat tampilan.

Menggunakan contoh Anda:

  • V$TABLESPACEadalah pandangan tentang X$KCCTS, yang merupakan struktur memori internal.
  • DBA_TABLESPACES adalah tampilan pada tabel kamus data SYS.TS$

3

Selain perbedaan yang didaftar oleh Adam Musch, ada beberapa perbedaan lagi antara pandangan dba_ dan v $ yang layak disebutkan karena mereka adalah gotcha potensial jika Anda tidak mengetahui perbedaan-perbedaan ini:

1) Sebagian besar (tetapi tidak semua) v $ views tidak secara teknis sama sekali dilihat, tetapi sinonim dengan v_ $ views. Ini adalah perbedaan penting karena Anda tidak dapat memberikan / mencabut izin terhadap sinonim:

sqlplus / as sysdba

grant select on v$tablespace to user1;
   SQL Error: ORA-02030: can only select from fixed tables/views

select table_name from dba_synonyms where synonym_name = 'V$TABLESPACE';
   TABLE_NAME
   -------------
   V_$TABLESPACE

grant select on V_$TABLESPACE to user1;
   grant succeeded.

2) Anda dapat menjalankan kueri kilas balik terhadap tampilan dba_. Namun, menjalankan kueri kilas balik terhadap v $ views menghasilkan data saat ini (12.1 dokumen tentang Menggunakan Oracle Flashback Technology) :

Anda tidak dapat mengambil data sebelumnya dari tampilan kinerja dinamis (V $). Permintaan pada tampilan seperti itu mengembalikan data saat ini.

Anda dapat melakukan kueri pada data sebelumnya dalam tampilan kamus data statis, seperti * _TABLES.

Seperti yang ditunjukkan Adam Musch, v $ views berjalan langsung terhadap instance sedangkan dba_ views berjalan melawan kamus data. Setelah Anda memahami itu, masuk akal mengapa batasan ini ada. Meski begitu, saya benar-benar berharap permintaan kilas balik terhadap v $ views akan mengembalikan kesalahan alih-alih diam-diam tidak berfungsi karena gotcha ini dapat tetap tidak diperhatikan selama beberapa waktu ...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.