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).

Set

2016-01-28 13:31 GMT+01:00 Mark Rotteveel [email protected]
[firebird-support] <[email protected]>:

> On Wed, 27 Jan 2016 23:01:50 +0100, "setysvar [email protected]
> [firebird-support]" <[email protected]> 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
> >
> > EXECUTE BLOCK AS
> > Declare variable a integer;
> > Declare variable b integer;
> > BEGIN
> >    FOR SELECT DISTINCT <SomeField>, <AnotherField>
> >    FROM <TinyTable>
> >    INTO :a, :b do
> >      UPDATE HugeTable
> >         SET <AField> = :b
> >         WHERE <SelectiveIndexedField> = :a;
> > END
>
> Out of curiosity: have you also compared this with using MERGE?
>
> Mark
>
>
> ------------------------------------
> Posted by: Mark Rotteveel <[email protected]>
> ------------------------------------
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> 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/
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ------------------------------------
>
> Yahoo Groups Links
>
>
>
>

Reply via email to