PDA

View Full Version : [SQL + Oracle] Meglio DECODE o CASE ?


mugnaboa
09-01-2006, 09:46
Ciao bbelli,

ho un cruccio che non riesco a chiarire in nessum modo:

Devo fare delle query SQL per una base dati Oracle 9i. Il Server è utilizzato molto ed ha un sacco si basi dati attive. I risultati finiscono su dei reporting di Visual Studio 2005. Ho bisogno di avere prestazioni il più alte possibile. Da qui il mio problema: per eseguire la stessa istruzione, a livello prestazionale, è meglio usare una decode od un case?

:help: :doh: :help:

cisky
09-01-2006, 12:57
Mah, :confused: ho dato un'occhiata a vari forum e sembra che CASE sia più veloce di DECODE ma non ho trovato nessuna fonte "ufficiale".

Condiderando però che l'istruzione CASE è stata introdotta dalla versione (8.1.6) ed è mooolto più versatile dell'istruzione DECODE, nel dubbio sceglierei il CASE.

In questo forum c'è una discussione che fà al caso tuo:
http://www.orafaq.com/forum/t/42356/0/

Ciao!

cisky
09-01-2006, 13:07
Ho trovato un documento "bibbia" che indica tutto quello che c'è da sapere tra DECODE e CASE:

http://doug.burns.tripod.com/case.pdf

Ciao

mugnaboa
09-01-2006, 13:28
Che dire...grazie infinite!

Immaginavo che il case potesse essere + prestante del decode (se lo hanno rilasciato da poco dicendo di usarlo come sostituto del decode un motivo ci sarà pur stato) ma non avevo dati su cui fare raffronti. Convincere i dba a farmi fare un EXPLAIN PLAN per poi spulciarmelo tutto non credo che sarebbe stata la soluzione giusta (non mi avrebbero nemmeno preso in considerazione e se si con dei tempi da far paura). Ho provato a fare ricerche su web ma mi devo essere impantanato da qualche parte senza successo.