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
LOCVPS怎么样?LOCVPS是一家成立于2011年的稳定老牌国人商家,目前提供中国香港、韩国、美国、日本、新加坡、德国、荷兰等区域VPS服务器,所有机房Ping延迟低,国内速度优秀,非常适合建站和远程办公,所有机房Ping延迟低,国内速度优秀,非常适合做站。XEN架构产品的特点是小带宽无限流量、不超售!KVM架构是目前比较流行的虚拟化技术,大带宽,生态发展比较全面!所有大家可以根据自己业务需求...
HostKvm发布了夏季特别促销活动,针对香港国际/韩国机房VPS主机提供7折优惠码,其他机房全场8折,优惠后2GB内存套餐月付仅5.95美元起。这是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。下面分享几款香港VPS和韩国VPS的配置和价格信息。...
在上个月的时候也有记录到 NameCheap 域名注册商有发布域名转入促销活动的,那时候我也有帮助自己和公司的客户通过域名转入到NC服务商这样可以实现省钱续费的目的。上个月续费转入的时候是选择9月和10月份到期的域名,这不还有几个域名年底到期的,正好看到NameCheap商家再次发布转入优惠,所以打算把剩下的还有几个看看一并转入进来。活动截止到9月20日,如果我们需要转入域名的话可以准备起来。 N...
oracle数据库学习为你推荐
外挂购买自动充值软件12306崩溃12306是不是瘫痪了?地图应用什么地图导航最好用最准确留学生认证留学生回国认证,是否要求需要在国外待满三年,还是只需要完成所需的三年课程?巨星prince去世Whitney Houston因什么去世的?地陷裂口造成地陷都有哪些原因?javmoo.com0904-javbo.net_avop210hhb主人公叫什么,好喜欢,有知道的吗www.niuav.com在那能找到免费高清电影网站呢 ?www.zjs.com.cn我的信用卡已经申请成功了,显示正在寄卡,怎么查询寄卡信息?m.kan84.net经常使用http://www.feikan.cc看电影的进来帮我下啊
域名停靠 网站虚拟主机空间 免费vps 国外免费vps edgecast 80vps 狗爹 vultr美国与日本 外国服务器 美国主机论坛 512av 日志分析软件 空间服务商 丹弗 ftp教程 789电视网 hkg 佛山高防服务器 空间合租 如何用qq邮箱发邮件 更多