Esperienza professionale descritta in forma anonima
Quando una query SQL restituisce un risultato sbagliato
Alcuni report operativi si basavano su più livelli di viste SQL e di calcolo. Tutte le query potevano essere eseguite correttamente anche quando il report mostrava un valore errato o duplicato.
Per risalire alla causa della discrepanza occorreva partire dal valore riportato e ripercorrere a ritroso la catena di calcolo.
Il contesto
I report operativi combinavano dati relazionali, viste derivate e record storici provenienti da più fonti. I valori dipendevano dal modo in cui le query univano, filtravano e classificavano i record, oltre che dal significato degli identificativi e dei dati nel gestionale.
L’indagine
- Ricostruzione del percorso dei valori a partire dal report, attraverso le viste SQL da cui dipendevano.
- Esame dei calcoli intermedi e delle aggregazioni.
- Analisi delle join che potevano moltiplicare i record.
- Verifica dei filtri e degli identificativi storici.
- Confronto dei risultati con le regole applicative previste.
- Modifica di alcune query e viste dove necessario.
- Valutazione degli effetti sui report a valle.
La difficoltà tecnica
Una query valida può restituire un risultato errato. Una piccola variazione nelle relazioni tra i dati di origine può alterare calcoli a diversi livelli di distanza. La discrepanza può quindi comparire in un report che dipende solo indirettamente dalla relazione che l’ha generata.
Competenze messe in pratica
Analisi di dati relazionali complessi, ricostruzione delle catene di calcolo e verifica che i valori ottenuti rispettino le regole applicative che devono rappresentare.