OracleDatabase11gPerformanceTuningRecipesAProblem-SolutionApproachSamR.
AlapatiDarlKuhnBillPadfieldOracleDatabase11gPerformanceTuningRecipes:AProblem-SolutionApproachCopyright2011bySamR.
Alapati,DarlKuhn,andBillPadfieldAllrightsreserved.
Nopartofthisworkmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recording,orbyanyinformationstorageorretrievalsystem,withoutthepriorwrittenpermissionofthecopyrightownerandthepublisher.
ISBN978-1-4302-3662-7ISBN978-1-4302-3663-4(eBook)Trademarkednames,logos,andimagesmayappearinthisbook.
Ratherthanuseatrademarksymbolwitheveryoccurrenceofatrademarkedname,logo,orimageweusethenames,logos,andimagesonlyinaneditorialfashionandtothebenefitofthetrademarkowner,withnointentionofinfringementofthetrademark.
Theuseinthispublicationoftradenames,trademarks,servicemarks,andsimilarterms,eveniftheyarenotidentifiedassuch,isnottobetakenasanexpressionofopinionastowhetherornottheyaresubjecttoproprietaryrights.
PresidentandPublisher:PaulManningLeadEditor:JonathanGennickTechnicalReviewer:SurachartOpunEditorialBoard:SteveAnglin,MarkBeckner,EwanBuckingham,GaryCornell,JonathanGennick,JonathanHassell,MichelleLowman,JamesMarkham,MatthewMoodie,JeffOlson,JeffreyPepper,FrankPohlmann,DouglasPundick,BenRenow-Clarke,DominicShakeshaft,MattWade,TomWelshCoordinatingEditor:AnitaCastroCopyEditor:MaryAnnFugateProductionSupport:PatrickCunninghamIndexer:SPIGlobalArtist:SPIGlobalCoverDesigner:AnnaIshchenkoDistributedtothebooktradeworldwidebySpringerScience+BusinessMedia,LLC.
,233SpringStreet,6thFloor,NewYork,NY10013.
Phone1-800-SPRINGER,fax(201)348-4505,e-mailorders-ny@springer-sbm.
com,orvisitwww.
springeronline.
com.
Forinformationontranslations,pleasee-mailrights@apress.
com,orvisitwww.
apress.
com.
ApressandfriendsofEDbooksmaybepurchasedinbulkforacademic,corporate,orpromotionaluse.
eBookversionsandlicensesarealsoavailableformosttitles.
Formoreinformation,referenceourSpecialBulkSales–eBookLicensingwebpageatwww.
apress.
com/bulk-sales.
Theinformationinthisbookisdistributedonan"asis"basis,withoutwarranty.
Althougheveryprecautionhasbeentakeninthepreparationofthiswork,neithertheauthor(s)norApressshallhaveanyliabilitytoanypersonorentitywithrespecttoanylossordamagecausedorallegedtobecauseddirectlyorindirectlybytheinformationcontainedinthiswork.
ToValerie,Nina,andNicholasWithloveandaffection—SamAlapatiToHeidi,Brandi,andLisa—DarlKuhnToOyunaandEvanforputtingupwithmeandalltheeveningsandweekendsspentwithmycomputerinsteadofwiththem!
!
ToCarol,Gerry,Susan,Doug,Scott,Chris,Jaimie,Katie,Jenny,Jeremy,andSean.
Ilovemyfamily!
—BillPadfieldivContentsataGlanceAbouttheAuthors.
xviAbouttheTechnicalReviewer.
xviiAcknowledgments.
xviiiChapter1:OptimizingTablePerformance.
1Chapter2:ChoosingandOptimizingIndexes.
43Chapter3:OptimizingInstanceMemory.
83Chapter4:MonitoringSystemPerformance113Chapter5:MinimizingSystemContention147Chapter6:AnalyzingOperatingSystemPerformance185Chapter7:TroubleshootingtheDatabase209Chapter8:CreatingEfficientSQL253Chapter9:ManuallyTuningSQL.
299Chapter10:TracingSQLExecution327Chapter11:AutomatedSQLTuning.
367Chapter12:ExecutionPlanOptimizationandConsistency.
409Chapter13:ConfiguringtheOptimizer.
447Chapter14:ImplementingQueryHints491Chapter15:ExecutingSQLinParallel525Index.
555vContentsAbouttheAuthors.
xviAbouttheTechnicalReviewer.
xviiAcknowledgments.
xviiiChapter1:OptimizingTablePerformance.
11-1.
BuildingaDatabaseThatMaximizesPerformance.
21-2.
CreatingTablespacestoMaximizePerformance.
51-3.
MatchingTableTypestoBusinessRequirements81-4.
ChoosingTableFeaturesforPerformance.
91-5.
AvoidingExtentAllocationDelaysWhenCreatingTables.
121-6.
MaximizingDataLoadingSpeeds141-7.
EfficientlyRemovingTableData171-8.
DisplayingAutomatedSegmentAdvisorAdvice191-9.
ManuallyGeneratingSegmentAdvisorAdvice231-10.
AutomaticallyE-mailingSegmentAdvisorOutput271-11.
RebuildingRowsSpanningMultipleBlocks.
281-12.
FreeingUnusedTableSpace.
321-13.
CompressingDataforDirectPathLoading331-14.
CompressingDataforAllDML361-15.
CompressingDataattheColumnLevel381-16.
MonitoringTableUsage40CONTENTSviChapter2:ChoosingandOptimizingIndexes.
432-1.
UnderstandingB-treeIndexes.
452-2.
DecidingWhichColumnstoIndex.
512-3.
CreatingaPrimaryKeyIndex.
542-4.
CreatingaUniqueIndex.
562-5.
IndexingForeignKeyColumns.
592-6.
DecidingWhentoUseaConcatenatedIndex.
602-7.
ReducingIndexSizeThroughCompression.
632-8.
ImplementingaFunction-BasedIndex.
642-9.
IndexingaVirtualColumn672-10.
AvoidingConcentratedI/OforIndex.
682-11.
AddinganIndexWithoutImpactingExistingApplications702-12.
CreatingaBitmapIndexinSupportofaStarSchema.
722-13.
CreatingaBitmapJoinIndex732-14.
CreatinganIndex-OrganizedTable.
742-15.
MonitoringIndexUsage.
752-16.
MaximizingIndexCreationSpeed.
772-17.
ReclaimingUnusedIndexSpace.
78Chapter3:OptimizingInstanceMemory.
833-1.
AutomatingMemoryManagement.
833-2.
ManagingMultipleBufferPools.
873-3.
SettingMinimumValuesforMemory.
893-4.
MonitoringMemoryResizingOperations903-5.
OptimizingMemoryUsage913-6.
TuningPGAMemoryAllocation.
933-7.
ConfiguringtheServerQueryCache.
95CONTENTSvii3-8.
ManagingtheServerResultCache.
973-9.
CachingSQLQueryResults.
993-10.
CachingClientResultSets1033-11.
CachingPL/SQLFunctionResults1053-12.
ConfiguringtheOracleDatabaseSmartFlashCache1093-13.
TuningtheRedoLogBuffer.
110Chapter4:MonitoringSystemPerformance1134-1.
ImplementingAutomaticWorkloadRepository(AWR)1134-2.
ModifyingtheStatisticsIntervalandRetentionPeriods1164-3.
GeneratinganAWRReportManually1174-4.
GeneratinganAWRReportviaEnterpriseManager.
1204-5.
GeneratinganAWRReportforaSingleSQLStatement.
1214-6.
CreatingaStatisticalBaselineforYourDatabase.
1234-7.
ManagingAWRBaselinesviaEnterpriseManager1264-8.
ManagingAWRStatisticsRepository.
1294-9.
CreatingAWRBaselinesAutomatically.
1314-10.
QuicklyAnalyzingAWROutput.
1334-11.
ManuallyGettingActiveSessionInformation.
1344-12.
GettingASHInformationfromEnterpriseManager.
1404-13.
GettingASHInformationfromtheDataDictionary.
142Chapter5:MinimizingSystemContention1475-1.
UnderstandingResponseTime1475-2.
IdentifyingSQLStatementswiththeMostWaits.
1505-3.
AnalyzingWaitEvents.
1515-4.
UnderstandingWaitClassEvents.
1525-5.
ExaminingSessionWaits153CONTENTSviii5-6.
ExaminingWaitEventsbyClass1545-7.
ResolvingBufferBusyWaits1575-8.
ResolvingLogFileSyncWaits.
1585-9.
MinimizingreadbyothersessionWaitEvents.
1605-10.
ReducingDirectPathReadWaitEvents.
1615-11.
MinimizingRecoveryWriterWaits1625-12.
FindingOutWho'sHoldingaBlockingLock.
1635-13.
IdentifyingBlockedandBlockingSessions.
1655-14.
DealingwithaBlockingLock.
1675-15.
IdentifyingaLockedObject.
1685-16.
Resolvingenq:TMLockContention.
1695-17.
IdentifyingRecentlyLockedSessions.
1715-18.
AnalyzingRecentWaitEventsinaDatabase.
1745-19.
IdentifyingTimeSpentWaitingDuetoLocking1755-20.
MinimizingLatchContention.
1785-21.
ManagingLocksfromOracleEnterpriseManager.
1815-22.
AnalyzingWaitsfromOracleEnterpriseManager.
182Chapter6:AnalyzingOperatingSystemPerformance1856-1.
DetectingDiskSpaceIssues.
1876-2.
IdentifyingSystemBottlenecks(vmstat)1906-3.
IdentifyingSystemBottlenecks(Solaris)1926-4.
IdentifyingTopServer-ConsumingResources(top)1946-5.
IdentifyingCPUandMemoryBottlenecks(ps)1976-6.
IdentifyingI/OBottlenecks.
1986-7.
IdentifyingNetwork-IntensiveProcesses.
2016-8.
TroubleshootingDatabaseNetworkConnectivity202CONTENTSix6-9.
MappingaResource-IntensiveProcesstoaDatabaseProcess2046-10.
TerminatingaResource-IntensiveProcess.
207Chapter7:TroubleshootingtheDatabase2097-1.
DeterminingtheOptimalUndoRetentionPeriod.
2097-2.
FindingWhat'sConsumingtheMostUndo2137-3.
ResolvinganORA-01555Error.
2157-4.
MonitoringTemporaryTablespaceUsage.
2177-5.
IdentifyingWhoIsUsingtheTemporaryTablespace2187-6.
Resolvingthe"UnabletoExtendTempSegment"Error.
2207-7.
ResolvingOpenCursorErrors2227-8.
ResolvingaHungDatabase2247-9.
InvokingtheAutomaticDiagnosticRepositoryCommandInterpreter2297-10.
ViewinganAlertLogfromADRCI.
2337-11.
ViewingIncidentswithADRCI2357-12.
PackagingIncidentsforOracleSupport.
2367-13.
RunningaDatabaseHealthCheck.
2387-14.
CreatingaSQLTestCase.
2407-15.
GeneratinganAWRReport.
2437-16.
ComparingDatabasePerformanceBetweenTwoPeriods.
2467-17.
AnalyzinganAWRReport.
248Chapter8:CreatingEfficientSQL2538-1.
RetrievingAllRowsfromaTable.
2548-2.
RetrieveaSubsetofRowsfromaTable.
2568-3.
JoiningTableswithCorrespondingRows.
2588-4.
JoiningTablesWhenCorrespondingRowsMayBeMissing.
2598-5.
ConstructingSimpleSubqueries.
263CONTENTSx8-6.
ConstructingCorrelatedSubqueries2678-7.
ComparingTwoTablestoFindingMissingRows.
2698-8.
ComparingTwoTablestoFindingMatchingRows.
2718-9.
CombiningResultsfromSimilarSELECTStatements2718-10.
SearchingforaRangeofValues.
2748-11.
HandlingNullValues2778-12.
SearchingforPartialColumnValues.
2808-13.
Re-usingSQLStatementsWithintheSharedPool.
2848-14.
AvoidingAccidentalFullTableScans.
2888-15.
CreatingEfficientTemporaryViews.
2908-16.
AvoidingtheNOTClause.
2938-17.
ControllingTransactionSizes.
295Chapter9:ManuallyTuningSQL.
2999-1.
DisplayinganExecutionPlanforaQuery.
3009-2.
CustomizingExecutionPlanOutput3029-3.
GraphicallyDisplayinganExecutionPlan3069-4.
ReadinganExecutionPlan.
3079-5.
MonitoringLong-RunningSQLStatements.
3109-6.
IdentifyingResource-ConsumingSQLStatementsThatAreCurrentlyExecuting.
3119-7.
SeeingExecutionStatisticsforCurrentlyRunningSQL3129-8.
MonitoringProgressofaSQLExecutionPlan.
3169-9.
IdentifyingResource-ConsumingSQLStatementsThatHaveExecutedinthePast.
3199-10.
ComparingSQLPerformanceAfteraSystemChange321CONTENTSxiChapter10:TracingSQLExecution32710-1.
PreparingYourEnvironment32710-2.
TracingaSpecificSQLStatement.
33010.
3.
EnablingTracinginYourOwnSession.
33210-4.
FindingtheTraceFiles.
33210-5.
ExaminingaRawSQLTraceFile.
33410-6.
AnalyzingOracleTraceFiles.
33510-7.
FormattingTraceFileswithTKPROF.
33610-8.
AnalyzingTKPROFOutput33710-9.
AnalyzingTraceFileswithOracleTraceAnalyzer34010-10.
TracingaParallelQuery.
34310-11.
TracingSpecificParallelQueryProcesses.
34510-12.
TracingParallelQueriesinaRACSystem.
34610-13.
ConsolidatingMultipleTraceFiles34710-14.
FindingtheCorrectSessionforTracing.
34810-15.
TracingaSQLSession.
34910-16.
TracingaSessionbyProcessID35110-17.
TracingMultipleSessions.
35210-18.
TracinganInstanceoraDatabase.
35310-19.
GeneratinganEvent10046TraceforaSession35410-20.
GeneratinganEvent10046TraceforanInstance.
35610-21.
SettingaTraceinaRunningSession35610-22.
EnablingTracinginaSessionAfteraLogin.
35710-23.
TracingtheOptimizer'sExecutionPath35810-24.
GeneratingAutomaticOracleErrorTraces.
36110-25.
TracingaBackgroundProcess362CONTENTSxii10-26.
EnablingOracleListenerTracing36310-27.
SettingArchiveTracingforDataGuard.
365Chapter11:AutomatedSQLTuning.
36711-1.
DisplayingAutomaticSQLTuningJobDetails37011-2.
DisplayingAutomaticSQLTuningAdvice.
37211-3.
GeneratingaSQLScripttoImplementAutomaticTuningAdvice37611-4.
ModifyingAutomaticSQLTuningFeatures.
37711-5.
DisablingandEnablingAutomaticSQLTuning38011-6.
ModifyingMaintenanceWindowAttributes38111-7.
CreatingaSQLTuningSetObject38311-8.
ViewingResource-IntensiveSQLintheAWR.
38411-9.
ViewingResource-IntensiveSQLinMemory38611-10.
PopulatingSQLTuningSetfromHigh-ResourceSQLinAWR.
38811-11.
PopulatingaSQLTuningSetfromResource-ConsumingSQLinMemory.
39011-12.
PopulatingSQLTuningSetwithAllSQLinMemory.
39111-13.
DisplayingtheContentsofaSQLTuningSet.
39311-14.
SelectivelyDeletingStatementsfromaSQLTuningSet.
39411-15.
TransportingaSQLTuningSet.
39611-16.
CreatingaTuningTask39811-17.
ManuallyRunningSQLTuningAdvisor40111-18.
GettingSQLTuningAdvicefromtheAutomaticDatabaseDiagnosticMonitor.
.
404Chapter12:ExecutionPlanOptimizationandConsistency.
40912-1.
CreatingandAcceptingaSQLProfile41312-2.
AutomaticallyAcceptingSQLProfiles41712-3.
DisplayingSQLProfileInformation.
41912-4.
DisablingaSQLProfile.
421CONTENTSxiii12-5.
DroppingaSQLProfile42312-6.
MovingaSQLProfile.
42412-7.
AutomaticallyAddingPlanBaselines.
42612-8.
CreatingaPlanBaselineforOneSQLStatement.
42812-9.
CreatingPlanBaselinesforSQLContainedinSQLTuningSet43112-10.
AlteringaPlanBaseline43312-11.
DeterminingIfPlanBaselinesExist.
43612-12.
DisplayingPlanBaselineExecutionPlans.
43712-13.
AddingaNewPlantoPlanBaseline(Evolving)43912-14.
DisablingPlanBaselines.
44212-15.
RemovingPlanBaselineInformation44312-16.
TransportingPlanBaselines.
444Chapter13:ConfiguringtheOptimizer.
44713-1.
ChoosinganOptimizerGoal44713-2.
EnablingAutomaticStatisticsGathering.
44813-3.
SettingPreferencesforStatisticsCollection.
45113-4.
ManuallyGeneratingStatistics45613-5.
LockingStatistics.
45813-6.
HandlingMissingStatistics.
45913-7.
ExportingStatistics46013-8.
RestoringPreviousVersionsofStatistics.
46213-9.
GatheringSystemStatistics.
46313-10.
ValidatingNewStatistics46613-11.
ForcingtheOptimizertoUseanIndex46813-12.
EnablingQueryOptimizerFeatures.
47013-13.
KeepingtheDatabasefromCreatingHistograms.
472CONTENTSxiv13-14.
ImprovingPerformanceWhenNotUsingBindVariables47313-15.
UnderstandingAdaptiveCursorSharing47613-16.
CreatingStatisticsonExpressions.
48213-17.
CreatingStatisticsforRelatedColumns.
48313-18.
AutomaticallyCreatingColumnGroups.
48413-19.
MaintainingStatisticsonPartitionedTables.
48613-20.
ConcurrentStatisticsCollectionforLargeTables.
488Chapter14:ImplementingQueryHints49114-1.
WritingaHint49114-2.
ChangingtheAccessPath.
49314-3.
ChangingtheJoinOrder49714-4.
ChangingtheJoinMethod49814-5.
ChangingtheOptimizerVersion.
50114-6.
ChoosingBetweenaFastResponseandOverallOptimization.
50214-7.
PerformingaDirect-PathInsert50514-8.
PlacingHintsinViews.
50614-9.
CachingQueryResults50914-10.
DirectingaDistributedQuerytoaSpecificDatabase51314-11.
GatheringExtendedQueryExecutionStatistics51714-12.
EnablingQueryRewrite.
51914-13.
ImprovingStarSchemaQueryPerformance.
521Chapter15:ExecutingSQLinParallel52515-1.
EnablingParallelismforaSpecificQuery52615-2.
EnablingParallelismatObjectCreation.
53015-3.
EnablingParallelismforanExistingObject.
53215-4.
ImplementingParallelDML.
533CONTENTSxv15-5.
CreatingTablesinParallel53615-6.
CreatingIndexesinParallel.
53815-7.
RebuildingIndexesinParallel.
53915-8.
MovingPartitionsinParallel54115-9.
SplittingPartitionsinParallel.
54215-10.
EnablingAutomaticDegreeofParallelism.
54315-11.
ExaminingParallelExplainPlans54515-12.
MonitoringParallelOperations.
54815-13.
FindingBottlenecksinParallelProcesses55015-14.
GettingDetailedInformationonParallelSessions552Index.
555xviAbouttheAuthorsSamR.
AlapatiisanOracleACEandanexperiencedOracledatabaseadministrator(OCPOracleDatabase11g).
SamiscurrentlytheseniortechnicaldirectorforMiroConsulting,Inc.
,inWoodbridge,NewJersey,andregularlyconsultswithFortune500companiesintheareasofOracleDatabase,OracleE-Business,andOracleFusionMiddlewaretechnology.
SamhaswrittenseveralbooksonOracledatabasemanagement,includingExpertOracleDatabase11gAdministration,OracleDatabase11g:NewFeaturesforDBAsandDevelopers(withCharlesKim),andRMANRecipesforOracleDatabase11g(withDarlKuhnandArupNanda),allpublishedbyApress.
SamlivesinDallas,Texaswithhiswife,Valerie,andchildrenShannon,NinaandNicholas.
DarlKuhnisaseniordatabaseadministratorworkingforOracle.
Hehandlesallfacetsofdatabaseadministrationfromdesignanddevelopmenttoproductionsupport.
HealsoteachesadvanceddatabasecoursesatRegisUniversityinColorado.
DarldoesvolunteerDBAworkfortheRockyMountainOracleUsersGroup.
HehasagraduatedegreefromColoradoStateUniversityandlivesnearSpanishPeaks,Coloradowithhiswife,Heidi,anddaughters,BrandiandLisa.
BillPadfieldisanOracleCertifiedProfessional,workingforalargetelecommunicationscompanyinDenver,Coloradoasaleaddatabaseadministrator.
Billhelpsadministerandmanagealargedatawarehouseenvironmentconsistingofmorethan75databases.
BillhasbeenanOracleDatabaseadministratorformorethan14years,andhasbeenintheITindustrysince1985.
BillalsoteachesgraduatedatabasecoursesatRegisUniversityandcurrentlyresidesinAurora,Coloradowithhiswife,Oyuna,andson,Evan.
xviiAbouttheTechnicalReviewerSurachartOpunwasborninPhetchabun,Thailand.
Hegraduatedwithabachelor'sdegreeincomputerengineering.
HehasworkedintheInternetserviceproviderbusinessovereightyears.
HehasalotofexperiencewithOracleDatabaseandLinux.
HehasworkedwithOracleDatabaseandOracleRealApplicationsClusteroversixyears.
HeisanOracleCertifiedProfessional10gand11g.
HeisalsoanOracleCertifiedExpertRAC.
HeisinterestedinOracleDatabasetechnologyandspendsalotoftimeonit.
Hisblogishttp://surachartopun.
com.
HehasspentalotoftimesharinghisOracleknowledgeandhelpingpeoplewithOracletechnology.
In2010,hebecameanOracleACEanddevelopedtheOracleUserGroupinThailand,towhichheisacontributor.
xviiiAcknowledgmentsTheauthorsowethankstothegreatpublishingteamatApressforhelpingthemthroughoutthewritingprocess.
JonathanGennick,senioracquisitionseditor,helpedsignificantlyinoutliningthetopics(recipes)forthisbook,andhelpedusproducethebestbookwepossiblycould,bynudgingusalongwithincisivecomments/suggestions/criticisms,allofwhichhavetremendouslyincreasedboththepresentationstyleofthebookaswellasthequalityofthecontents.
Jonathanisthatrareeditorwhoisnotonlytechnicallyproficient,butalsoaconsummateeditorofbooks,inthetraditionalsenseoftheterm.
Thankyou,Jonathan,foryourpatienceandhardworkthroughoutthisproject!
Allthreeofusarebeneficiariesofyoursagaciousadviceandcontinualencouragementoverthepastfewmonths.
Theauthorswouldliketothankthetremendousworkdonebythetechnicaleditorofthebook,SurachartOpun,senioranalystatTrueInternet,whosomehowfoundtimefromhisprolificbloggingandotherworktoperformamarvelousreviewofourdraftchapters.
Surachartnotonlycaughtseveralmistakesincodeandelsewhere,butalsomadenumeroussuggestionstoimprovethepresentationofthevariousrecipes.
Thankyou,Surachart,forallyourpainstakingandcheerfulworkinhelpingusoutwiththebook.
AnitaCastro,coordinatingeditor,hassuperblyguidedusthroughoutthisproject,andhelpedkeepthingsonschedule.
Managingathree-authorprojectisn'tapieceofcakebyanymeans,butAnitasuremakesitseemthatway!
MaryAnnFugatecopyeditedthechapterswithgreatskill,andweappreciatehercontributionstowardimprovingthequalityofthisbook.
PersonalAcknowledgmentsFirstofall,myheartfeltthankstothegreathelpandcooperationfrommytwoco-writers—DarlKuhnandBillPadfield—itsurewasgreatworkingwithyou,DarlandBill—I'veenjoyedeveryminuteofit!
I'dliketoacknowledgethesupportandencouragementofmycompany,MiroConsultingInc.
,Woodbridge,NewJersey,whoseCEO,ScottRosenberg,isnotonlyagreatleaderbutalsoanenthusiasticpromoterofOracletechnologywithourmanyclientsacrosstheUnitedStates.
Miro'spresident,EliotColon,itsvicepresidentoftechnicalservices,WayneFederico,anditsvicepresident,BobKinkade,havealwaysbeensupportiveofmyworkatMiro,andI'velearnedalotfromworkingwitheachofthem.
I'dliketoexpressthegenerosityandhelpofferedbymyfriendsKishoreRachamalla,PraveenKatapally,andSreenyChintaduringmytenureatERCOTinTaylor,Texas,whereIstartedinitialworkonthisandanotherbook.
I'mgratefulforthekindnessandshowofsupportbySamNataros,whosegiftfromtheheartI'llalwayscherish—thankyou,Sam,yourgestureinspiresmeeverysingleday!
Myfamily,ofcourse,hassacrificedthemostinmakingthisbookpossible,andthusI'mgratefultoValerie,Shannon,Nicholas,andNinafortheirhelpandsupportoverthepastfewyearswhileIwasworkingonthisandanotherbook.
Lastbutnotleast,I'dliketoacknowledgemydebttomyotherfamily—mymother,SwarnaKumari,myfather,AppaRao,andmybrothers,HariHaraPrasadandSivaSankaraPrasad,Aruna,Vanaja,Ashwin,Teja,Aparna,andSoumya,fortheirabidingloveandfaithinme.
SamAlapatiACKNOWLEDGMENTSxixThankstofellowco-authorsSamAlapatiandBillPadfield,andalsothankstothenumerousDBAsanddevelopersfromwhomI'velearnedperformancetuningtechniquesovertheyears:DaveJennings,BobSuehrstedt,ScottSchulze,PeteMullineaux,JanetBacon,SueWagner,MohanKoneru,ArupNanda,CharlesKim,BernardLopuz,BarbSannwald,TimGorman,ShawnHeisdorffer,DougDavis,SujitPattanaik,KenRoberts,RogerMurphy,MehranSowdaey,KevinBayer,DanFink,GuidoHandley,MargaretCarson,NehruKaja,TimColbert,GlennBalanoff,BobMason,ShariPlantz-Masters,MikeNims,DeniseDuncan,BradBlake,RaviNarayanaswamy,AbidMalik,AbdulEbadi,KevinHoyt,TrentSherman,SandraMontijo,JimSecor,MaureenFrazzini,SeanBest,StephanHaisley,GeoffStrebel,PatrickGates,KrishHariharan,BuzzyCheadle,MarkBlair,GaryDodge,KarenKappler,MikeHutchinson,LizBrill,EnnioMurroni,MikeO'Neill,BethLoker,MikeEason,GregRoberts,DebbieEarman,TomWheltle,KenToney,GaborGyurovszky,ScottNorris,JoeyCanlas,EricWendelin,GarySmith,MarkLutze,KevinQuinlivan,DaveBourque,RoyBackstrom,LarryCarpenter,JoeMeeks,AshishRay,JohnLilly,DaveWood,LaurieBourgeois,SteveBuckmelter,CaseyCostley,JohnDiVirgilio,JohnGoggin,BrettGuy,SimonIp,PascalLedru,KevinO'Grady,PeterSchow,ToddSherman,JeffShoup,MikeTanaka,ToddWichers,DougCushing,WillThornburg,SteveRoughton,AmbereenPasha,DineshNeelay,KyeBae,ThomChumley,JeffSherard,DonaSmith,ErikJasiak,GarySchut,DonGritzmacher,AaronIsom,KristiJackson,KarolynVowles,AminJiwani,PaulaStill,K.
P.
Muthe,JoePinkerton,ArvinKuhn,DarinChristensen,TerryRoam,DougDrake,MarilynWenzel,DocHeppler,MertLovell,CarlBeasly,BrianBeasly,OdeanBowler,andJimStark.
DarlKuhnI'dliketothankmygraciousco-authors,SamAlapatiandDarlKuhn,foralloftheirhelpandsupport,andfortakingonarookieforthisproject.
Icouldn'thavemadeitwithouttheirhelp.
TherearesomanypeopleIcanthankthathavehelpedmeovertheyearsinmycareer,sopleaseknowthatIappreciateeverysingleindividualwhohasencouragedandhelpedmealong.
Firstofall,I'dliketothankBobRanneyforgivingmetheopportunitytobeaDBA.
Ialsowouldliketothanksomeofmykeymanagersovertheyearsthathavehelpedme,includingBethBowen,LarryWyzgala,JohnZlamal,LindaScheldrup,AmyNeff,andMaureenFrazzini.
Ofcourse,therearemanyDBAs,developers,systemadministrators,andarchitectsthathavehelpedmegreatlyinmycareer.
First,IneedtothanktheDBAsonmycurrentteamwhomaketheeverydaygrindablast.
Thesefolkshavehelpedmesomuchprofessionallyandhavebecomegreatfriendsoverthemanyyearswehaveworkedtogether.
ThisincludesDaveCarter,DebbieFitzgerald,PankajGuleria,PeteSardaczuk,BradStrom,andRebeccaWestern.
Overtheyears,I'velearnedanawfullotfromthefollowingfolks,whohavealwaysbeengenerouswiththeirtimeandhelp,andpatientwithmyquestions.
ThisincludesMarkNold,MickMcMahon,SandraMontijo,JerrySanderson,GlenSanderson,JoseFernandez,MikeHammontre,PatCain,DaveSteep,GaryWhiting,RonFullmer,BeckyEnter,JohnWeber,AvanishGupta,ScottBunker,PaulMayes,BillRead,RodErmish,RickBarry,SunYang,SueWagner,GlennBalanoff,LindaLeeBurau,DeborahLieou-McCall,BobZumpf,KristiSargent,SandyHass,GeorgeHuner,PadKail,CurtisGay,RossBartholomay,CarolRosenow,ScottRichards,SherylGross,LachelleShambe,JohnPiel,RobGrote,RexEllis,ZaneWarton,StevePearson,JimBarclay,JasonHermstad,ShariPlantz-Masters,DeniseDuncan,BobMason,BradBlake,MikeNims,CathieWilson,RobCoates,ShirleyAmend,RobBushlack,CindyPatterson,DebbieChartier,BlairChristensen,MeeraGanesan,andKedarPanda.
BillPadfield
imidc对日本独立服务器在搞特别促销,原价159美元的机器现在只需要88美元,而且给13个独立IPv4,30Mbps直连带宽,不限制流量。注意,本次促销只有一个链接,有2个不同的优惠码,你用不同的优惠码就对应着不同的配置,价格也不一样。88美元的机器,下单后默认不管就给512G SSD,要指定用HDD那就发工单,如果需要多加一个/28(13个)IPv4,每个月32美元...官方网站:https:...
BlueHost 主机商在以前做外贸网站的时候还是经常会用到的,想必那时候有做外贸网站或者是选择海外主机的时候还是较多会用BlueHost主机商的。只不过这些年云服务器流行且性价比较高,于是大家可选择商家变多,但是BlueHost在外贸主机用户群中可选的还是比较多的。这次年中618活动大促来袭,毕竟BLUEHOST商家目前中文公司设立在上海,等后面有机会也过去看看。他们也会根据我们的国内年中促销发...
关于Linode,这是一家运营超过18年的VPS云主机商家,产品支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,最低每月费用5美元($0.0075/小时)起。目前,注册Linode的新用户添加付款方式后可以获得100美元赠送,有效期为60天,让更多新朋友可以体验Linode的产品和服务。Linode的云主机产品分为几类,下面分别列出几款套餐配置...
oracle数据库学习为你推荐
vc组合有一首歌好像是什么昆虫组合?跟青春有关好像。叫什么了access数据库ACCESS数据库和SQL有什么区别?刘祚天Mc浩然的资料以及百科谁知道?嘀动网手机一键通用来干嘛呢?杰景新特杰普特长笛JFL-511SCE是不是有纯银的唇口片??价格怎样??巫正刚阿迪三叶草彩虹板鞋的鞋带怎么穿?详细点,最后有图解。高分求长尾关键词挖掘工具怎么挖掘长尾关键词,可以批量操作的那种郭泊雄郭佰雄最后一次出现是什么时候?www.5ff.comhttp://www.940777.com/网站,是不是真的网投六合125xx.com高手指教下,www.fshxbxg.com这个域名值多少钱?
厦门域名注册 主机屋 阿里云搜索 adman stablehost ix主机 免费主机 omnis 宕机监控 国外空间 免费ftp空间申请 个人免费空间 hostker 微软服务器操作系统 银盘服务是什么 空间购买 登陆空间 114dns 空间服务器 supercache 更多