Re: Efficiency Problem

From: Surfing <onlinesurfing(at)gmail(dot)com>
To: Misa Simic <misa(dot)simic(at)gmail(dot)com>
Cc: "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Efficiency Problem
Date: 2013-03-17 11:43:16
Message-ID: 5145AC54.7090009@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

IMMUTABLE solved the problem.

Thank you!

Il 17/03/2013 12.39, Misa Simic ha scritto:
> Hi,
>
> 1) Is function marked as immutable?
>
> 2) if immutable doesnt help... It should be possible execute it first,
> and use it in other dynamics things in where...
>
> Cheers,
>
> Misa
>
> Sent from my Windows Phone
> ------------------------------------------------------------------------
> From: Surfing
> Sent: 17/03/2013 12:16
> To: pgsql-sql(at)postgresql(dot)org <mailto:pgsql-sql(at)postgresql(dot)org>
> Subject: [SQL] Efficiency Problem
>
> Hi all,
> I'm composing a query from a web application of type:
>
> *SELECT * FROM table WHERE a_text_field LIKE replace_something
> ('%**/a_given_string/**%');*
>
> The function replace_something( ... ) is a stored procedure that
> replaces some particular characters with others.
> The problem is that I noticed that this query is inefficient... and I
> think that the replace_something ( ... ) function is called for each
> row of the table.
>
> This observation is motivated by the fact that it takes around 30
> seconds to execute on the table (of about 25,000 rows), whereas if I
> execute:
> *SELECT * FROM table WHERE a_text_field LIKE
> '**/pre_processed_string/**';*
>
> where/pre_processed_string///is the result of the application of
> replace_something ('%/a_given_string/%') it just takes 164ms.
>
> The execution of
> *SELECT replace_something ('%**/a_given_string/**%')*
> takes only 14ms.
>
> Summarizing,
> - Replace function: 14ms
> - SELECT query without replace function: 164ms
> - SELECT query with replace function: 30.000ms
>
> Morever, I cannot create a stored procedure that precalculate the
> /pre_processed_string /and executes the query, since I dinamically
> compose other conditions in the WHERE clause.
>
> Any suggestion?
>
> Thank you.

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Claudio Adriano Guarracino 2013-03-17 15:47:38 link
Previous Message Misa Simic 2013-03-17 11:39:21 Re: Efficiency Problem