On Wed, Jan 27, 2016 at 7:48 AM, hamacker sirhamac...@gmail.com
[firebird-support] <firebird-support@yahoogroups.com> wrote:

>
>
> I would know whats methods is more effective, per exemple:
>

Example below shows two convoluted ways to return 'Y' or 'N' depending on
whether an item with a particular id exists: a select against rdb$database
and an execute block.

If the question is which is likely to perform better, then the answer is
the select.
Select statements can be compiled and optimized once and reused, avoiding
validating access and metadata references.  The execute block must be
compiled,
optimized, and access checked each time it's used.

In general, execute block should be used when you want to change what
Firebird
considers fundamental elements of a query - the fields returned, the tables
accessed,
the sorting elements, and the conditions in the on and where clauses.

If the question is which of these particular queries is more effective, the
answer is
neither.  Mark pointed out that there are much simpler ways to determine if
an item
with a particular value exists, though they simply fail to return a value
when the
answer is no.  In most cases it's pretty easy to build the rest of the
logic in whatever
it is that's asking the question.

Good luck,

Ann




> 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.
>
>
>
> 
>
  • [firebird-suppo... hamacker sirhamac...@gmail.com [firebird-support]
    • Re: [fireb... Mark Rotteveel m...@lawinegevaar.nl [firebird-support]
    • Re: [fireb... Ann Harrison aharri...@ibphoenix.com [firebird-support]
      • Re: [f... setysvar setys...@gmail.com [firebird-support]
        • Re... Mark Rotteveel m...@lawinegevaar.nl [firebird-support]
          • ... Svein Erling Tysvær setys...@gmail.com [firebird-support]
            • ... Mark Rotteveel m...@lawinegevaar.nl [firebird-support]
        • Re... Ann Harrison aharri...@ibphoenix.com [firebird-support]
          • ... Helen Borrie hele...@iinet.net.au [firebird-support]
      • Re: [f... hamacker sirhamac...@gmail.com [firebird-support]

Reply via email to