Re: Update muy largo

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Update muy largo
Date: 2009-01-23 16:15:25
Message-ID: 4979ED1D.6090205@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gabriel Ferro escribió:
> Siguiendo un poco con el hilo de mi post anterior, para recordarles tengo una funcion que recorre una tabla de personas y le agrega ceros a la izquierda a todos los numdoc.
> Creo que la gran demora de esto (lleva casi 72Hs) es porque tengo un indice sobre el campo (numdoc) que estoy actualizando y como los los registros se insertaron secuencialmente desde archivos planos ordenados por nombres (y sin haber existido en ese momento el indice de numdoc)...por ende el UPDATE me hace registro por registro pero ordenados por numdoc y ahi es que demora tanto....
> no se si mi cabeza anda mal ya que tengo 38 pirulitos pero creo recordar que (en cobol me parece) cuando se hacia una operacion SQL se podia indicar que indice usar, se puede hacer en postgres esto? en este caso especial indicarle a posgres que no use indices sino que realice un barrido secuencial, sin tener que borrar y luego recrear los indices?
>

Hola Grabriel,

En la funcion que enviabas en el post anterior veo que lo unico que haces es completar un campo con
ceros, lo cual no veo porque no lo haces directamente con una sentencia UPDATE:

(Ojo sin probar)

update
padrones.personas
set
numdoc = repeat('0', 12-length(numdoc)) || numdoc
where
length(numdoc) < 12

Esto deberia ser mucho mas rápido y eficiente que la funcion.

Sobre el proceso que lleva 72 horas parece que demasiado tiempo. Yo miraria a ver si esta siendo
bloqueado por algún otro, no recuerdo si esto se veia consultando la tabla pg_locks, o habia alguna
funcion especifica para ello.

Saludos,

--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fabio Arias 2009-01-23 16:28:07 Re: AYUDA CON PARAMETROS
Previous Message Juan Ramirez 2009-01-23 16:14:31 Crear tabla detalle. Cómo lo hago. ¿Un trigger?