Terug naar de beginpaginaCentor Homepage

Waardevolle tool voor database-tuners

Oracle Trace events geven meer inzicht in systeemoperaties

Oracle events zijn ontwikkeld om ervoor te zorgen dat de Oracle kernel zich op een manier gedraagt die niet in overeenstemming is met de standaardwerking van de Oracle database. Events worden gebruikt voor debugging, om bugs te vermijden en om de activiteit van de Oracle database te tracen. Zijn Oracle events een synoniem voor een geheimzinnige manier om de database beter te laten werken, of is het een waardevolle tool die de database tuner meer inzicht verschaft?

In het verleden werd het werken met events als een soort mysterieuze activiteit gezien, waar we nooit aan kwamen tot Oracle zei dat het moest. Maar gaandeweg gingen Oracle-experts er toch mee experimenteren en al snel kwamen ze tot de ontdekking dat niet alle events van de bedreigende en mysterieuze soort waren.

Er zijn vier verschillende typen Oracle events:

  • Process Trace events — De zogeheten 10053 en 10046 events zijn trace-events. Zij tracen bepaalde systeemoperaties continu, net zo lang tot het moment dat het tracen wordt gestopt. De resultaten worden naar trace-files geschreven.
  • Events die het gedrag van de database veranderen — Deze events zijn ontworpen om het gedrag van de database te veranderen. Een voorbeeld hiervan is event 10262. Dit event zorgt ervoor dat de database stopt met het rapporteren van geheugen kleiner dan een bepaalde aangegeven waarde.
  • Immediate events — Deze events dumpen diagnostische informatie. De informatie wordt gedumpt zodra het event is uitgevoerd. Hieronder vallen bijvoorbeeld ook system-state dumps en dumps van file headers.
  • On error events — Dit soort events lijkt op immediate events, in die zin dat ze informatie onmiddellijk dumpen. Het verschil in dit geval is dat on error events worden getriggerd door een error event. Het resultaat is een dump file die kan worden gebruikt om de oorzaak van de error te achterhalen.

Het 10046 Trace Event
Het 10046 event maakt het de gebruiker mogelijk om — op een zeer fijn niveau — de executie van een bepaalde set SQL-statements bij te houden. Het 10046 event kan worden ingesteld op sessieniveau (voor het tracen van een bepaalde sessie), maar ook op databaseniveau. Het kan ofwel ingesteld via een parameter file setting, ofwel dynamisch voor de database en voor een bepaalde sessie.

Maar het gaat nog verder. Het 10046 event kan ook worden ingesteld om ervoor te zorgen dat de trace output met verschillende detailniveaus wordt gegenereerd. Zo is bijvoorbeeld level 1 tracing equivalent aan de output die men krijgt wanneer de SQL_TRACE binnen Oracle wordt benut (ALTER SESSION SET sql_trace=TRUE).

De echte grote kracht van de 10046 trace resultaten ligt verscholen in de hogere detailniveaus. Hiermee wordt wachttijd gerelateerde informatie zichtbaar en kan aan variabelen gerelateerde informatie verbinden. De onderstaande tabel geeft een overzicht van de meest gebruikte event levels binnen 10046 trace event in Oracle Database 10g.

Het mag duidelijk zijn dat met name de hogere niveaus van informatie behoorlijk nuttig zijn voor database-tuners. Zou het niet mooi zijn wanneer je kunt zien hoe lang een SQL statement wacht op een schijfleesoperatie? En zou het niet fraai zijn om exact te weten waardoor de einde-maandverwerking zoveel tijd in beslag neemt?

Het werken met Oracle Trace events komt uitgebreid aan bod in het bijna 1.000 pagina’s tellende boek ‘Oracle Tuning: The Definitive Reference’ van Donald K. Burleson. ISBN: 9780974448626.


OC Centor BV
Fultonbaan 2b
3439 NE
Nieuwegein
tel. 030 6020060

Realisatie:
Beaumont Tekst&Ontwerp
H. Dunantweg 20 2400BD
Alphen a/d Rijn
tel. 0172 419370

: Dagelijks Nieuws :
Klik hier voor een actueel overzicht van Linux, Unix, Oracle, DWH, BI, Java, Database, Emercing Technologies, Security, ICT en Financieel nieuws.