Perdón pero no creo que Postgres no use un índice porque no entre en RAM!!
El 8 de febrero de 2017, 18:31, jvenegasperu . <jvenegasp...@gmail.com> escribió: > Consultando con un amigo que tambien usa postgres creemos que postgres se > demoro porque hizo un scan secuencial ya que no pudo usar los indices ya > que estos no pudieron ser colocados en memoria porque estos eran mas > grandes que la memoria RAM esto es asi? alguien tiene idea si esto es asi? > > > > El 6 de febrero de 2017, 15:03, jvenegasperu . <jvenegasp...@gmail.com> > escribió: > >> Hola jaime >> buenas tardes >> >> El 6 de febrero de 2017, 13:27, Jaime Casanova < >> jaime.casan...@2ndquadrant.com> escribió: >> >>> 2017-02-04 12:34 GMT-05:00 jvenegasperu . <jvenegasp...@gmail.com>: >>> > >>> > tengo esta consulta corriendo hace 17 horas y aun no termina >>> > >>> > update padronac >>> > set fenac = padron2006.fenac, >>> > ginstruc = padron2006.ginstruc >>> > from padron2006 >>> > where padronac.dni = padron2006.dni >>> > >>> >>> Saludos, >>> >>> Como dijo Jose Maria, un índice sobre padron2006.dni es necesario. Y >>> si tienes índices en la tabla padronac sería mejor eliminarlos y luego >>> reconstruirlos (obvio que solo si se puede, es decir si puedes hacer >>> esto sin usuarios que se vean afectado por la falta de índices). >>> Tienes triggers sobre la tabla? >>> >> >> Jaime primero respondo tu pregunta no hay triggers en ninguna de los >> tablas de hecho la sentencia update es la unica que se ejecuta. >> >> Tengo que comentar tambien que la tabla padronac pesa 2 Gb y la tabla >> padron2006 pesa 3 Gb aunque tiene menos registros tiene mas campos. >> >> El computador donde se ejecuta la sentencia solo tiene 1.7 Gb de RAM y un >> solo procesador que lamentablemente no se de que velocidad porque ese dato >> no me lo da amazon. >> las sentencias se ejecutan sobre postgres 9.5.5 con sus parametros por >> defecto el work_mem esta en 4 megas y shared buffer en 256 Mb >> >> Mientras ejecutaba la consulta el monitor de windows me indicaba que aun >> tenia 280 Mb de memoria ram disponibles todo el tiempo mientras se ejecuto >> la consulta. >> >> En la tabla padron2006 el dni es clave primaria y es de tipo character >> varying de 8 y >> En la tabla padronac el dni es clave primaria y es de tipo character >> varying de 8 >> >> ¿supongo ya no es necesario agregar un indice por estos campos o si? >> >> En alguna parte de la documentacion lei que seria mejor crear un indice >> con patrones pero eso era en caso se use like en este caso es el operador >> "=" >> >> Jaime, Jose Maria ustedes creen que el hecho de que los campos clave >> primaria sean de tipo character varying merme el rendimiento en la >> comparación? >> Acabo de revisar y ya termino la actualizacion estos son los datos que >> tengo >> >> la tabla padronac tiene 22 millones 899 mil registros >> la tabla padron2006 tiene 16 millones 200 mil registros >> >> la actualizacion se completo en 2 dias 15 horas 29 minutos 04 segundos >> >> y se actualizaron 15,621,918 registros en la tabla padronac, entiendo que >> se tuvo que necesariamente analizar el total de registros de la tabla >> padronac uno por uno. >> >> Asi que tengo estos datos >> >> 22899000 Total de registros analizados >> >> 63.5 horas es tiempo total de duracion en la actualizacion >> >> 360614.173 Total de registros procesados por hora >> >> 6010.23622 Total de registros procesados por minuto >> >> 100.170604 Total de registros procesados por segundo. >> >> Alguien a tenido una situación similar con limitados recursos se podria >> lograr hacer esto en menos tiempo? sin aumentar los recursos de hardware? >> >> Les agradezco sus comentarios >> >> >> >>> >>> -- >>> Jaime Casanova www.2ndQuadrant.com >>> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services >>> >> >> >> >> -- >> José Mercedes Venegas Acevedo >> cel Mov RPC 964185205 >> >> skype jvenegasperu >> facebook jvenegasperu >> <jvenegasp...@gmail.com> >> > > > > -- > José Mercedes Venegas Acevedo > cel Mov RPC 964185205 > > skype jvenegasperu > facebook jvenegasperu > <jvenegasp...@gmail.com> >