Está en la página 1de 7

Algunas consultas SQL muy tiles para el administrador de Oracle (DBA) Fecha Jueves, 19 mayo a las 13:31:04 Tema

Bases de Datos Os mostramos algunas consultas SQL muy t les !ara el adm n strador de Oracle Data"ase: estado de la "ase de datos Oracle, !ar#metros generales, $ c%eros de control, cone& ones actuales a Oracle, nom"re del e'ecuta"le (ue se ut l )a, nom"re del usuar o, d cc onar o de datos *v stas y ta"las+, ,- del serv dor, tama.o de la "ase de datos, vers /n de Oracle, 000

De$ n c /n SQL0 1onsultas SQL t les !ara o"tener n$ormac /n so"re Oracle Data"ase0 2rt3culos relac onados0 1r4d tos0

Definici n SQL
SQL *Lengua'e de consulta estructurado+ es un lengua'e declarat vo de acceso a "ases de datos relac onales (ue !erm te es!ec $ car d versos t !os de o!erac ones en 4stas0 5na de sus caracter3st cas es el mane'o del #lge"ra y el c#lculo relac onal !erm t endo e$ectuar consultas con el $ n de recu!erar, de una $orma relat vamente senc lla, n$ormac /n de nter4s de una "ase de datos, as3 como tam" 4n %acer cam" os so"re ella0 6s un lengua'e de cuarta generac /n *47L+0

!onsultas SQL tiles para o"tener informaci n so"re Oracle Data"ase

8 sta (ue muestra el estado de la "ase de datos:

select * from v$instance

1onsulta (ue muestra s la "ase de datos est# a" erta:

select status from v$instance

8 sta (ue muestra los !ar#metros generales de Oracle:

select * from v$system_parameter

8ers /n de Oracle:

select value from v$system_parameter where name = 'compatible'

5" cac /n y nom"re del $ c%ero s!$ le:

select value from v$system_parameter where name = 'spfile'

5" cac /n y nmero de $ c%eros de control:

select value from v$system_parameter where name = 'control_files'

9om"re de la "ase de datos

select value from v$system_parameter where name = 'db_name'

8 sta (ue muestra las cone& ones actuales a Oracle:

select osuser, username, machine, program from v$session order by osuser

8 sta (ue muestra el nmero de cone& ones actuales a Oracle agru!ado !or a!l cac /n (ue real )a la cone& /n
umero_!esiones

select program Aplicacion, count(program) from v$session group by program order by umero_!esiones desc

8 sta (ue muestra los usuar os de Oracle conectados y el nmero de ses ones !or usuar o
umero_!esiones

select username "suario_#racle, count(username) from v$session group by username order by umero_!esiones desc

-ro! etar os de o"'etos y nmero de o"'etos !or !ro! etar o


umero

select owner, count(owner) from dba_ob$ects group by owner order by umero desc

D cc onar o de datos * ncluye todas las v stas y ta"las de la Base de Datos+:

select * from dictionary

select table_name from dictionary

:uestra los datos de una ta"la es!ec $ cada *en este caso todas las ta"las (ue lleven la cadena ;6:-LO;+:

select * from A%%_A%%_&A'%(! where upper(table_name) li)e '*(+,%#*'

:uestra los d s!aradores *tr ggers+ de la "ase de datos Oracle Data"ase:

select * from A%%_&-.//(-!

<a"las !ro! edad del usuar o actual:

select * from user_tables

<odos los o"'etos !ro! edad del usuar o conectado a Oracle:

select * from user_catalog

1onsulta SQL !ara el DB2 de Oracle (ue muestra los ta"les!aces, el es!ac o ut l )ado, el es!ac o l "re y los $ c%eros de datos de los m smos:

!elect t0tablespace_name 1&ablespace1, t0status 1(stado1, -#" 2(+A3(d0bytes)4567845678,7) 1+' &ama9o1, -#" 2((+A3(d0bytes)4567845678) : (!"+(decode(f0bytes, "%%,6, f0bytes))4567845678),7) 1+' "sados1, -#" 2(!"+(decode(f0bytes, "%%,6, f0bytes))4567845678,7) 1+' %ibres1, t0pct_increase 1* incremento1, !"'!&-(d0file_name,5,;6) 1<ichero de datos1 <-#+ 2'A_<-((_!,A=( f, 2'A_2A&A_<.%(! d, 2'A_&A'%(!,A=(! t >?(-( t0tablespace_name = d0tablespace_name A 2 f0tablespace_name(@) = d0tablespace_name A 2 f0file_id(@) = d0file_id /-#", 'A t0tablespace_name, d0file_name, t0pct_increase, t0status #-2(- 'A 5,B 2(!=

-roductos Oracle nstalados y la vers /n:

select * from product_component_version

=oles y !r v leg os !or roles:

select * from role_sys_privs

=eglas de ntegr dad y columna a la (ue a$ectan:

select constraint_name, column_name from sys0all_cons_columns

<a"las de las (ue es !ro! etar o un usuar o, en este caso ;>=;:

!(%(=& table_owner, table_name from sys0all_synonyms where table_owner li)e '?-'

Otra $orma m#s e$ect va *ta"las de las (ue es !ro! etar o un usuar o+:

!(%(=& 2.!&. =& &A'%(_ A+( <-#+ A%%_A%%_&A'%(! >?(-( #> (- %.C( '?-'

-ar#metros de Oracle, valor actual y su descr !c /n:

!(%(=& v0name, v0value value, decode(.!!A!_+#2.<.A'%(, '2(<(--(2', '&-"(', '<A%!(') .!!A!_+#2.<.A'%(, decode(v0is2efault, '&-"(', 'A(!', '<A%!(', ' #') 12(<A"%&1, 2(=#2((.!!(!_+#2.<.A'%(, '.++(2.A&(',

'A(!','<A%!(', ' #', '2(<(--(2', ' #', 'A(!') !(!_+#2.<.A'%(, 2(=#2((.!!A!_+#2.<.A'%(, '.++(2.A&(', 'A(!', '<A%!(', ' #', '2(<(--(2', 'A(!','A(!') !A!_+#2.<.A'%( , v0description <-#+ D$,A-A+(&(- v >?(-( name not li)e 'nls*' #-2(- 'A 5

5suar os de Oracle y todos sus datos *$ec%a de creac /n, estado, d, nom"re, ta"les!ace tem!oral,000+:
* <-#+ dba_users

!elect

<a"les!aces y !ro! etar os de los m smos:

select owner, decode(partition_name, null, segment_name, segment_name EE 'F' EE partition_name) name, segment_type, tablespace_name,bytes,initial_eGtent, neGt_eGtent, ,=&_. =-(A!(, eGtents, maG_eGtents from dba_segments >here 5=5 And eGtents H 5 order by I desc, B

?lt mas consultas SQL e'ecutadas en Oracle y usuar o (ue las e'ecut/:

select distinct vs0sJl_teGt, vs0sharable_mem, vs0persistent_mem, vs0runtime_mem, vs0sorts, vs0eGecutions, vs0parse_calls, vs0module, vs0buffer_gets, vs0dis)_reads, vs0version_count, vs0users_opening, vs0loads, to_char(to_date(vs0first_load_time, 'AAAA:++:224??78F+.F!!'),'++422 ??78F+.F!!') first_load_time, rawtoheG(vs0address) address, vs0hash_value hash_value , rows_processed , vs0command_type, vs0parsing_user_id , #,&.+.K(-_+#2( , au0"!(- A+( parseuser from v$sJlarea vs , all_users au where (parsing_user_id L= 6) A 2 (au0user_id(@)=vs0parsing_user_id) and (eGecutions H= 5) order by buffer_gets4eGecutions desc

<odos los $ c%eros de datos y su u" cac /n:

select * from D$2A&A<.%(

@ c%eros tem!orales:

select * from D$&(+,<.%(

<a"les!aces:

select * from D$&A'%(!,A=(

Otras v stas muy nteresantes:

select * from D$'A=C", select * from D$A-=?.D( select * from D$%#/ select * from D$%#/<.%( select * from D$%#/?.!&

select * from D$A-=?.D(2_%#/ select * from D$2A&A'A!(

:emor a S%areA-ool l "re y usada:

select name,to_number(value) bytes from v$parameter where name ='shared_pool_siMe' union all select name,bytes from v$sgastat where pool = 'shared pool' and name = 'free memory'

1ursores a" ertos !or usuar o:

select b0sid, a0username, b0value =ursores_Abiertos from v$session a, v$sesstat b, v$statname c where c0name in ('opened cursors current') and b0statisticN = c0statisticN and a0sid = b0sid and a0username is not null and b0value H6 order by B

2c ertos de la cac%4 *no de"e su!erar el 1 !or c ento+:

select sum(pins) ($ecuciones, sum(reloads) <allos_cache, trunc(sum(reloads)4sum(pins)*566,7) ,orcenta$e_aciertos from v$librarycache where namespace in ('&A'%(4,-#=(2"-(','!O% A-(A',''#2A','&-.//(-')P

Sentenc as SQL com!letas e'ecutadas con un te&to determ nado en el SQL:

!(%(=& c0sid, d0piece, c0serialN, c0username, d0sJl_teGt <-#+ v$session c, v$sJlteGt d >?(-( c0sJl_hash_value = d0hash_value and upper(d0sJl_teGt) li)e '*>?(-( =A+,# %.C(*' #-2(- 'A c0sid, d0piece

5na sentenc a SQL concreta *$ ltrado !or s d+:

!(%(=& c0sid, d0piece, c0serialN, c0username, d0sJl_teGt <-#+ v$session c, v$sJlteGt d >?(-( c0sJl_hash_value = d0hash_value and sid = 56Q #-2(- 'A c0sid, d0piece

<ama.o ocu!ado !or la "ase de datos

select sum('A&(!)4567845678 +' from 2'A_(3&( &!

<ama.o de los $ c%eros de datos de la "ase de datos:

select sum(bytes)4567845678 +' from dba_data_files

<ama.o ocu!ado !or una ta"la concreta s n nclu r los 3nd ces de la m sma

select sum(bytes)4567845678 +' from user_segments where segment_type='&A'%(' and segment_name=' #+'-(&A'%A'

<ama.o ocu!ado !or una ta"la concreta ncluyendo los 3nd ces de la m sma

select sum(bytes)4567845678 &able_Allocation_+' from user_segments where segment_type in ('&A'%(','. 2(3') and (segment_name=' #+'-(&A'%A' or segment_name in (select indeG_name from user_indeGes where table_name=' #+'-(&A'%A'))

<ama.o ocu!ado !or una columna de una ta"la:

select sum(vsiMe(' #+'-(=#%"+ A'))4567845678 +' from #+'-(&A'%A

6s!ac o ocu!ado !or usuar o:

!(%(=& owner, !"+('A&(!)4567845678 <-#+ 2'A_(3&( &! +' /-#", 'A owner

6s!ac o ocu!ado !or los d $erentes segmentos *ta"las, 3nd ces, undo, roll"acB, cluster, 000+:

!(%(=& !(/+( &_&A,(, !"+('A&(!)4567845678 <-#+ 2'A_(3&( &! +' /-#", 'A !(/+( &_&A,(

6s!ac o ocu!ado !or todos los o"'etos de la "ase de datos, muestra los o"'etos (ue m#s ocu!an !r mero:

!(%(=& !(/+( &_ A+(, !"+('A&(!)4567845678 <-#+ 2'A_(3&( &! +' /-#", 'A !(/+( &_ A+( #-2(- 'A 7 2(!=

O"tener todas las $unc ones de Oracle: 98L, 2BS, L<=,:, 000:

!(%(=& distinct ob$ect_name <-#+ all_arguments >?(-( pac)age_name = '!&A 2A-2' order by ob$ect_name

O"tener los roles e& stentes en Oracle Data"ase:

select * from 2'A_-#%(!

O"tener los !r v leg os otorgados a un rol de Oracle:

select privilege from dba_sys_privs where grantee = ' #+'-(_-#%'

O"tener la ,- del serv dor de la "ase de datos Oracle Data"ase:

select utl_inaddr0get_host_address ., from dual

:ostrar datos de aud tor3a de la "ase de datos Oracle * n c o y descone& /n de ses ones+:

select username, action_name, priv_used, returncode from dba_audit_trail

1om!ro"ar s la aud tor3a de la "ase de datos Oracle est# act vada:

select name, value from v$parameter where name li)e 'audit_trail'

http://www.ajpdsoft.com/modules.php?name=News&file=print&sid=131