result_cache multiple dinamico columns 10g sql oracle caching oracle10g

sql - multiple - pivot oracle columns to rows



Cómo borrar todos los elementos en caché en Oracle (4)

Estoy afinando las consultas SQL en una base de datos Oracle. Quiero asegurarme de que todos los elementos almacenados en caché se borren antes de ejecutar cada consulta para evitar resultados de rendimiento engañosos. Borro el grupo compartido (para deshacerse de los planes SQL en caché / explicación) y el caché del búfer (para deshacerse de los datos en caché) ejecutando los siguientes comandos:

alter system flush buffer_cache; alter system flush shared_pool;

¿Hay más que debería hacer o es suficiente?

¡Gracias!



También debe recopilar estadísticas, ya sea para sus esquemas o incluso para toda la base de datos:

begin dbms_stats.gather_schema_stats(''schema_name''); end;

o

begin dbms_stats.gather_database_stats; end;

Y luego borre el grupo compartido.


Tenga en cuenta que el sistema operativo y el hardware también almacenan en caché, lo que puede sesgar los resultados.


Yo diría que presentaría un resultado engañoso porque ha borrado todos los cachés. La base de datos en el mundo real, solo está en ese estado una vez en su vida. De hecho, cuando se realizan pruebas de rendimiento, generalmente es una práctica aceptada ejecutar una consulta varias veces para que pueda ver el beneficio del almacenamiento en caché (y otras optimizaciones).