sql >> Databasteknik >  >> RDS >> Oracle

Lätt i ett nötskal

Som du kanske vet från ett tidigare inlägg på den här bloggen, eller om du följer mig på Twitter (BPeaslandDBA), gillar jag Lighty for Oracle, en produkt från Orachrome. Jag älskar den här produkten och hur lätt det är att få information om prestandadiagnostik. Jag är mycket bekant med Oracles Enterprise Manager och jag använder EM12c hela tiden när jag får samtal om dålig databasprestanda. Men jag hoppas nu att Lighty blir ytterligare ett verktyg i min arsenal.

Jag förväntar mig inte att Lighty kommer att ersätta Enterprise Manager. EM12c gör så mycket mer än vad Lighty kan, det vill säga övervakning och larm, och olika databasadministrationsuppgifter. Så jag kommer att behålla EM12c tack så mycket. Men jag kommer att förlita mig mer på Lightly för den ena delen av mitt jobb som Lighty gör riktigt bra, ge information för att hjälpa till med prestationsjusteringar. Lighty är endast avsedd för prestandajustering och eftersom den har ett unikt fokus gör den jobbet mycket bra.

Jag ska försöka visa några höjdpunkter på varför jag tycker att Lighty är ett bra verktyg att använda. Jag kommer att kontrastera med EM12c. Till att börja med, i EM12c, går jag till Performance –> Performance Home och jag ser en skärm som liknar följande.

Jag kan genast se att jag har CPU-resursstrid. Huvudskärmen i Lighty ser ut som följande.

Så vi har mycket liknande information. Och det är där skillnaderna slutar för mig ... precis i början. I EM12c tvingas jag fatta ett beslut, ska jag gå ner i CPU-användningen eller någon av vänteklasserna som User I/O? Eftersom ovanstående visar CPU-påståenden, i EM12c, klickar jag på CPU-delen av diagrammet för att borra ner. Vid det här laget i EM12c överväger jag bara CPU-användning för min analys. Som vi kommer att se senare kräver inte Lighty att jag gör det valet om jag inte vill. Nedan är mitt diagram från EM12c.

Diagrammet ovan är väldigt vanligt för mig i min Oracle RAC-databas. Diagrammet ovan visar CPU-användningen för tre instanser av min klustrade databas. Vilken dominerar CPU-användningen? De ser alla ganska lika ut. Ändå tvingar EM12c mig att välja en instans för analys. Jag kan inte granska alla 3 instanserna på en skärm. Mycket av mitt arbete är med Oracle RAC-prestandajustering och EM12c:s begränsningar stör mig här. Jag måste välja en vänteklass eller CPU och sedan välja en instans innan jag kan få information om de bästa SQL-satserna eller toppsessionerna. Om jag borrar ner tillräckligt långt i EM12c kan jag få en skärm som följande.

Jag har äntligen kommit någonstans! Jag kan se de bästa SQL-satserna och de bästa sessionerna. Lägg märke till den markerade delen. Detta är detalj för ett 5 minuters fönster. Fönstret på fem minuter representeras av den skuggade rutan i diagrammet för CPU-användning nedan för instansen.

I EM12c kan jag dra den skuggade rutan till en annan tidpunkt och den översta SQL- och toppsessionsinformationen ändras för att matcha. Men jag kan inte ändra detta till ett 10-minutersintervall eller någon annan tidsperiod. Jag har fastnat på 5 minuter.

Låt oss nu kontrastera detta mot Lighty. Vi har redan sett prestandadiagrammet precis som EM12 har. Under det prestandadiagrammet i Lighty finns en detaljruta på de översta SQL-satserna. Jag behövde inte klicka på någonting för att få de bästa SQL-satserna.

Direkt ser jag en skillnad mellan Lighty och EM12c. Mina bästa SQL-satser är inte bara begränsade till CPU eller en specifik vänteklass. Om jag vill begränsa informationen kan jag välja från en menyruta ovanför prestandadiagrammet.

Jag har vanligtvis Alla markerat, men jag kan välja att bara se CPU om jag väljer. Lighty begränsar mig inte som EM12c gör, såvida jag inte väljer att underställa informationen.

Lägg märke till i den översta SQL-filen att jag får en tidslinje över händelserna för den SQL-koden. Till exempel kan vi se att den översta SQL-satsen i listan använder mycket CPU. Andra SQL-satser i listan startar och stoppar deras CPU-användning, visas i ljusgrönt. Användar-I/O visas samtidigt här i blått. Om jag expanderar en SQL-sats kan jag få en uppdelning av den SQL-satsen.

Bara genom att klicka på plustecknet bredvid SQL-satsen kan jag se att denna sats har två olika exekveringsplaner och en av dem förbrukar 93,92% av den totala CPU-användningen. Om jag utökar den planen kan jag se var den spenderar sin tid, uppdelad efter väntehändelse.

Så låt oss sammanfatta detta. Jag startade Lighty och fick omedelbart mina bästa SQL-satser och med ett enda klick vet jag att den översta har en CPU-krävande exekveringsplan. Det är supersnabbt och enkelt enligt mig. EM12c gör det svårare att komma till denna information och EM12c kommer inte att visa mig när en SQL-sats började förbruka CPU och när den slutade som de grafer som Lighty ger.

Om jag klickar på en SQL-sats, ungefär som jag skulle göra i EM12c, kommer Lighty att visa mig statistik för den specifika SQL-en. Om jag klickar på fliken Användning kan jag se alla sessioner som körde detta uttalande. Observera att diagrammet visar en tidslinje för när den sessionen förbrukade den resursen för denna SQL-sats. EM12c kommer inte att visa mig den detaljnivån.

Med ovanstående kan jag lätt se att det är flera sessioner som kör samma uttalande vid olika tidpunkter.

Kommer du ihåg att EM12c fick mig att välja en instans för denna Oracle RAC-databas? I Lighty behöver jag inte göra det valet. Men jag kan ganska lätt. Lighty är RAC-medveten och upptäckte flera instanser. Som standard har jag alla instanser valda. En enkel rullgardinsmeny låter mig välja en av dem och informationen på skärmen anpassas automatiskt till just den instansen.

Kom ihåg i EM12c där det skuggade fönstret representerade en 5-minutersperiod. I Lighty är SQL- och sessionsdetaljerna för hela grafen. Om du vill ha ett 5 minuters fönster kan du välja alternativet 5 minuter ovanför grafen. Som standard har den ett 60 minuters fönster valt.

Och jag kan också välja andra alternativ, inklusive ett anpassat datum-/tidsintervall. I EM12c är grafen för 1 timme och jag kan inte ändra den.

EM12c har sin ASH Analytics för att låta mig titta på prestanda i det förflutna. Men jag har alltid haft problem med det. Med ASH Analytics (som låter mig se Active Session History) kan jag ändra det grå fönstret till att vara något annat än 5 minuter. Men för mig returnerar EM12c helt enkelt aldrig data. Jag kanske har något fel med min EM12c-miljö. Men Lightly fungerar utanför lådan med historisk ASH-data. Låt oss säga att jag fick ett samtal om ett prestandaproblem som inträffade mellan 8:00 och 9:00 i morse. Jag väljer helt enkelt ett anpassat tidsintervall.

I EM12c är jag tvungen att gå till en annan webbsida, Performance –> ASH Analytics.

Hittills har du förmodligen fastnat för tanken att jag tycker att Lighty är ett snabbt och enkelt sätt att få mycket av samma information som jag kan få från EM12c. Och du skulle ha rätt! Här är ett annat område som jag gillar med Lighty. Om jag går till Fönster -> Övervakning av flera databaser kan jag se grafer över många olika prestandamått för flera databaser. Här är ett exempel. I ett ögonkast kan jag övervaka flera databaser på en skärm. EM12c låter mig inte göra det. Jag kan se att databasen längst till höger är ganska inaktiv medan databasen i mitten blir ganska hårt drabbad. När jag rullar ner på sidan får jag diagram för många mätvärden:

  • Parser
  • Användarsamtal
  • Transaktioner
  • Läser och skriver
  • Disklatens
  • Disk I/O-genomströmning
  • Globala cacheöverföringshastigheter
  • Gör om generationshastigheter
  • Nätverkstrafik

I EM12c skulle jag behöva besöka för många sidor för att få samma information som Lighty ger mig på en sida.

Alla mina exempel förlitar sig på samma diagnostik- och trimpaket som jag har licensierat. Om du inte licensierar dessa, tillhandahåller Lighty liknande funktionalitet med Statspack och deras version av L-ASH (Lighty ASH).

Sammantaget tycker jag att Lighty är ett bra verktyg för DBA:n som ansvarar för prestationsjustering. Kostnaden är också mycket rimlig. Ju mer jag använder verktyget, desto mer kommer jag att uppskatta hur snabbt jag kan få information. Jag kan slå på eller stänga av saker med högst två klick för att enkelt kunna gå igenom grundorsaken till mina prestandaproblem. Jag uppmuntrar alla Oracle DBA:s att ladda ner testversionen och se om den här produkten är rätt för dem. Lighty finns här:http://www.orachrome.com/en/index.html


  1. PL/SQL-funktionen i Oracle kan inte se DBMS_AQ

  2. MySQL-funktion för att hitta antalet arbetsdagar mellan två datum

  3. Ska jag använda en inline varchar(max) kolumn eller lagra den i en separat tabell?

  4. Hur använder jag på delete cascade i mysql?