General

6.158 Cosa è lo SHOWPLAN di Access
 
Il motore delle Query di MS Jet implementa un ottimizzatore basato sui costi.
Al momento della compilazione di una Query, il motore crea un piano d'esecuzione utilizzato internamente per individuare il modo d'esecuzione più rapido di una Query.
Queste informazioni non vengono esposte all'utente. E' tuttavia possibile aggiungere e utilizzare l'impostazione JETSHOWPLAN nel registro di configurazione, per far generare un file di testo contenente i piani d'esecuzione della query.

Attivazione della funzione SHOWPLAN (disponibile anche per JET 4.0)***
Per ottenere questo, con l'ausilio di RegEdit.exe, posizionarsi su:
\\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\Jet\3.5\Engines
Aggiungere in questa posizione la chiave: Debug
Quindi, dopo l'aggiunta avremo:
\\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\Jet\3.5\Engines\Debug
Sotto la nuova chiave Debug aggiungere un'impostazione chiamata JETSHOWPLAN (maiuscolo) e assegnare tipo dati String.
Per attivare la funzione ShowPlan, inserire il valore della nuova impostazione di registro JETSHOWPLAN su ON ... per disabilitarla assegnare OFF

Dopo l'attivazione di ShowPlan, il motore Jet accoda del testo al file Showplan.out a ogni compilazione di una Query (usare il Trova di Windows per localizzare la posizione del file in questione). Tale testo include il piano specifico per la query generato dall'ottimizzatore di Jet. Analizzando i piani di compilazione del codice SQL è possibile valutare quando il motore utilizzi gli indici disponibili per le selezioni o si affidi a TableScan (più lenti). Analogamente è possibile identificare indici non sfruttati nelle selezini e quindi inutili.

Attenzione: una volta attivata ShowPlan, Jet accoda i piani delle Query al file di testo Showplan.out a ogni compilazione di una Query. Conseguentemente, tale file può raggiungere grandi dimensioni. Pertanto attivare questa funzione solo durante il processo di sviluppo e Debug dell'applicazione.

Si possono avere maggiori ragguagli su SHOWPLAN al seguente link:
http://builder.com.com/5100-6388-5064388.html
E' sicuramente importante anche leggere il documento Word intitolato showplan.doc, inviatoci da Daniele Bertocci e che troverete all'interno del file SHOWPLAN.zip allegato a questa FAQ.

Nel fike .zip allegato a questa FAQ c'è anche il database ISAMSTATS.mdb (in formato Access 97) nel quale troverete, nel modulo ISAMStats, una funzione che può essere utilizzata per:
a) Verificare e confrontare le prestazioni di lettura/scrittura delle Query
b) Valutare l'efficacia di nuove impostazioni di registro del motore JET (attraverso MaxBufferSize o altro)
c) Valutare l'influenza sulle prestazioni di eventuali transazioni esplicite inserite nel codice Visual Basic

Download:
 
  SHOWPLAN.zip (74Kb) MSAccess97 database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.