Eliminar declaración fue muy lento en Oracle
Tengo una tabla con unos 100k registros y quiero eliminar algunas filas. El problema es que laDELETE
La declaración se está ejecutando muy lentamente, no se terminó en 30 minutos. Pero elselect
La declaración fue devuelta en 1 segundo.
losSELECT
declaración es la siguiente:
<code>select * from daily_au_by_service_summary where summary_ts >= to_date('09-04-2012','dd-mm-yyyy') order by summary_ts desc; </code>
yDELETE
declaración es la siguiente:
<code>delete from daily_au_by_service_summary where summary_ts > to_date('09-04-2012','dd-mm-yyyy'); </code>
Esta tabla tiene el único índice ensummary_ts
.
¿Cuál podría ser la razón?
EDIT: la mesa estaba bloqueada por muchas sesiones:
<code>SESSION_ID ORACLE_USERNAME OS_USER_NAME OBJECT OWNER OBJECT_NAME OBJECT_TYPE LOCKED_MODE ---------- ------------------------------ ------------------------------ ------------------------------ -------------------------------------------------------------------------------------------------------------------------------- ------------------- ----------- 213 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3 203 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3 202 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3 190 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3 189 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3 188 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3 187 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY </code>
¿Cómo matar a estas sesiones?
El problema se resolvió después de que eliminé las sesiones que cierran la mesa, gracias a todos por la ayuda. -