12. fejezet - 12. fejezet - Teljesítmény

A legtöbb cég monitorozza és hangolja az IT infrastruktúrájának a teljesítményét. Ez az infrastruktúra szervereket, hálózatokat, alkalmazásokat, asztali gépeket, és adatbázisokat tartalmaz. Az adatbázis-adminisztrátorok azonban gyakran túl elfoglaltak ahhoz, hogy odafigyeljenek a napi taktikai adatbázis-adminisztrációs feladatokra, így a rendszerüket nem proaktív módon figyelik és hangolják, annak ellenére, hogy valójában proaktív módon szeretnék. Így a teljesítmény javítására szolgáló lépéseket általában reaktív módon teszik meg, válaszul az olyan eseményekre, mint például egy felhasználónak válaszidőproblémája van, vagy egy táblatér kifut a lemezterületből stb.

A teljesítményproblémák kezelésének igazából egy cégszintű törekvésnek kellene lennie. A cég teljesítményproblémáinak a kezelése gyakran az adatbázis-adminisztrátori csoport feladata lesz, mert a legtöbb esetben az adatbázis-kezelő rendszert jelölik meg bűnösként mindaddig, amíg ártatlannak nem bizonyul. Minden teljesítményproblémáért az adatbázis-kezelő rendszert okolják, tekintet nélkül a valódi okra. Az adatbázis-adminisztrátornak ki kell tudnia deríteni, hogy mi a valódi oka a teljesítmény csökkenésének, hogy bebizonyítsa, hogy azt nem az adatbázis-kezelő rendszer okozza. Emiatt az adatbázis-adminisztrátornak ismernie kell a teljes IT infrastruktúrának legalább az alapjait, illetve szüksége van sok olyan segítőkész ismerősre, akik más területeken szakemberek (mint pl. operációs rendszer, hálózat, kommunikációs protokoll stb. szakértők). Ha az adatbázis-adminisztrátor ismeri az IT infrastruktúra nagy részét, akkor hatékonyan tud válaszolni a teljesítményproblémákra.

A teljesítményproblémák kezelését megkönnyíthetik a piacon fellelhető eseményvezérelt eszközök. Ezek az eszközök előre definiált műveleteket hívnak meg bizonyos jól definiálható események hatására. Például egy esemény az adatbázis proaktív újraszervezését indíthatja el, ha az eléri a tárolási kapacitását. Más eszközök pedig a teljesítményproblémák elemzését és kezelését könnyítik meg.

12.1. A teljesítmény definíciója

Az adatbázis-teljesítmény definícióját nagyon egyszerűen a következőképp adhatjuk meg: A felhasználó információt kér az adatbázistól. Az adatbázis-kezelő rendszer kielégíti a kérést. Azt a sebességet nevezhetjük adatbázis-teljesítménynek, amellyel az adatbázis-kezelő rendszer kielégíti az információ kérést.

Azonban ettől jobb, teljesebb definícióra van szükségünk az adatbázis-teljesítményre. Öt tényező befolyásolja az adatbázis-teljesítményt: munkaterhelés, áteresztőképesség, erőforrás, optimalizáció, versengés.

A munkaterhelés az online tranzakciók, a batch feladatok, az ad hoc lekérdezések, az adattárház elemzés és a rendszerparancsok kombinációja, amelyeket a rendszeren bármely időben végrehajtottak. A munkaterhelés drasztikusan ingadozhat napról napra, óráról órára, percről percre. Néha megjósolható, mint a hónap végi záráskor, más időben viszont megjósolhatatlan. A teljes munkaterhelésnek van az egyik legnagyobb hatása az adatbázis teljesítményére.

Az áteresztőképesség definiálja a számítógép teljes képességét az adatfeldolgozásra, vagyis az az adott mennyiségű munka, ami egy időegység alatt elvégezhető. Függ az input/output műveletek sebességétől, a processzor sebességétől, a számítógép párhuzamos képességeitől, illetve az operációs rendszer és a rendszerszoftver hatékonyságától.

A rendszer rendelkezésére álló hardver- és szoftvereszközöket a rendszer erőforrásaiként ismerjük. Erőforrásként tekintünk például a fizikai adatbázisra, a lemezes tárolási eszközökre, a véletlen elérésű memória chipekre, a gyorsító vezérlőkre, az alkalmazáskódokra, a processzorra, stb. Nagyon lényeges, hogy maga az adat is erőforrás, és igen magas üzleti értéke van.

Az adatbázis-teljesítmény negyedik eleme az optimalizáció. Az optimalizáció során az adatbázis-adminisztrátor, a rendszer-adminisztrátor vagy az alkalmazásfejlesztő úgy módosítja az alkalmazást, az adatbázis-kezelő rendszert vagy valamely, az adatbázis-kezelő rendszerhez kapcsolódó szoftvert, hogy a rendszer ezáltal hatékonyabban működjön, vagy kevesebb erőforrást használjon. A relációs adatbázisokban az egyik legfontosabb cél az, hogy egy adatbáziskéréshez a leghatékonyabb elérési utat használjuk. Ehhez elsősorban lekérdezésoptimalizációra van szükség, amelyet az adatbázis-kezelő rendszer költségformulák alapján valósít meg. Azonban a leghatékonyabb elérési út megtalálásához sok más tényezőt is optimalizálni kell, mint az SQL utasításokat, az adatbázis-paramétereket, az alkalmazói programokat, vagy az adatbázis-kezelő rendszer konfigurációs paramétereit stb.

Ha egy erőforrásra nagy az igény, versengés léphet fel. A versengés olyan helyzet, amelyben a munkaterhelés két vagy több komponense egy erőforrást próbál használni konfliktusos módon, pl. két különböző tranzakció ugyanazt az adatot akarja frissíteni. Ahogy a versengés nő, az áteresztőképesség úgy csökken.

Az öt teljesítménybefolyásoló tényező alapján definiáljuk az adatbázis-teljesítményt. Az adatbázis-teljesítmény úgy definiálható, mint az erőforrások optimalizálása, hogy növeljük az áteresztőképességet és csökkentsük a versengést, lehetővé téve a lehető legnagyobb munkaterhelést.

Az adatbázis-teljesítményt nem lehet elkülönítve kezelni. Az alkalmazások általában az IT infrastruktúra más alrendszereivel és komponenseivel kommunikálnak. Ezeket is figyelembe kell venni a teljes teljesítmény tervezésénél. Nem biztos, hogy az adatbázis-adminisztrátorra kell hárítani a teljesítmény hangolásának a teljes felelősségét. Lehet külső szakértőket hívni, vagy a feladatot megosztani több adatbázis-adminisztrátor vagy más szakember között.