Re: Why is the comparison between timestamp and date so much slower then between two dates

Поиск
Список
Период
Сортировка
От Thomas Kellerer
Тема Re: Why is the comparison between timestamp and date so much slower then between two dates
Дата
Msg-id neosv9$q0b$1@ger.gmane.org
обсуждение исходный текст
Ответ на Re: Why is the comparison between timestamp and date so much slower then between two dates  (Alban Hertroys <haramrae@gmail.com>)
Список pgsql-general
Alban Hertroys schrieb am 14.04.2016 um 21:22:
>> now() (and current_timestamp as well) are defined to return the
>> same value throughout the entire transaction.
>>
>> So the optimizer _should_ be smart enough to do the conversion
>> only once at the beginning of the statement and then use that
>> converted value during the execution of the statement without the
>> need to re-evaluate it for each row.
>
> As I understand it, that's not how it works.
>
> If the optimizer would down-convert the value of now() from a
> timestamp to a date, it would lose precision, possibly resulting in
> wrong results for corner cases in general. For that reason, it
> chooses to do the opposite and up-converts the dates. But, because
> the dates are fields and not constants, it has to do so for every
> row.
>
> If that's indeed what happens, then indeed, now() gets evaluated only
> once, but the slow-down is caused by having to do conversions (for
> two field values) for every row.

Ah, that makes sense.



В списке pgsql-general по дате отправления:

Предыдущее
От: Alban Hertroys
Дата:
Сообщение: Re: Why is the comparison between timestamp and date so much slower then between two dates
Следующее
От: "Day, David"
Дата:
Сообщение: understanding postgres backend process memory usage