Pregunta

¿Cuándo y cómo se debe realizar la recopilación de estadísticas de tablas para Oracle, versión 9 y posteriores?¿Cómo haría para recopilar estadísticas para una base de datos grande, donde la recopilación de estadísticas colisionaría con el "horario comercial"?

¿Fue útil?

Solución

La recopilación de estadísticas debe realizarse siempre que haya grandes cambios en el contenido de los datos, por ejemplo, una gran cantidad de eliminaciones o inserciones.Si la estructura de la tabla ha cambiado, también debes recopilar estadísticas.Es recomendable utilizar la opción 'ESTIMACIÓN'.

Haga esto como un proceso automatizado fuera del horario comercial si es posible, o si tiene que hacerlo durante el horario comercial, elija un momento en el que haya un acceso mínimo a las tablas para las que desea recopilar estadísticas.

Otros consejos

No estoy de acuerdo con que siempre debas reconstruir tus estadísticas después de que haya habido muchas eliminaciones o inserciones.Como siempre, depende.En una situación de almacén de datos, al reconstruir sus vistas materializadas realizará muchas eliminaciones e inserciones, pero la estructura base de los datos no cambiará.

Sólo necesita volver a calcular las estadísticas en una tabla si ha habido un significativo cambio en su contenido.Esto hace no necesariamente significa después de muchas eliminaciones o inserciones, sino más bien cuando las eliminaciones, inserciones o actualizaciones cambian materialmente el contenido con respecto a posibles planes de ejecución.

Si está truncando tablas y reconstruyéndolas (lo que restablecerá sus estadísticas), en lugar de realizar un costoso cálculo estadístico, a menudo es mejor almacenar las estadísticas antes de truncarlas y restaurarlas una vez que haya reconstruido la tabla.

Para guardar las vistas actuales de las estadísticas se utiliza:

dbms_stats.export_table_stats

y para restaurarlos después usas:

dbms_stats.import_table_stats

(Existen procedimientos correspondientes para schema y database.)

Cuando utilice la estimación (porcentaje_muestra), asegúrese de reunir al menos el 10 por ciento.Por debajo de eso, se pueden producir resultados muy cuestionables.

Considere hacer una copia de seguridad de las estadísticas actuales cuando recopile; de ​​esa manera podrá compararlas (si está interesado) y posiblemente restaurarlas si sus nuevas estadísticas causan problemas.Tenga en cuenta que las estadísticas se utilizan para determinar los planes de ejecución; es posible que solo desee recopilarlas si desea que los planes de ejecución cambien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top