Subject Re: [firebird-support] What is more effective execute block or select?
Author Svein Erling Tysvær
No, I must admit limited knowledge of MERGE. For Firebird 3 is seems like a good alternative, but I think Fb 2.1 and 2.5(?) requires a WHEN NOT MATCHED THEN INSERT clause (which is typically not desirable in these cases).


2016-01-28 13:31 GMT+01:00 Mark Rotteveel mark@... [firebird-support] <>:
On Wed, 27 Jan 2016 23:01:50 +0100, "setysvar setysvar@...
[firebird-support]" <> wrote:

> [..] On the other hand, there are cases
> where EXECUTE BLOCK can help performance (note, I speak for 2.5, I know
> nothing about Firebird 3):
> UPDATE <HugeTable> h
> SET <AField> = (SELECT <AnotherField> FROM <TinyTable> t WHERE
> h.<SelectiveIndexedField> = t.<SomeField>)
> is much slower than
> Declare variable a integer;
> Declare variable b integer;
>    FOR SELECT DISTINCT <SomeField>, <AnotherField>
>    FROM <TinyTable>
>    INTO :a, :b do
>      UPDATE HugeTable
>         SET <AField> = :b
>         WHERE <SelectiveIndexedField> = :a;

Out of curiosity: have you also compared this with using MERGE?


Posted by: Mark Rotteveel <mark@...>


Visit 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


Yahoo Groups Links

<*> To visit your group on the web, go to:

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    (Yahoo! ID required)

<*> To change settings via email:

<*> To unsubscribe from this group, send an email to:

<*> Your use of Yahoo Groups is subject to: