Wednesday, 27 January 2016

Re: [firebird-support] What is more effective execute block or select?

 

On Wed, 27 Jan 2016 10:48:49 -0200, "hamacker sirhamacker@gmail.com
[firebird-support]" <firebird-support@yahoogroups.com> wrote:
> I would know whats methods is more effective, per exemple:
> To know if itens exists or not, select:
> select
> case
> when exists(select 1 from cv_itens where id_cv=51716)
> then 'Y'
> else 'N'
> end as existe_itens
> from rdb$database
>
> OR using block execute:
> execute block
> returns(exist varchar(1))
> as
> begin
> exist='N';
> if (exists(select 1 from cv_itens where id_cv=51716)) then exist='Y';
> suspend;
> end
>
> I think that first method using rdb$database as source, checking
> permissions and others things and second method is not and more
powerfull
> using psql.
>
> I would like to know what you guys think about.

I'd use select 1 from cv_itens where id_cv=51716

and check if you have a row or not. If it can produce multiple rows, then
use select first 1 1 from cv_itens where id_cv=51716, or select 1 from
cv_itens where id_cv=51716 rows 1.

That is much simpler, and likely has less overhead.

Mark

__._,_.___

Posted by: Mark Rotteveel <mark@lawinegevaar.nl>
Reply via web post Reply to sender Reply to group Start a New Topic Messages in this topic (2)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Visit http://www.firebirdsql.org and click the Documentation item
on the main (top) menu.  Try FAQ and other links from the left-side menu there.

Also search the knowledgebases at http://www.ibphoenix.com/resources/documents/

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

.

__,_._,___

No comments:

Post a Comment