2011/3/8 Miguel Angel Hernandez Moreno <miguel.hdz....@gmail.com>: > saludos lista > > hace unos momentos un usuario se conecto por pagina y accedio a la bd, > genero una consulta > muy pesada (definiendo como varios select anidados, con inner's e inserts). > El cerro la pagina > pero la consulta efecutada desde las 14:05 seguia activa. y ya son las 16:09 >
y como sabria postgres que el usuario cerro la pagina? es decir, la base sabe que un usuario le pidio datos asi que el se ocupa en recuperarlos y luego devolverlos. lo que tu sigueres es que la base chequee a cada rato si el cliente aun esta esperando los datos? que tal si mejor al cerrar la pagina cancelas las consultas y cierras las sesiones? imagino que debe haber una manera de hacer eso pero parece mas practico que un chequeo continuo solo por si acaso > > A lo que me pregunto, existe alguna forma de que los procesos que no estan > en función puedan ser eliminados > de forma inmediata, ese si esta en funcion, esta ejecutando un SELECT que el cliente que debia receptar el resultado ya no existe es otro asunto > yo use la sentencia > > select pg_cancel_backend(19855) ; > deberia funcionar, prueba un par de veces mas con pg_cancel_backend() sino usa pg_terminate_backend() > pero el proceso jamas termino, existe algun parametro para que las consultas > o inserciones que se queden > al borde del colapso se puedan eliminar??? Yo manejo SLE 11.2, Postgres > 9.0.1 > quiza puedas usar statement_timeout para que las consultas no duren mas de cierto tiempo, quiza cuando ya lleven una hora mas las matas... pero me parece algo arbitrario -- Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte y capacitación de PostgreSQL - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda