effec%ve use of oracle’s 12c database opera%on monitordays... · effec%ve use of oracle’s 12c...
TRANSCRIPT
•ManagedServices•CloudServices•Consul3ngServices•Licensing
Effec%veUseofOracle’s12cDatabaseOpera%onMonitorUTOUGTrainingDays2016KaseyParkerEnterpriseArchitectKasey.Parker@centroid.com
ManagedServices
CloudServices
Consul3ngServices
Licensing
•ManagedServices•CloudServices•Consul3ngServices•Licensing
Leader in Technology, Consulting and Managed Services since 1997
• Part of Oracle’s Top 25 Strategic Partner Program • Focused on Consulting, Managed Services, Cloud Services and Resell • Capabilities From Oracle Applications to Technology to Infrastructure • Oracle Engineered Systems & Tech Partner of the Year Winner: 2014 & 2015
Specializations Oracle Database & Core Technologies Oracle Engineered Systems Oracle Server & Storage Solutions Oracle Performance Tuning Oracle Data Warehousing Oracle Business Intelligence Oracle Applications
Top 25 Strategic Partner
CentroidOverview
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AboutKaseyParker
§ ResideinPlano,TXwithwifeand5kids–recentlymovedfromUtah§ OracleArchitect/DBA
§ Over15YearsofOracleExperience§ OracleCerGfiedExadataSpecialist§ OracleCerGfiedProfessional-DBA§ PerformanceTuningspecialist§ DataWarehousingspecialist§ Last5yearsfocusedonOracleEngineeredSystems
§ Manyindustries§ FinancialServices,Manufacturing,Health/NutriGon,City/CountyGovernment,Retail
§ ServeonBoardoftheUtahOracleUsersGroup(UTOUG)§ Academic
§ BrighamYoungUniversityAlumnus§ ManagementInformaGonSystems
QUICKFACTS
•ManagedServices•CloudServices•Consul3ngServices•Licensing
Agenda
§ WhatistheReal-TimeDBOpera3onsMonitor?§ Whatisrela3onshipbetweenDBOMandRSM?§ HowdoIenableit?§ HowdoIaccessit?§ WhatcanIgetfromitandhowdoIinterpret?§ Q&A
•ManagedServices•CloudServices•Consul3ngServices•Licensing
I want a tracing tool I can use without going to a DBA
What’s a good way to trace parallel processes?
I want a simpler way to trace my SQL
How do I see trace information while my statement is running?
How do I interpret execution plans that are
100+ lines long?
How’sYourSQLTuningGoing?
Is there an easy way to see if I got a
Smart Scan?
How can I best trace a full user “experience”
and not just a statement?
•ManagedServices•CloudServices•Consul3ngServices•Licensing
Real-%meDatabaseOpera%onMonitor
§ DatabaseOpera3on§ Oneormoredatabasetasks,definedbyyou
§ ContainsoneormoreSQLorPL/SQLstatements§ Inoneormoresessions
§ DatabaseOpera3onMonitor(DBOM)§ NamedReal-3meSQLMonitor(RSM)priorto12c§ ExtensionofReal-3meSQLMonitor§ MonitorsingleSQLorPL/SQLopera3ons(pre12c)§ Monitorcompositedatabaseopera3ons(12c)
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DBOpera%onMonitorArchitectureDBMS_SQL_MONITOR
BEGIN_OPERATION[SQLStatement(s)…][PL/SQLBlock(s)...]END_OPERATION
DatabaseOpera%ons
User-DefinedOpera%ons Real-TimeSQLMonitor
AWR
V$SQL_MONITORV$SQL_PLAN_MONITORV$SQL_MONITOR_SESSTAT
DBMS_SQL_MONITOR.REPORT_SQL_MONITOR
Developers DBAs
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DBOM/RSMOverview• PartofDiagnos3cs&TuningPacks
– CONTROL_MANAGEMENT_PACK_ACCESS=DIAGNOSTICS+TUNING
• Featureincludesviews,hints,func3onsandreports• MostvalueinAc3veXMLSQLMonitorReport
• New12cFeatures– CompositeDBOpera3ons
– In-MemoryandAdap3veExecu3onPlanMonitoring
– HistoricalReportsStoredinAWR
– Run-awayQueryLogging
• Myopinion:BestSQLdiagnos3ctoolcreatedbyOracle
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DBOM/RSMBasics• DetailedmonitoringofSQLStatementswhileexecu3ng
• NoPerformancePenalty– Informa3onefficientlycapturedbybackgroundprocesses
– SimilartoAWRandASH
• StatementsMonitoredbyDefaultif:– Consuming>5secondsofDB3me
– Executedinparallel• Use/*+MONITOR*/hinttoforce
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DBOMCompositeOpera%onsIden3fyandExecuteaDatabaseOpera3onby:
– Iden3fythedatabaseopera3on• Opera3onName• Execu3onID
– Startandendthedatabaseopera3on• DBMS_SQL_MONITOR.BEGIN_OPERATION• DBMS_SQL_MONITOR.END_OPERATION
SQL>VARdbop_eidNUMBER;SQL>EXEC:dbop_eid:=DBMS_SQL_MONITOR.BEGIN_OPERATION
('ORA.ETLLOAD.FINANCE',FORCED_TRACKING=>'Y')SQL>INSERT/*+APPEND*/*INTOtab1SELECT...;SQL>INSERT/*+APPEND*/*INTOtab2SELECT...;SQL>EXECDBMS_SQL_MONITOR.END_OPERATION
('ORA.ETLLOAD.FINANCE’,:dbop_eid)
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DBOMCompositeOpera%onsCont.– Iden3fyUsingTaggingforJavaandOCIApplica3ons
• OCICalls– OCIAjrSet– OCIAppCtxSet
• Java– setClientInfo
• OSEnvironmentVariable– ORA_DBOP
– EndOpera3onbysekngTagtoNULL
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DBOMCompositeOpera%onExampleSingleSessionOpera%on
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DBOMCompositeOpera%onExampleMul%pleSessionOpera%on
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessingSQLMonitor(DBOM)Informa3onAccessiblefrom:• AssociatedV$views
– V$SQL_MONITOR,V$SQL_PLAN_MONITORandV$SQL_MONITOR_SESSTAT
– Joinwithotherviews:V$SQL,V$ACTIVE_SESSION_HISTORYandV$SESSION_LONGOPS
• Bejerway:SQLMonitorReports– DBMS_SQL_MONITOR.REPORT_SQL_MONITOR
– Text,HTML,Ac3veXML
• Bestway:Ac%veXMLSQLMonitorReport– AvailablefromOEM,SQLDeveloper,DBMS_SQL_MONITOR
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessingSQLMonitor(DBOM)UsingEnterpriseManager12c• FromPerformanceMenu
UsingEMDatabaseExpress
• FromPerformanceHub
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessingSQLMonitor(DBOM)SQLMonitoringLinkOpensMonitoredSQLExecu3ons
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessingSQLMonitor(DBOM)Clickinganexecu3onopenstheAc3veSQLMonitor
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessingSQLMonitor(DBOM)UsingDBMS_SQL_MONITORpackage• Generateusing
DBMS_SQL_MONITOR.REPORT_SQL_MONITORfunc3on
– UseDBMS_SQLTUNEpriorto12c
• Requiresmany“DBA”typepermissionsincluding:
– ADMINISTERSQLMANAGEMENTOBJECT
– ADMINISTERANYSQLTUNINGSET
– ADVISOR
– Selectrightsonmanyperformanceviews:
• V$SQL*,V$ACTIVE_SESSION_HISTORY,V$SESSION_LONGOPSandmanyDBA_HIST*views
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessingSQLMonitor(DBOM)SETLONG1000000SETLONGCHUNKSIZE1000000SETLINESIZE1000SETPAGESIZE0SETTRIMONSETTRIMSPOOLONSETECHOOFFSETFEEDBACKOFFSETHEADINGOFFSETSHOWOFFSETVERIFYOFFSPOOLmy_sql_monitor_acQve_report.htmlSELECTDBMS_SQL_MONITOR.report_sql_monitor(sql_id=>'1kf86hqsyvddb’, type=>'ACTIVE',report_level=>'ALL')ASreportFROMdual;SPOOLOFF
Example:
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessbyDevelopersConcernedaboutlevelofprivileges?
– Useawrapperfunc3on• AroundDBMS_SQL_MONITOR.REPORT_SQL_MONITOR• Ownedbyaprivilegeduser
– Grantexecuteonwrapperfunc3ontodevelopers
CREATEORREPLACEFUNCTIONEXEC_REPORT_SQL_MONITOR( p_sql_idinvarchar2
)RETURNclobISv_report_clobclob;BEGINv_report_clob:=dbms_sql_monitor.report_sql_monitor(SQL_ID=>p_sql_id);RETURNv_report_clob;END;
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessbyDevelopersDevelopersthengeneratethereportusingascript:
setlong1000000setlongchunksize1000000…columnspoolfilenamenew_valuesplfileacceptsql_idprompt'Entervalueforsql_id:‘select'sqlmon_'||'&&sql_id'||'.html'asspoolfilenamefromdual;spool&splfileSELECTEXEC_REPORT_SQL_MONITOR(p_sql_id=>'&&sql_id',p_type=>'ACTIVE')ASmonitor_reportFROMdual;spooloffundefsql_idundefspoolfilenameundefsplfile
•ManagedServices•CloudServices•Consul3ngServices•Licensing
AccessbyDevelopersHowtofindtheSQLID?UseV$SQL…
setlines200pages60setfeedbackoffechooffsetverifyoffsetpagesize999variablesql_idvarchar2(30)variablesql_textvarchar2(80)setfeedbackonselect/*NORESULT*/sql_idfromgv$sqlswheresql_textlike'%&sql_txt%'
andsql_textnotlike'%NORESULT%'andsql_textnotlike'BEGIN:sql_%’
orderby1desc/undefsql_idundefsql_text
•ManagedServices•CloudServices•Consul3ngServices•Licensing
What’sinaSQLMonitorReport• Execu3onPlan• PlanSta3s3cs
– Es3matedvs.ActualRowCounts• BindVariableValues• DBTimeandWaitSta3s3cs
– Execu3on’sDura3onvs.DBTime– CPUandWaitEvents,and3mespent,foreachexecu3onstep– CPU,IO,MemoryandWaitAc3vity:mappedoverstatementrun3me
• IOSta3s3cs• MemorySta3s3cs• TempAc3vitySta3s3cs• ParallelAc3vityDetail• ExadataCellOffload(SmartScan)Efficiency
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorReport–Newin12cOther,Context-Sensi3vePlanLineSta3s3cs
HashJoinRowSource
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorReport–Newin12cOther,Context-Sensi3vePlanLineSta3s3cs
DowngradeReasons:• 350=duetoadap3veDOP• 351=duetoresourcemanagermaxDOP• 352=duetoinsufficientnumberofprocesses• 353=becauseslavesfailedtojoin
WhywasaDOPdowngraded?
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorReport–Newin12cOther,Context-Sensi3vePlanLineSta3s3cs
ExadataSmartScanandFlash
Cache
ExadataStorageIndexUse
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorReport–Newin12cExecu3onPlanNote
WhywasagivenDOPSelected?
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorReport–Newin12c• In-MemoryQueryRepor3ng
• Sta3s3csCollectorRepor3ng
– FromAdap3veExecu3onPlans
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorReport–Newin12cCompositeDatabaseOpera3onsRepor3ng
•ManagedServices•CloudServices•Consul3ngServices•Licensing
HistoricalSQLMonitorReportsSQLMonitorReportsNowPersistedinAWR• DBA_HIST_REPORTS–StoresReportMetadata• DBA_HIST_REPORTS_DETAILS–StoresReportinXMLFormat• ByDefault,OnlyReportsfor“Longer-running”SQLCaptured• GenerateReportsfromOEMor
DBMS_AUTO_REPORT.REPORT_REPOSITORY_DETAIL
•ManagedServices•CloudServices•Consul3ngServices•Licensing
RunawayQueryLoggingDBResourceManagercannowlogtoSQLMonitor
– Basedoncertainthresholds:• Es3matedExecu3onTime• ElapsedTime(newin12c)• CPU3me• IOrequestsorIOBytes• LogicalIOs(newin12c)
– NewcolumnsinV$SQL_MONITOR• RM_CONSUMER_GROUP• RM_LAST_ACTION• RM_LAST_ACTION_REASON• RM_LAST_ACTION_TIME
– Canalsoswitchconsumergroup,AbortCallorKillSession
•ManagedServices•CloudServices•Consul3ngServices•Licensing
Interpre%ngSQLMonitorReport1. Time&WaitSta3s3cs
– FindWhereSQLisSpendingTime• Dura3onvsDatabaseTime• CPUvsWait
– DatabaseTimeBreakdown• TotalAc3veDBProcessingTimeConsumedbyExecu3on• IfParallel=QC+PXSlaves
2. Ac3vity%inPlanSta3s3csDetail– IfDBTimeMostlyonCPU>>FocusonCPUAc3vity%– IfDBTimeMostlyonWaits>>FocusonWaitAc3vity%– Line(s)withtheMostAc3vity%isWheretoFocus
3. OtherPlanSta3s3cs&MetricsHelpwithDiagnosis
•ManagedServices•CloudServices•Consul3ngServices•Licensing
Interpre%ngSQLMonitorReportWhereDoYouFocus?
•ManagedServices•CloudServices•Consul3ngServices•Licensing
Interpre%ngSQLMonitorReportWhereDoYouFocus?
Arejoinkeysindexed
appropriately?
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DEMO
•ManagedServices•CloudServices•Consul3ngServices•Licensing
DBOM/RSMUseCases• LongExecu3onPlans
– Reading,DiagnosingandQuicklyIden3fyingProblemAreas
• Op3malUseofIndexes• FindBindVariableValues• Par3allyParallelizedSQL• VerifyParallelDML/DDL• DetectSkewBetweenParallelProcesses• Iden3fylatency,networkorapplica3on,outsideofdatabase• FindCauseofHighTempUsage• VerifyExadataSmartScansandCellOffloadEfficiency• Iden3fyLong-runningSQLinBatchorMul3-statementProcesses• Andmanymore!
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorUseCase
LongExecu3onPlans:Reading,DiagnosingandQuicklyIden3fyingProblemAreasWatchoutforVeryLongPlans:• Plans>300linesnotmonitored• _sqlmon_max_planlines=300
– Bydefault,butcanbeincreased• SeeMOSNote:
– HowtoMonitorSQLStatementswithLargePlansUsingReal-TimeSQLMonitoring?(DocID1613163.1)
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorUseCaseFindBindVariableValuesforRunningSQL
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorUseCaseVerifyingEnablingParallelDML
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorUseCasePar3allyParallelizedSQL
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SQLMonitorUseCaseVerifyingExadataSmartScansandCellOffloadEfficiency
•ManagedServices•CloudServices•Consul3ngServices•Licensing
SummaryDBOpera3onandSQLMonitor• Oracle’sBestTooltoDiagnoseSQLPerformance• New12cFeaturesExpandCapability
– MonitorCompositeOpera3ons• UseAc3veSQLMonitorReport
– AccessthroughOEMorDBMS_SQL_MONITOR• ContainsDetailedInfoAboutSQLExecu3on• HelpsIden3fyandResolveMostSQLPerformanceIssues
•ManagedServices•CloudServices•Consul3ngServices•Licensing
Ques3ons?