Som den trofaste læser af mine tips vil vide, så er jeg en stor fan af EXPLAIN STMTCACHE ALL. Men STMTCACHE ALL er en rimelig ny opfindelse. Derfor var min overraskelse stor, da jeg for et par år siden opdagede, at der også er kommet en EXPLAIN PACKAGE afart af EXPLAIN til i DB2 10. Jeg bed ikke rigtig mærke i, hvad det var for en fisk, før jeg på IDUG hørte om plan management. Så blev jeg nødt til at nærlæse, hvad EXPLAIN PACKAGE kan.
Meget kort fortalt, så populerer EXPLAIN PACKAGE din PLAN_TABLE med den aktuelle accessvej for en navngiven package. Med andre ord, hvis du har en package, som du af en eller anden grund ikke kender den aktuelle accessvej for, så kan du med EXPLAIN PACKAGE få fat i den. Det er simpelthen godt tænkt. Ikke noget med at skulle køre REBIND med EXPLAIN(YES) eller EXPLAIN(ONLY) eller mangle adgang til den PLAN_TABLE, hvor accessvejen er gemt.
Inden du får armene alt for højt op over hovedet over denne feature, så kan den kun benyttes, hvis man er udstyret med SYSADM, SYSOPR, SYSCTRL eller ikke mindt SQLADM autorisation. SYSADM, SYSOPR og SYSCTRL er kun for de få, mens SQLADM i mine øjne er en ret ufarlig autorisation, som sagtens kan udbredes til enhver med interesse for accessveje i DB2 også i et produktionsmiljø.
Adgangen til at bruge EXPLAIN PACKAGE er helt klart den største hindring for en god udbredelse af kommandoen. En mindre detalje er, at hvis en package sidst er blevet BIND'et i DB2 version 8 eller tidligere, så kan EXPLAIN PACKAGE ikke benyttes. Jeg anser ikke denne detalje for nogen større hindring, da langt de fleste installationer laver REBIND ved migrering til nye versioner af DB2, især efter at DB2 er blevet opgraderet med diverse muligheder for at fastholde den eksisterende accessvej.