Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Calculo estadisticas mediante .bat

Estas en el tema de Calculo estadisticas mediante .bat en el foro de Oracle en Foros del Web. Hola de nuevo,.... A ver chicos/as...He conseguido mediante un .bat realizar el calculo de estadisticas para unas tablas en concreto. Pero para un usuario entero ...
  #1 (permalink)  
Antiguo 04/01/2007, 10:29
 
Fecha de Ingreso: enero-2007
Mensajes: 6
Antigüedad: 17 años, 4 meses
Puntos: 0
Calculo estadisticas mediante .bat

Hola de nuevo,....

A ver chicos/as...He conseguido mediante un .bat realizar el calculo de estadisticas para unas tablas en concreto. Pero para un usuario entero no me funciona.

Lo he hecho mediante un .bat que contiene lo siguiente:

SQLPLUS /NOLOG @C:\ESTADISTICAS.SQL
PAUSE

En el estadisticas.sql contiente lo siguiente:

CONNECT [nombre_usuario]/[pasw_usuario]@[cadena]
SPOOL C:\ESTADISTICAS.lst
SET LINESIZE 100
SET PAGESIZE 50
ANALYZE TABLE [nombre_de_tabla] COMPUETE STATISTICS;
SPOOL OFF
EXIT;

Hasta aquí correcto, pero como lo hago para realizar lo mismo para un usuario entero? He probado de sustituir donde hay el ANALYZE por esto y nada
BEGIN
DBMS_STATS.GATHER_SCHEMA_STATS('[nomre_usuario]',NULL,NULL,NULL,NULL,NULL,TRUE);
END;

He probado si el begin y el end y nada. Se que queda el DOS colgado con saltos de linea cuando le das a enter con orden ascendente.


Tendria que currarme un cursor que recorriera el USER_TABLES para que me devolviera el TABLE_NAME y partir de aqui montarme otro con la sentencia de ANALYZE TABLE? no se me ocurre nada mas.....


(mediante la consola creo que se puede realizar, pero no tengo acceso)


Grácias..
  #2 (permalink)  
Antiguo 15/02/2007, 08:43
 
Fecha de Ingreso: febrero-2007
Mensajes: 1
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Calculo estadisticas mediante .bat

Hola
Prueba con este Script:

set linesize 132
set pagesize 0
set head off
set feedback off
spool F:\Respaldos\Batch\estad.sql
select distinct 'execute dbms_stats.gather_schema_stats(ownname=>'''||owner ||''',options=>''GATHER AUTO'');'
from dba_tables
/
spool off
set head on
set feedback on
connect / as sysdba
spool F:\Respaldos\flash_recovery_area\NOMCEZ\Reportes\e stad.log
@F:\Respaldos\Batch\estad.sql
spool off
set pagesize 20
set head on
set feedback off
col "Fecha Ultima Actualización" format a30
spool F:\Respaldos\flash_recovery_area\NOMCEZ\Reportes\r eporte_estadisticas.log
select last_analyzed "Fecha Ultima Actualización" from dba_tables where owner='SYS' and table_name='FET$';
spool off
exit

Solo cambia lo que necesitas y recuerda alterar cada tabla para habilitar el monitoreo.

Saludos desde Venezuela
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:07.