Re: Consulta sobre Split

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: "Mario Sileone (GM)" <msileone(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta sobre Split
Date: 2017-03-21 12:48:00
Message-ID: CA+bJJbz=cczU-D9inSo38h5yGfA66fz8Y+yk0JX07HjyrTnUJA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas tardes:

2017-03-21 0:35 GMT+01:00 Mario Sileone (GM) <msileone(at)gmail(dot)com>:
> Tengo una consulta respecto a las tablas divididas. Tenemos una división
> en tablas que tienen millones de registros diarios, en tablas heredadas
> mensuales.

De las que iria muy bien que pudieramos ver algo para saber como son.....

> Todo funciona de maravillas, salvo que, hemos notado que las consultas con
> variables (between now() - interval '8 hours' AND now()) no hacen caso y
> busca en todas las tablas heredadas.

... lo que puede tener varios motivos ......

> Lo vimos en un explain con las variables y luego uno con las fechas
> literales.

... explain que vendria bien pudiesemos ver.

> La pregunta es, al margen que tenemos la solución mediante código, si existe
> algun método o quizás un quote_literal que transforme la consulta a literal
> o alguna manera para que el postgres la interprete como tal.

Aparte de la solucion que ya te apuntan, construir la consulta con una
funcion, los datos que te comento vendrian bien. Ten en cuenta que las
funciones de timestamp WITH y WITHOUT timezone son truculentas, ya que
muchas veces las funciones de conversion de una a otra son volatiles (
dependen del timezone de la conexion ), y mirando el explain se puede
ver a veces como hay conversiones de tipo en un caso que no hay en
otro. ( p.e. now() exige una conversion si usas timestamp without time
zone en la tabla, pero '2017-03-24 12:34:56' no. Sin embargo con
timezone ninguna lo necesita. Y si le pones zona a la constante lo
puede necesitar. Por eso yo normalmente uso with-timezone pero tengo
cuidado de poner las constantes con zona numerica explicita (
tipicamente UTC=+00 ) ).

Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Sileone (GM) 2017-03-21 12:54:00 Re: Consulta sobre Split
Previous Message Mario Sileone (GM) 2017-03-21 01:49:17 Re: Consulta sobre Split