Önálló labor beszámoló – 8. félév Nyárády Péter QJA31E Oracle optimization Önálló labor beszámoló – 8. félév Nyárády Péter QJA31E Konzulensek: Kardkovács Zsolt – BME Marton József – BME Sárecz Lajos – Oracle Hungary Kft.
Oracle optimization A feladat: Tesztrendszer tervezése, amely: Teljesítmény szempontjából kritikus Prezentálhatóak rajta különféle optimalizálási eljárások Munkatársam Éberhardt Péter: Mindketten teljesítménnyel foglalkozunk – más módszerek felhasználásával Közös tesztrendszer megfelelő
Oracle optimization Kezdetben: Feladat: Mobil számlázó rendszer tervezése Eredmény: a rendszer tervezése és implementálása során nem a számunkra fontos teljesítmény hangolás állna a középpontban. Konklúzió: más típusú rendszer, amely Jóval egyszerűbb felépítésű Különböző időszakok során eltérő terhelésű Lineárisan skálázható
Oracle optimization Az új rendszer: Egyetemi Hallgatói Információs Rendszer Nem a való életre, csupán tesztrendszer Alapjai közösek Éberhardt Péterrel Ő feladata: Memória konfigurálása TimesTen illesztése Én feladatom: Adatbázis átkonfigurálása Indexek és származtatott struktúrák létrehozása SQL hinting
Oracle optimization Rendszer célja, motivációja: Hallgatók kiszolgálása regisztrációs héten, illetve szorgalmi- és vizsgaidőszakban. Terhelés szempontjából két időszak: Szorgalmi időszak: minimális terhelés Információszerzés, lekérdezések Vizsgajelentkezési és tárgyfelvételi időszak: előzőhöz képest jelentősen megnövekedett terhelés Sok adatmódosítás Még több lekérdezés Cél: megfelelő teljesítmény mindkét időszakban
Oracle optimization Rendszer szereplői: Hallgatók: Oktatók: Információgyűjtés Tárgy- és vizsgajelentkezés Oktatók: Kurzuskiírás Teremfoglalás Vizsgaeredmény beírása Adminisztrátor: Statikus információk (termek, időpontok, tárgyak) felvétele
Oracle optimization Komponensek: Adatbázis (DB): Nyers adatok Származtatott struktúrák Alkalmazás szerver (BLL): Hozzáférés a DB-hez Szolgáltatások a kliensek felé Kliens alkalmazás: Web-es vékony kliens Kevés funkció
Oracle optimization Adatbázis séma: 3 fő tábla: Felhasználó Kurzus Felhasználói információk Számos kapcsolótábla Kurzus Adott tárgyhoz és szemeszterhez Kapcs.táblák foglaláshoz, felhasználókhoz, vizsgák Foglalás Statikus időpont és terem táblákhoz
Oracle optimization Naplózás: Tesztelés: Adatbázis műveletek: Oracle Felhasználói események: Alkalmazás szerver <időbélyeg><status_id><neptun><művelet> Tesztelés: Rendszer kihasználtsága egy rendszert jellemző paraméter Szimulációs scriptek segítségével megadott mennyiségű és összetételű terhelések generálása
Oracle optimization Teljesítmény monitorozása: Oracle 11g beépített eszközeivel Automatic Database Diagnostic Monitor (ADDM) Meghatározott időközönként felvételek a rendszer állapotáról Active Session History (ASH) Rövidebb időszakok teljesítményproblémáinak felderítése Automatic Workload Repository (AWR) Különböző időszakok összehasonlítása
Oracle optimization Szempontok, melyekre az implementálás során figyelni kell majd: Logikai olvasások elkerülése Adatbázis elérésének kerülése Rendezések kerülése Származtatott struktúrák használata Változókat tartalmazó SQL lekérdezések kerülése SQL hintekkel legoptimálisabb végrehajtási terv kikényszerítése
Oracle optimization Oracle Library – Performance Tuning Guide http://download.oracle.com/docs/cd/B28359_01/server.111/b28275.pdf Kevin Loney, Oracle Database 10g : teljes referencia, Panem, Budapest, 2006. 1448 p. + 1 CD-ROM ; 25 cm, ISBN 963-545-439-2 Rick Greenwald, Robert Stackowiak, Gary Dodge, David Klein, Ben Shapiro, Christopher G. Chelliah, Professional Oracle Programming, Wiley, Indianapolis, 2005.