Last Updated on 24 Luglio 2021 by Roberto De Pedrini
Ottimo post di Kent Millligan sul sito “DB2 for IBM i” (https://db2ibmi.blogspot.com/2021/07/tale-of-tape-sysdummy1-vs-tableless-sql.html) che confronta le prestazioni di statement SQL che coinvolgono SYSIBM.SYSDUMMY1 verso “tableless” statement, che non coinvolgono una tabella.
Gli esempi che riporta “DB2 for IBM i” sono molto chiari, meglio utilizzare una sintassi come questa:
VALUES (UPPER(:hv), CURRENT TIMESTAMP)
INTO :hv1, :hv2
oppure
SET :hv1 = UPPER(:hv);
SET :hv2 = current timestamp;
rispetto alla classica istruzione che troviamo spesso anche nei documenti ufficiali IBM
SELECT UPPER(:hv), CURRENT TIMESTAMP
INTO :hv1, :hv2
FROM sysibm.sysdummy1
Il motivo è molto semplice … nel primo caso non viene fatto nessun accesso alle tabelle … in quello con SYSDUMMY1 invece sì (anche se è una tabella semplice con una sola column e una sola row!)
--- Roberto De Pedrini Faq400.com