Re: Is it possible and worthy to optimize scanRTEForColumn()?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Is it possible and worthy to optimize scanRTEForColumn()?
Дата
Msg-id 2606.1512762074@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Is it possible and worthy to optimize scanRTEForColumn()?  (Andres Freund <andres@anarazel.de>)
Ответы Re: Is it possible and worthy to optimize scanRTEForColumn()?  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2017-12-08 10:05:17 -0500, Tom Lane wrote:
>> I'm not particularly concerned about it --- I've not seen profiles
>> suggesting that that function is a big time sink.  Tables with very
>> many columns tend to be inefficient for lots of reasons, and I rather
>> doubt that this particular place is the first thing to hit if you
>> want to make that better.

> FWIW, I've definitely seen scanRTEForColumn() show up in profiles.  In
> some of those cases the issue could be worked around by mostly using
> prepared statements.  But it definitely can be painful, not that
> surprising given the the complexity is essentially
> O(#available-columns * #looked-up-columns).

> However I don't think a microoptimization, even if it were correct, as
> breaking earlier out of the loop would help meaningfully. We'd need a
> different datastructure.

Yeah, if someone were holding a gun on me and saying "make that particular
function faster", I'd think about a hash table rather than scanning a
list.  Perhaps a hash table with all the column names exposed by FROM,
not one hash per RTE.  However, if you have a FROM that exposes a lot of
column names, and then the query only looks up a few of them, you might
come out behind by building a hash table :-(

I'm still unconvinced that this is the first place to improve for
wide tables, anyway.

            regards, tom lane


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

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: Is it possible and worthy to optimize scanRTEForColumn()?
Следующее
От: Andres Freund
Дата:
Сообщение: Re: Is it possible and worthy to optimize scanRTEForColumn()?