Ich habe eine Test-
DB angelegt mit diesen zwei Tabellen. Adressen hat 1000 Datensätze und die Rechnungen 5000.
Über IBExpert Testdaten-Generator die Tabellen befüllt.
Die RechnungsNr 520 existiert nur einmal und ist ein unique Index gesetzt.
Code:
update adressen a
set a.aktiv = 1
where exists (select null
from rechnungen r
where r.rechnungsnr = 520
and r.adresseid = a.adresseid) /* hier die Verknüpfung zwischen Rechnung und Adressen */
order by a.adresseid
Plan für Exists
--------------------------------------------------------------------------------
PLAN (R INDEX (RECHNUNGEN_IDX1))
PLAN (A ORDER PK_ADRESSEN)
1 record(s) was(were) updated in ADRESSEN
------ Performance info ------
Prepare time = 31ms
Execute time = 813ms
Current memory = 35.717.744
Max memory = 35.889.424
Memory buffers = 2.048
Reads from disk to cache = 3
Writes from cache to disk = 0
Fetches from cache = 6.025
-----------------
Über die StoreProc:
------ Performance info ------
1 record(s) was(were) updated in ADRESSEN
Prepare time = 0ms
Execute time = 47ms
Current memory = 35.986.464
Max memory = 36.173.296
Memory buffers = 2.048
Reads from disk to cache = 0
Writes from cache to disk = 0
Fetches from cache = 21