replica horloge

replica horloge
replica horloge

2014年7月3日星期四

Sql query-optimalisatie en profilering

Er zijn overwegingen op het basisniveau van het krijgen van SELECT-instructies om goed te presteren (indexen, joinvoorwaarden, afhankelijk subquery's, enz.), en er zijn aanvullende overwegingen als je "transactionele" queries (INSERT, UPDATE, DELETE). Buiten het bereik van uw vraag, denk ik, zijn stored procedures en triggers. Het zou helpen om een ​​beter antwoord te posten als u het bereik van uw interesse en iets over je achtergrond / ervaring met SQL programmering verduidelijkt. hardmath 8 februari '11 om 16:45

Om gebruik te maken van het uitvoeringsplan (dat is een beschrijving van hoe de database van uw verzoek zal uitvoeren), moet men begrijpen welke opties beschikbaar zijn om het (de database) en zich een oordeel over de vraag of de keuze van het optimalisatieprogramma de juiste was. Dit vergt veel kennis en ervaring.

Voor (1), ik moet beslissen of ik de gegevens anders kan herstructureren zodat ik minder gegevens scannen. Indexen zijn zelden van gebruik sinds ik ben geïnteresseerd in voldoende grote subsets om geïndexeerde toegang langzamer dan een volledige tabel scan te maken. Zo kan ik een horizontale deelverzameling van de gegevens (laatste 30 dagen) of verticale subset van de data (10 kolommen in plaats van 80) of een aggregaat van de gegevens. In beide gevallen zal de grootte van de gegevens kan een toename verwerkingssnelheid maken. Natuurlijk, als de gegevens slechts eenmaal wordt gebruikt, ik heb net verhuisd het probleem elders.

Voor (2), begin ik meestal door te controleren "Kardinaliteit" (num rijen) op de bovenste regel in de xPlan. Als ik weet dat mijn query 5.000.000 rijen, maar het zegt 500, kan ik er vrij zeker van dat de optimizer messed up ergens. Als de totale kardinaliteit is in de juiste bal park, begin ik aan de andere kant plaats en laat elke stap van het plan totdat ik de eerste grote inschattingsfout vinden. Als de kardinaliteit is verkeerd, de join-methode is waarschijnlijk verkeerd tussen die tafel en de volgende, en deze fout zal cascade door de rest van het plan.

Google naar "Tuning by kardinaliteit feedback ', en je zal een paper geschreven door Wolfgang Breitling die beschrijft (in een veel betere manier) de abobve aanpak vinden. Het is echt een goed boek!

Zorg er ook voor op te hangen rond Jonathan Lewis Blog. als er iets over de Oracle optimizer hij niet weet, het is niet de moeite waard te weten. Hij heeft het beste boek over dit onderwerp geschreven ook. Check out CostBased Oracle fundamentals. Als ik kon een boek terug in de tijd om mezelf te sturen, zou dit het zijn.bekijk meer replica rolex en IWC Da Vinci

没有评论:

发表评论

replica rolex

replica rolex
replica rolex