12.2. Az adatbázis-teljesítmény feltérképezése

Az adatbázisbeli teljesítményproblémák kezelésének tervezése minden alkalmazás megvalósításnál kritikus komponens. Az adatbázis-adminisztrátornak kell kitalálni egy tervet, amellyel megbizonyosodhat arról, hogy az adatbázisbeli teljesítményproblémák elemzését és kezelését végrehajtották a cég minden adatbázis-alkalmazásához. A teljes teljesítménykezelési terv tartalmazza az eszközöket is, amelyek segítik az alkalmazásteljesítmény monitorozását, illetve az adatbázis és az SQL utasítások hangolását.

Követve a 80/20 szabályt az első lépés a legproblémásabb területeket azonosítani. Ez nem olyan könnyű, mint amilyennek látszik.

A 80/20 szabály, vagy más néven Pareto-elv egy régi alapelv, amely azt állítja, hogy a 80%-a az eredménynek 20% erőfeszítésből származik. Ez a szabály általában a legtöbb erőfeszítés alkalmazásánál igaz. Egy kis erőfeszítés meghozza a legtöbb jutalmat. Az adatbázis-teljesítmény hangolásakor az adatbázis-adminisztrátornak először arra a teljesítményproblémára kell koncentrálnia, amely a legnagyobb valószínűséggel a problémát okozza, mert a hangolási erőfeszítése itt térül meg a legjobban.

Az a legvalószínűbb, hogy az adatbázis-alkalmazás teljesítményproblémájában a bűnös egy nem megfelelő SQL utasítás vagy alkalmazáskód. Tapasztalatok azt mutatják, hogy az adatbázis teljesítményproblémáinak a 75-80%-a visszavezethető a szegényesen kódolt SQL utasításokra vagy alkalmazás logikára. Ez nem jelenti azt, hogy az alkalmazásokban szükségszerűen rosszak az SQL utasítások. Lehet egy alkalmazás 100%-osan hangolva volt a gyors adatbázis-elérésre, amikor az először a termelési környezetbe került, de idővel a teljesítménye csökkenhetett. Az ilyen teljesítménycsökkenést sok dolog okozhatja, mint például az adatbázis növekedése, új felhasználók, az üzleti követelmények változása, stb.

A gyenge teljesítményű SQL utasításokat sok probléma okozhatja, például:

Nagyon nehéz feladat megtalálni a legköltségesebb SQL utasításokat. A másik nehézséget okozó feladat azoknak az SQL utasításoknak a felfedezése, amelyek több száz vagy több ezer programban vannak elrejtve. A teljesítményre ugyancsak nagy hatással lehetnek az interaktív felhasználók, akik ad hoc lekérdezéseket generálnak.

Érdemes SQL monitort használni, hogy azonosítani lehessen az SQL utasítások futását a rendszerben. Ez az eszköz SQL utasításokat használ, amely segítségével vissza tudja vezeti az utasítást arra, hogy ki és melyik programból adta azt ki és milyen erőforrásokat használt fel. Ha azonosítottuk a leginkább erőforrás-igényes utasításokat, akkor hangolhatjuk a legköltségesebb utasításokat.

Nem mindig nyilvánvaló, hogy a szegényesen kódolt SQL utasítást hogyan lehet hangolni. Az SQL utasítások megfelelő kódolása és hangolása egy bonyolult feladat. Nem feladatunk foglalkozni vele.

Más tényezők is befolyásolhatják negatívan az adatbázis-teljesítményt. Ellenőrizzük időnként az adatbázis-kezelő rendszernek és a szerver operációs rendszerének a teljes teljesítményét. Néhány részlet, amelyet az ellenőrizésnek tartalmaznia kell: