GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Curiosidade: Qual a diferença entre v_$ e v$ em banco de dados Oracle?

Uma vez um  amigo meu me mandou um script para ser executado no banco de dados. Lembro que na época, uma coisa me chamou atenção: o script chamava a gv_$sgastat , fato  que eu achei interessante no momento e  decidir pesquisar o que seria está determinada gv_$sgastat (com underline depois do gv e  antes do $). Segundo um livro que ando lendo atualmente “somente o mais nerd DBA irá procurar informações sobre a área heap do banco de dados sobre os componentes menores da shared pool” e conclui ” para obter mais informações visualize a v$sgastat”. Depois disso, tive que cornetá-lo , assim como  outros amigos que também procuram  essas informações na Shared Pool. Brincadeiras à parte, através das pesquisas efetuadas, encontrei uma curiosidade nos bancos de dados Oracle. Apesar de muitos DBAs já terem esse conhecimento, aposto que vários outros serão pegos de surpresa neste momento (assim como aconteceu comigo na época) : as views dinâmicas do Oracle, possuem o nome correto de v_$ e v$, são sinônimos públicos para acessarem estas views. Por exemplo, v_$instance, é o nome correto da view, enquanto que v$instance é um sinônimo que permite a visualização da v_$instance. Segue abaixo um exemplo em ambos os casos e uma consulta na ALL_SYNONYMS , demonstrando algumas views com seus respectivos sinônimos:

SQL> select instance_name , status from v_$instance;

INSTANCE_NAME    STATUS
---------------- ------------
BDBRUNO             OPEN

SQL> select instance_name, status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
BDBRUNO             OPEN

SQL> SET PAGES 1000
SQL> SET LINES 200
SQL> select * from ALL_SYNONYMS where SYNONYM_NAME like '%V$INST%'

OWNER                          SYNONYM_NAME                   TABLE_OWNER                    TABLE_NAME

DB_LINK

PUBLIC                         GV$INSTANCE                    SYS                            GV_$INSTANCE

PUBLIC                         GV$INSTANCE_CACHE_TRANSFER     SYS                            GV_$INSTANCE_CACHE_TRANSFER

PUBLIC                         GV$INSTANCE_LOG_GROUP          SYS                            GV_$INSTANCE_LOG_GROUP

PUBLIC                         GV$INSTANCE_RECOVERY           SYS                            GV_$INSTANCE_RECOVERY

PUBLIC                         V$INSTANCE                     SYS                            V_$INSTANCE

PUBLIC                         V$INSTANCE_CACHE_TRANSFER      SYS                            V_$INSTANCE_CACHE_TRANSFER

PUBLIC                         V$INSTANCE_LOG_GROUP           SYS                            V_$INSTANCE_LOG_GROUP

PUBLIC                         V$INSTANCE_RECOVERY            SYS                            V_$INSTANCE_RECOVERY

8 rows selected.

Referência

Espero ter ajudado,

abraços!!

Share

Deixe um comentário

O seu endereço de e-mail não será publicado.