02a - SQL

iDB2-FAQ-045 SYSDUMMY1 vs Tableless SQL Statement

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
About author

Founder di Faq400 Srl, IBM Champion, ideatore del sito Faq400.com e del Blog blog.faq400.com. Sviluppatore RPG da quando avevo i pantaloni corti, forte sostenitore della piattaforma IBM i (ex AS400), ho sempre cercato di convididere le mie conoscenze con gli altri tramite forum, eventi e corsi. Oggi, tramite Faq400 Srl, cerchiamo di aiutare le aziende a sfruttare al meglio questa fantastica piattaforma IBM i.

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo: