safe harbor statement - huodongjia.com does autonomous database mean for the dba? less me on...

67

Upload: dangdang

Post on 27-May-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirecGon.ItisintendedforinformaGonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncGonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andGmingofanyfeaturesorfuncGonalitydescribedforOracle’sproductsremainsatthesolediscreGonofOracle.

2

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

SQLPerformanceTuningintheAutonomousDatabaseEraAndrewHoldsworthChris0neQuCaryDongReal-WorldPerformanceNovember17,2017

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Introduc0ons

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

IntroducGons

•  28YearsatOracle• VicePresidentRealWorldPerformance

– Goodperformanceisrarelyanaccident– Mostpeoplegetthesystemstheydeserve– Goodenoughrarelyis,aspireforexcellencenotgoodenough.

AndrewHoldsworth

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

IntroducGons

•  12YearsatOracle• ManageReal-WorldPerformanceeducaGoninChina•  Learntoanalysisfromtopdown,makesureyouareontherightdirecGon• BeopenandposiGve,aimhigh

曲卓 (Chris0neQu)

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

IntroducGons

•  15yearsofOracleexperience•  9yearsinRWP• ManageReal-WorldPerformanceprojectsinChina

17/11/16

董志平(CaryDong)

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Real-WorldPerformance

• PartoftheDatabaseDevelopmentOrganizaGon• GlobalTeamlocatedinUSA,Europe,Asia•  350+combinedyearsofOracledatabaseexperience•  InnovatetoachieveexcepGonalDatabasePerformance• Ourmethods:

•  Usetheproductasitwasdesignedtobeused•  Numericalandlogicaldebuggingtechniques•  Educateothersaboutthebestperformancemethodsandtechniques•  Avoidandeliminate“tuning”byhacking/guessing/luck

WhoWeAre

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Wheredatabaseuserlookforperformanceimprovements

Percep0on

ApplicaGonAlgorithmnsandCorrectProductUsage

DatabasePlagorm

ThebestplacetolookforperformanceImprovements

17/11/16

TheRealWorldPerformancePercepGonProblem

Reality

ApplicaGonAlgorithmnsandCorrectProductUsage

DatabasePlagorm

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

WhyAutonomousDatabase?

SQLPerformanceTuningStrategy

MakesTuningSmarter

Panel

1

2

3

4

10

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

WhyAutonomousDatabase?

SQLPerformanceTuningStrategy

MakesTuningSmarter

Panel

1

2

3

4

11

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

OracleVisionforAutonomousDatabaseGoal-EliminateallhumanlaborNohumanlabormeanslowercostNohumanerrormeansbeierreliabilityandsecurity

12

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Oracle’sVisionforAutonomousDatabase

• Self-Driving– Userdefinesworkloadsandpolicies,databasemakesthemhappen

• Self-Securing– ProtecGonfrombothexternalaiacksandinternalusers

• Self-Repairing– AutomatedprotecGonfromalldownGme

13

Howwedoit

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Automated

•  ThecarsimplifiesoperaGonsbyautomaGngtasks:– Cruisecontrol– Emergencystopping– Warningsforlanechanges

•  ThedatabasesimplifiesoperaGons:–  AutomaGcstoragemanagement,automaGcstoragemanagement,…

–  Dozensofotherfeatures

Autonomous

•  Thecardrivesitself– Noneedtousethesteeringwheelorbrake.

– Simplytellthecarwhereyouaregoing.

•  Thedatabasemanagesitself– AllfeaturesautomaGcallyimplemented– Simplytellthedatabaseyourgoals

14

Automatedvs.Autonomous

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

AutomaGcallyDiagnosesPerformance

• AutonomousDatabaseincludesOracle’sindustryleadingdiagnosGcsautomaGon

• AutomaGcDatabaseDiagnosGcMonitor(ADDM)– AutomaGcallydiagnosesrootcauseofperformanceissues– A.I.(ExpertSystem)

• AcGveWorkloadRepository(AWR)– AutomaGcallykeepsdetailedperformanceandresourceuGlizaGonhistory

• Real-TimeSQLMonitoring– AutomaGcallydiagnoseshowresourcesareusedinSQLstatements

15

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

AutomaGcallyOpGmizesItself

•  AutonomousDatabaseincludesOracle’sindustryleadingdatabasetuningautomaGon•  ManydatabasealgorithmsselfopGmize–caching,locking,storageindexes,offload,etc.

•  OpGmizerisnowfurtherautomatedbygatheringstaGsGcsasnewdataisloaded

•  AutomaGcSQL(Re)Tuning– Machinelearningtechnologythatisconstantlyre-evaluaGngSQLplansbasedonthelateststaGsGcsandrecommending/implemenGngbeierplans

•  Tuningisworkloaddependent–e.g.OLTPvsanalyGcssowespecializeservices•  Tuningisanextremelydifficultproblem

– EvenschedulingafleetoftruckstoopGmallymakedeliveriesisincrediblycomplex– Databasehasmanydegreesoffreedomandtradeoffsthatmustbeconsidered

16

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

DatabaseAdministratorQuesGonsandFears

• Willmyjobgoaway?

• Willmyjobchange?

• WillIlosecontrol?

17

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

WhatdoesAutonomousDatabasemeanfortheDBA?

Less0meonAdministra0on

•  LessGmeoninfrastructure•  LessGmeonpatching,upgrades•  LessGmeonensuringavailability•  LessGmeontuning

18

More0meonInnova0on

• MoreGmeondatabasedesign• MoreGmeondevelopingnewapps• MoreGmeondataanalyGcs• MoreGmeonsecuringdata

Challenge:Therearemoredatamanagementtasksthanhumanstodothework

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Realityvs.Fears

•  Yourjobwillnotgoaway-thereisashortageofskilleddatabaseexperts– DatabaseautomaGonhasbeenimprovingfordecades

• Butyourjobwillchange,soyoumustchange•  YouwillspendlessGmeongenericmaintenance,moreGmeinnova0ng• MoreGmewiththebusiness

– ExecuGngmoreprojects,reducingbacklog,gerngmorevaluefromdata– Cloud’sfastprovisioningandpay-as-you-goenablesrapidexperimentaGon

• MoreGmewithdevelopers– OpGmizingdataaccess,improvingend-userexperience

• MoreGmeonnewtechniqueslikeMachineLearning19

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

DatabaseAdministratorMustEnsureEnd-to-EndServiceLevels•  FocusonopGmizinghowapplicaGonsanddatabasesworktogether:

– Definegooddatamodel,andgoodSQL– AvoidrowataGmeprocessing,andrepeatedlogins/parsing– UnderstandwhereGmeisbeingspent– Understandtradeoffsinparallelism,plans,indexes,parGGons,etc.– Ensurethatsensi0vedataiskeptsecureend-to-end– BewarewhatanapplicaGonasksfor–thedatabasewilldoexactlythat

• NeednewskillsinCloudSystems,CloudNetworking,CloudStorage– DBAsizes,monitors,ensuresfullstackworksasexpected

• DatabaseAdministratorwillgainmorecontrol– Willbeinchargeof,andincontrolof,end-to-endservicelevels

20

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

WhyAutonomousDatabase?

SQLPerformanceTuningStrategy

MakesTuningSmarter

Panel

1

2

3

4

21

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

•  ElapsedGme:1hourà1min- Willyoustopworking?

•  Coulditbepossibletomakeitdownto1sec?

17/11/16

SQLPerformance

AimHigh

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

•  IsitavalidSQL?•  DoyouknowthebusinesslogictheSQLrepresentsfor?

•  IsitawellconstructedSQL?•  AnymistakesintheSQL?

-  N-1joincondiGonsforaNtablejoin?-  Implicitdatatypeconversion?

17/11/16

SQLPerformance

AimHigh

WorkonGoodSQL

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

•  Isyourdatabasesoswarecorrectlypatched?•  Areyourunningwithdefaultinit.oraparameterserngs?Ifnot,why?

17/11/16

SQLPerformance

AimHigh

WorkonGoodSQL

Environmentserngs

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

•  Stats-  Statsonrawdata-  Systemstats

•  Constraints-  NOTNULL,PK,FK,UK

•  Schemadesign-  Index-  ParGGoning-  Compression-  Clustering

17/11/16

SQLPerformance

AimHigh

WorkonGoodSQL

Environmentserngs

OpGmizaGon

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

•  Accessmethod•  Joinmethod•  Joinorder•  DistribuGonmethod•  Skew?

17/11/16

SQLPerformance

AimHigh

WorkonGoodSQL

Environmentserngs

OpGmizaGon

ExecuGon

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

•  Diagnosing-  SQLMonitorReport-  Findtheleverage

17/11/16

SQLPerformance

AimHigh

WorkonGoodSQL

Environmentserngs

OpGmizaGon

ExecuGon

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

WhyAutonomousDatabase?

SQLPerformanceTuningStrategy

MakesTuningSmarter

Panel

1

2

3

4

28

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

IntroducGontoSQLMonitor• ReleasedinOracleDatabase11g•  EnablesindepthperformancemonitoringofaSQLstatement

– Alwayson,enabledoutofthebox– SingleexecuGonoftheSQLstatement– IncludescurrentlyexecuGngstatements

• Monitoredstatements– Serialstatementswith5secondsoftotalCPU/IOGme– Allparallelstatements– /*+monitor*/hint– Queries/DML/DDL

29

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

IntroducGontoSQLMonitor•  Formatsavailable

– Text– HTML– AcGve(usethisone!)

• Availablefrom– MonitoredSQLscreen– commandline– EM,EMExpress– PerfHub

30

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

HowweusetheSQLMonitorreport

•  Topdown– WhereisGmespent?– Whichrowsources?– EsGmatedvsactualrowcardinaliGes?– ExecuGons

•  ParallelserverexecuGons•  NestedloopiteraGons•  ParGGonwiseoperaGons

– Skew

31

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example1

• Querycurrentlyrunsfor40seconds• Needstorununder5seconds•  ExaminaGonoftheSQLMonitorreportshows

– 67%CPU– 33%IO

•  ThemostexpensiverowsourceisHASHJOINRIGHTOUTER(line5)– 45%oftheCPU– Largeamountofread/writefromTEMP

Observa0ons

32

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example1:ObservaGons

33

DuraGon40s

67%CPU,33%IO

MajorityofGmespentinHASHJOIN

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example1

• However…– IstheHASHJOINitselftheproblem?

•  ExaminaGonoftheCardinalityesGmates– ThescanoftheCARGUYStableatline11

•  esGmateof42Mrowsvsactual40Mrows•  esGmateisveryaccurate

– ThescanoftheCARGUYStableatline9•  esGmateof186Krowsvsactual40M• morethat200xunderesGmated

Diagnosis

34

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example1:Diagnosis

35

EsGmatesrows:186K Actualrows:40M

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example1

• Whatisthecauseofthebigmis-esGmateincardinality?– ExaminingthepredicateinformaGon:

– Allthreefilterpredicatesarehighlycorrelated•  Ferrari’sareonlymadeinItaly•  OnlyFerrarimakesamodelcalledthe‘458Italia’

– TheopGmizerhasmulGpliedtheselecGvityoftheindividualpredicatesandunderesGmatedthenumberofrowsthatwillberetrieved

Diagnosis

36

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example1:Diagnosis

37

Highlycorrelatedpredicates

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example1

•  SoluGon– UseextendedstaGsGcs

•  BuildacolumngrouponMAKE,MODEL,COUNTRY

– TheopGmizercannowdeterminetheselecGvityofthethreepredicatescombined

• Result– ThecardinalityesGmatehasnowchangedto40Mrows.– ChangesdistribuGonmethodfromBROADCASTtoHASH-HASH– ThisresultsinamoreefficientHASHJOIN,whichdoesnotspilltoTEMP– Querynowrunsin3seconds.

38

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example1:SoluGon

39

EsGmatesrows:40M Actualrows:40M

DistribuGonmethodchangedtoHASH-HASH

DistribuGonmethodchangedtoHASH-HASH HashjoinnolongerspillstoTEMP

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2

• Querytakes42minutes– AlmostallCPU

• ComplexSQLstatement• ParallelexecuGonrequested•  Timespentinnestedfulltablescans• OpGmizeresGmateditwouldperformonetablescan

– Actuallyperformed5776tablescans

Observa0ons

40

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2:Overview

41

DuraGon41.2minutesAllCPU

RequestedParallel

Executedserially

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2:SQL

42

ComplexSQLstatement

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2:PlanstaGsGcsshowswhereGmespent

43

Timemainlyinthesetworow

sourcesMaterializedview

scanExecuted5,776

GmesTimemainlyinthesetworow

sources

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2:PlanstaGsGcsleadstosourceofscaniteraGons

44

OpGmizerexpectsonerow,not5,776

Thislinedrivesnestedloop

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2:PlanStaGsGcsscreenshowsesGmateandactual

45

OpGmizeresGmateforindexscanisclose

Butonlyexpects1rowasertablefilters

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2

• PoorcardinalityesGmatecausedbySUBSTR()funcGon

46

Diagnosis

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2:SQLMonitorPlanScreenShowsPredicates

47

OpGmizeresGmatesfiltersarehighlyselecGve

Butsubstringfilteractuallyremovesfewrows

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2

•  ExtendedstaGsGcsonSUBSTR()funcGon• OpGmizernowesGmated10rowsratherthan1• OpGmizeruseshashjoinratherthannestedloop• Accessestablewithsinglescan•  ElapsedGme:6seconds

Solu0on

48

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2:SQLMonitorAserExpressionStaGsGcsAdded

49

Queryexecutesinsixseconds.

Requeststorunparallel

Actuallyrunsparallel

DBTimeismixofCPU,IOandclusterwaits

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example2:SQLMonitorAserExpressionStaGsGcsAdded

50

ScanofnamestablenowhasesGmateof10

Nowdoessingleparallelscanofmaterializedview

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3

• Querytakes56minutes•  TimespentinHASHJOINBUFFERED• CardinalityesGmatesareaccurate•  LargeamountofTEMPIO•  TableScanof1TBtableranfor1800’s.

– Scanratefortheplagormismuchhigherthanthat•  ScanisconstrainedbythebufferingoftheHASHJOIN

51

Observa0ons

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3:ObservaGons

52

DuraGonalmost1hour

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3:ObservaGons

53

CardinalityEsGmatespreiyaccurate

CardinalityEsGmatespreiyaccurate

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3:ObservaGons

54

TimespentinHASHJOIN

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3

•  ExaminingtheParallelTab– DatabaseGmeforPXserversoninstance6ismuchhigher– ExpandingtheInstance6nodeandexpandingParallelSet1,weobserveonePXserverwithaDBTimeof53mins

– AlargepartofthequerywasexecutedbyasinglePXserver.

55

Diagnosis

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3:Diagnosis

56

NavigatetoParalleltab

SkewindatabaseGme

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3:Diagnosis

57

ExpandtheParallelSet

OnePXserverconsumingalltheGme:53minutesvs5.9minutes

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3

•  Somedomainknowledgewasappliedtothisproblem– TheapplicaGonsupportsloyaltycards– MajorityofthecustomersidsareunknownornotidenGfiable

•  ImplementedasauserID=-1

– ThisvaluefromtheCUST_IDENTIFIER_DIMtablehashestoasinglehashbucketandsotheHASHJOINforthatvalueisexecutedbyasinglePXslave

58

Diagnosis

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3

•  Somedomainknowledgewasappliedtothisproblem– TheapplicaGonsupportsloyaltycards– MajorityofthecustomersidsareunknownornotidenGfiable

•  ImplementedasaUserID=-1

– UserID=-1hashestoasinglehashbucket– HASHJOINforUserID=-1isexecutedbyasinglePXslave

59

Diagnosis

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

Example3

– HavetheunknowncustomersbeidenGfiedbyanegaGvesequencenumber– Runtwoseparatequeries

•  Aqueryforknowncustomers,ieCUST_IDENTIFIER_ID>0– ThisqueryexecuteswithHASHHASHdistribuGon,liketheoriginal

•  AqueryforunknowncustomersCUST_IDENTIFIER_ID=-1– ThisqueryexecuteswithaBROADCASTdistribuGon

– Similartoabove• WritethequeryasaUNION-ALLoftheabove

– In12c,SKEWdetecGonmaygenerateaHYBRIDplanthatwillautomaGcallybroadcastpopularvalues,andHashdistributenon-popularvalues

60

Solu0on(s)

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

SQLMonitorgotcha’s

•  BewareofcardinalityesGmatesof1exceptforuniqueindexlookup•  ExecuGoncount

–  ParalleloperaGons–  ParGGonedoperaGons–  Nestedloop–  OrcombinaGon!

•  ForNestedloopplan–  EsGmatedrowsisforasingleexecuGon–  ActualrowsisforallexecuGons(sofar)

•  ParallelserverelapsedGmebarsnotagoodindicaGonofGme•  Fixedsizeinmemorybuffermeansstatementsageout•  Planlineslimitdefaultsto300

–  _sqlmon_max_planlinestochange

61

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

SQLMonitorConclusions

• Alwayson• DetaileddataonwheretheGmeisgoing•  ShowscardinalityesGmatesvsactuals•  TopSQLcapturedintoAWRin12c

SQLMonitoristhebesttooltounderstandwhySQLisrunningslowly

62

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

ProgramAgenda

WhyAutonomousDatabase?

SQLPerformanceTuningStrategy

MakesTuningSmarter

Panel

1

2

3

4

63

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.| 64

PANEL

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.|

SafeHarborStatementTheprecedingisintendedtooutlineourgeneralproductdirecGon.ItisintendedforinformaGonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncGonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andGmingofanyfeaturesorfuncGonalitydescribedforOracle’sproductsremainsatthesolediscreGonofOracle.

65

Copyright©2017,Oracleand/oritsaffiliates.Allrightsreserved.| 66