dimarts, 27 de març del 2007

Més db2...

I aquí venen algunes coses més que he anat aprenent sobre el DB2:

La clàusula With:

El db2 incorpora la instrucció WITH, que permet crear com una mena de vistes virtuals (o common table expressions) que poden ser utilitzades directament des del FROM de les consultes. La principal diferencia entre aquestes estructures i una vista, és que aquestes només existeixen durant el temps d'execució de la consulta.

WITH dadesAlumne AS (Select * From Alumne, AlumneCentre)

SELECT *
FROM dadesAlumne

El principal avantatge que els hi trobo, és poder fraccionar les consultes en trocets i fer-les així més comprensibles i manejables.


Optimització de consultes:
A db2 la opció de posar hints a les querys no existeix. Cosa que segons com, fins i tot pot ser un avantatge. Perquè els hints sempre corren el risc de quedar obsolets quan es passen les estadístiques, fent que el mal acabi sent pitjor que la solució.
A canvi, el gestor del db2 incorpora una instrucció que permet indicar l'esforç què és dedicarà a optimitzar el pla d'execució de les consultes abans de llançar-les. I en principi, a més esforç dedicat a calcular el pla d'execució, millors resultats s'obtindran. De manera, que teòricament, aquesta opció ha de permetre obtenint sempre resultats òptims, independentment dels canvis en les estadístiques.

SET CURRENT QUERY OPTIMIZATION nivell

On nivell és un dels valors: 0, 1, 2, 5, 7 i 9. Essent 0 el nivell més baix d'optimització i 9 el nivell més alt. Cal tenir en compte que el nivell 5 utilitza heurístics per a trobar el pla d'accés òptim i en canvi el nivell 7 ja no ho fa.
Aqui el que fan és utilitzar el nivell 5 per les querys que tenen més de 4 Joins...

Per més informació: http://publib.boulder.ibm.com/infocenter/db2luw/v8//index.jsp


Més sobre les expressions condicionals:
Continuant amb el tema de les expressions condicionals, he trobat un link amb les expressions condicionals que hi ha per als principals SGBDs: http://www.ispirer.com/doc/sqlways38/Output/SQLWays-1-040.html

i de fet, hi estan força ben explicats.