sql >> Database >  >> RDS >> Database

Plan Explorer 3.0 Webinar – Voorbeelden en vragen en antwoorden

Afgelopen vrijdag heb ik een webinar gegeven over Plan Explorer 3.0, de nieuwe functies en waarom we besloten de PRO-editie te elimineren en alle functies gratis weg te geven. . Als je het hebt gemist, kun je het webinar hier bekijken:

    Plan Explorer 3.0-webinar

Er zijn veel goede vragen ingediend en ik zal proberen die hier te beantwoorden. We hebben ook een paar van onze eigen vragen gesteld op verschillende momenten tijdens de presentatie, en gebruikers vroegen om details daarvan, dus ik zal beginnen met de enquêtevragen. We hadden een piek van 502 aanwezigen en ik zal in de onderstaande grafieken aangeven hoeveel mensen elke vraag hebben beantwoord. Aangezien de eerste vraag werd gesteld voordat het webinar technisch begon, beantwoordde een kleiner aantal mensen die.

Vragen van het publiek

V:Zijn de codevoorbeelden beschikbaar?

A: Ja, de drie sessiebestanden die ik voor mijn demo's heb gebruikt, zijn hier beschikbaar:

    Plan Explorer 3.0 webinar-demo's

Je kunt deze openen in de nieuwste build van Plan Explorer, maar als je een van de query's lokaal opnieuw wilt uitvoeren, heb je AdventureWorks2014 (met het vergrotende script van Jonathan Kehayias) en/of de nieuwe Wide World Importers-voorbeelddatabase nodig.

V:Dus alles wat vandaag wordt getoond, staat in de nieuwe, uniforme, gratis Plan Explorer? Zo ja, wat is het nieuwe verdienmodel van uw bedrijf?

A: Ik ben altijd verbaasd als ik mensen tegenkom die denken dat alles wat we aanbieden Plan Explorer is (ik zie deze persoonlijk en er waren ook verschillende soortgelijke opmerkingen op Gregs blogpost). Ons echte brood zit in ons monitoringplatform en we hopen dat uw positieve ervaring met Plan Explorer u ertoe zal brengen onze andere oplossingen ook uit te proberen.

V:We gebruiken nog steeds SQL Server 2008. Zijn er voordelen aan het gebruik van PE versus SSMS?

A: Ja, hoewel u een deel van de functionaliteit zult missen (zoals Live Query Profile), is er veel meer informatie voor u beschikbaar in vergelijking met SSMS, en we doen er alles aan om specifieke problemen veel beter vindbaar te maken.

V:Werkt Live Query Profile voor SQL Server 2014?

A: Ja, zolang Service Pack 1 wordt toegepast, omdat de functie afhankelijk is van een DMV die is toegevoegd in SQL Server 2014 SP1.

V:Wat zijn de beperkingen met betrekking tot SQL Server 2012? Kan ik deze tool überhaupt gebruiken?

A: Absoluut. De beperking die ik tijdens het webinar over SQL Server 2012 en lager naar voren heb gebracht, is dat ze geen Live Query-profielgegevens kunnen vastleggen.

V:Worden de gegevens alleen verzameld voor SQL Server 2014 en hoger? Wat als SQL Server 2014 is geïnstalleerd maar de compatibiliteit is ingesteld op 2012?

A: Ja, Live Query Profile (en de resourcegrafieken) werken in SQL Server 2014 (met ten minste SP1), SQL Server 2016 en Azure SQL Database. Het wordt niet beïnvloed door het compatibiliteitsniveau.

V:Welke versie van SQL Server is nodig om de wachtstatistieken terug te krijgen?

A: Het verzamelen van wachtstatistieken is afhankelijk van een Extended Events-sessie, dus u moet draaien op SQL Server 2008 of hoger en uitvoeren in de context van een gebruiker of inloggen met voldoende machtigingen om een ​​Extended Events-sessie te maken en te verwijderen (CONTROL SERVER in SQL Server 2008 en 2008 R2 en ALTER ANY EVENT SESSION in SQL Server 2012 en hoger).

V:Hoe krijg ik Indexanalyse of de Live Query Profile-diagrammen om weer te geven?

A: Er waren veel variaties op deze twee vragen, en zo te horen waren mensen tijdens het webinar actief met de nieuwe versie aan het spelen en zagen ze de Index Analysis-gegevens of de Live Query Profile-gegevens niet. Als je een bestaand plan hebt dat is vastgelegd vanuit SSMS of een eerdere versie van Plan Explorer, is er geen informatie om weer te geven.

Om Indexanalyse te verzamelen gegevens, moet u een geschat of feitelijk plan vanuit Plan Explorer. Om een ​​raster met kolommen en indexen te zien, moet u een geselecteerde bewerking kiezen:in de vervolgkeuzelijst bovenaan het tabblad Indexanalyse.

Om Live Query Profile . te verzamelen gegevens, moet u een werkelijk plan generate genereren vanuit Plan Explorer en draaien tegen 2014 SP1 of beter. U moet er ook voor zorgen dat u de optie "Met live queryprofiel" hebt geselecteerd (zie afbeelding rechts), en wachten tot de uitvoering van de query is voltooid voordat de grafieken worden weergegeven. In een toekomstige versie worden de grafieken in realtime weergegeven, maar in deze release doen we dat nadat alle gegevens zijn verzameld.

V:Werkt het Live Query-profiel tegen gekloonde databases in SQL Server 2014 SP2?

A: Ja, dit zal werken, maar het zal niet veel informatie opleveren omdat een gekloonde database leeg is - u zult de juiste schattingen in het plan zien, maar de werkelijke waarden zullen allemaal 0 zijn, en dus zullen de runtime-statistieken niet realistisch zijn of betekenisvolle knelpunten. Tenzij je de kloon vult met alternatieve gegevens, zoals Erin Stellato in een eerdere post promoot. Houd er ook rekening mee dat als u wilt dat queryplannen de werkelijke grootte van productiegegevens weerspiegelen, u ervoor moet zorgen dat alle vormen van automatische statistieken zijn uitgeschakeld, anders worden ze bijgewerkt terwijl u query's uitvoert, en dan zijn alle schattingen 0.

V:Werkt de nieuwe versie van Plan Explorer met SQL Server 2016?

A: Ja. We ondersteunen alle nieuwe SQL Server 2016-planoperators en andere showplan-wijzigingen (zie mijn bericht, "Plan Explorer-ondersteuning voor SQL Server 2016"), en de invoegtoepassing werkt ook met de nieuwste versie van SSMS (zie mijn bericht, "Aankondiging van Plan Explorer Add-In Support voor SSMS 2016").

V:Dus zelfs een daadwerkelijk uitvoeringsplan in SSMS is gelabeld met geschat kosten?

A: Ja dat klopt. Wanneer u Live Query Profile-gegevens vastlegt, kunnen we de kostenpercentages voor alle operators wijzigen, omdat we met een aanzienlijke mate van nauwkeurigheid weten hoeveel daadwerkelijk werk elke bewerking heeft uitgevoerd (de query moet echter langer dan een drempelwaarde worden uitgevoerd). Dit kan vooral handig zijn als u een I/O-probleem probeert op te lossen, omdat de schattingen nooit rekening lijken te houden met I/O-knelpunten. De volgende afbeelding doorloopt de oorspronkelijke schattingen (we kunnen u altijd laten zien wat SSMS u zou hebben verteld), de werkelijke waarden na herberekening en de werkelijke waarden na herberekening en het wijzigen van de kosten naar "door I/O" en lijnbreedtes naar "op gegevensgrootte":

V:Ik opende mijn plan dat door SSMS was gemaakt in Plan Explorer, maar heb ik op basis van wat Aaron zojuist liet zien goed begrepen dat ik mijn query's (tijdens het afstemmen) vanuit Plan Explorer moest uitvoeren?

A: Ik heb deze vraag in het webinar behandeld, maar voor alle duidelijkheid, ik denk dat er twee stappen zijn in de evolutie van een zoekopdracht:(1) zorgen voor correcte resultaten en (2) prestatie-optimalisatie. Ik ben er sterk van overtuigd dat je momenteel SSMS zou moeten gebruiken voor (1) en Plan Explorer voor (2). Ik heb lang gepromoot dat zodra mensen zeker weten dat ze de juiste resultaten hebben, ze moeten afstemmen door actual te genereren uitvoeringsplannen vanuit Plan Explorer, omdat we veel meer runtime-informatie voor u verzamelen. Deze runtime-informatie is vooral handig als u uw plannen deelt op onze Q &A-site, omdat het alle statistieken en potentiële knelpunten veel duidelijker maakt.

V:Wat zijn de percentages onder de operator... bijvoorbeeld 2,885% onder de functie?

A: Dat percentage zijn geen kosten, maar het percentage rijen dat daadwerkelijk is verwerkt in vergelijking met de schatting. In dit geval schatte SQL Server dat de functie 10.000 rijen zou retourneren, maar tijdens runtime keerde het bijna 300.000 terug! U kunt een tooltip zien als u alleen op dat %-getal zweeft, en u kunt de geschatte verschillen in het aantal rijen zien in de tooltip voor de operator, of in andere rasters zoals Top Operations (de functie retourneert nu een ander aantal rijen dan het deed tijdens de demo):

V:Kun je het herhalingsgedeelte minimaliseren of verbergen om meer ruimte te hebben voor het plan zelf?

A: Ja, al onze panelen zijn verstelbaar; velen hebben een punaise die schakelt tussen statisch en automatisch verbergen, de meeste panelen kunnen worden gesleept (net als in Visual Studio, SSMS, enz.), en met name het herhalingspaneel heeft een klein pijltje bovenaan in het midden waarmee u om snel te tonen/verbergen:

V:Kun je het aanstootgevende codeblok rechtstreeks vanuit het abonnement zien?

A: Ik weet niet zeker of ik de vraag correct interpreteer, maar al onze panelen zijn contextgevoelig en de verklaring voor het plan dat momenteel wordt onderzocht, wordt zowel in het overzichtsraster als in het paneel Tekstgegevens weergegeven:

Als de instructietekst vanwege de lengte niet volledig zichtbaar is, kunt u altijd met de rechtermuisknop op die cel klikken en Statement kopiëren naar opdrachttekst kopiëren kiezen en vervolgens naar dat tabblad overschakelen. Of, als u de huidige inhoud van het tabblad Opdrachttekst niet wilt overschrijven, kiest u Kopiëren> Cel en plakt u in een nieuwe sessie, SSMS of een andere editor.

V:Hoe kan ik een 'Krijg actueel abonnement' stoppen als ik per ongeluk een zoekopdracht van 1 uur heb gestart?

A: Als er momenteel een zoekopdracht wordt uitgevoerd, is er een Stop-knop op de statusbalk, linksonder:

V:Zou het niet beter zijn om DROP_EXISTING =ON te gebruiken in plaats van eerst een index te verwijderen en een nieuwe te maken?

A: We hebben zeker plannen om de indexscripting in de toekomst robuuster te maken, inclusief opties zoals DROP_EXISTING en ONLINE.

V:Past dit bij SentryOne?

A: Alle functionaliteit in Plan Explorer is ook beschikbaar in de SentryOne Client. Technisch gezien hoeft u Plan Explorer niet te installeren als u de client hebt, behalve dat updates volgens een ander schema worden gepusht, dus in veel gevallen kan het zinvol zijn om beide te hebben geïnstalleerd.

Houd er rekening mee dat plannen die we voor u verzamelen tijdens monitoringactiviteiten geschatte plannen zijn, vanwege de hoge kosten van het verzamelen van daadwerkelijke plannen voor alle query's die tegen een server worden uitgevoerd. Dit betekent dat als u inzoomt op een verzameld plan in de client, het geen aanvullende informatie heeft, zoals indexanalyse en Live Query-profielgegevens. U kunt de query altijd opnieuw interactief uitvoeren om die extra runtime-gegevens te krijgen.

V:Wat is de prestatieoverhead van deze nieuwe functies?

A: De meeste informatie die we verzamelen is niet duurder dan wanneer u dezelfde zoekopdrachten uitvoert en dezelfde runtime-gegevens verzamelt van Management Studio (bijvoorbeeld met SHOWPLAN, STATISTICS TIME en STATISTICS IO aan). Veel hiervan wordt echter gecompenseerd door ons standaardgedrag van het weggooien van resultaten, zodat we de server niet belasten met de moeite om resultaten naar onze applicatie te verzenden.

Voor extreem complexe plannen die draaien op databases met zeer complexe schema's en VEEL indexen, kan de verzameling van indexen en statistieken minder efficiënt zijn, maar het is zeer onwaarschijnlijk dat dit een merkbare impact zal hebben op bestaande workloads. Dit wordt niet beïnvloed door het aantal rijen in een tabel, die in een variant van deze vraag werd genoemd.

Voor echt langlopende of resource-intensieve zoekopdrachten zou mijn grootste zorg onze Live Query Profile-verzameling zijn. We hebben twee voorkeuren die hierbij kunnen helpen:of Live Query-profiel standaard moet worden opgenomen bij het genereren van alle daadwerkelijke plannen, en met welk interval gegevens van de DMV moeten worden verzameld. Hoewel ik nog steeds vind dat de overhead van deze collectie nooit in de buurt mag komen van de overhead van de query zelf, kun je deze instellingen aanpassen om de collectie minder agressief te maken.

Dat gezegd hebbende, met de disclaimer dat alles met mate moet worden gedaan, heb ik geen problemen waargenomen met betrekking tot de overhead van het verzamelen van de gegevens, en ik zou niet aarzelen om de volledige functionaliteit te gebruiken tegen een productie-instantie.

V:Staat er iets in om gefilterde indexen te helpen bouwen?

A: Momenteel hebben we geen functionaliteit die gefilterde indexen aanbeveelt, maar het staat zeker op onze radar.

V:Zijn er plannen om een ​​functie voor het vergelijken van queryplannen toe te voegen aan Plan Explorer?

A: Ja, dit stond zeker al op onze roadmap lang voordat deze functionaliteit in SSMS werd geïntroduceerd. :-) We gaan onze tijd nemen en een functieset uitbouwen die u hopelijk van ons gewend bent.

V:Kunt u SSIS-pakketten gebruiken om de prestaties van een pakket te achterhalen?

A: Ik veronderstel dat je dat zou kunnen, als je het pakket of de taak via T-SQL tegen een server aanroept (Plan Explorer heeft niet de mogelijkheid om dingen zoals SSIS-pakketten rechtstreeks te starten). Maar de applicatie toont alleen de prestatieaspecten die zichtbaar worden gemaakt via SQL Server - als er inefficiënties zijn binnen het SSIS-pakket die niet gerelateerd zijn aan de uitvoering tegen SQL Server (bijvoorbeeld een oneindige lus in een scripttaak), zijn we we zullen die niet kunnen oppikken, omdat we geen zichtbaarheid hebben en geen code-analyse uitvoeren.

V:Kun je snel laten zien hoe je de deadlock-analysefunctie gebruikt?

A: Ik heb deze vraag tijdens het webinar gemist, maar ik heb het over deze functionaliteit in mijn Demo Kit, Jonathan Kehayias heeft er hier over geblogd, Steve Wright heeft er een video over op YouTube en de officiële documentatie kan worden bekeken in de PE-gebruikershandleiding.

V:Kan dit worden gebruikt als Profiler? Kan ik een volledige werklast analyseren?

A: Plan Explorer is ontworpen om individuele query's en hun uitvoeringsplannen te helpen analyseren. We hebben een volledig uitgerust monitoringplatform voor grotere inspanningen, en er zijn ook verschillende tools voor werkbelastinganalyse van derden.

V:Ik ben erg nieuw in het afstemmen van zoekopdrachten. Kun je tools en artikelen voorstellen voor een beter begrip?

A: Er zijn veel bronnen om beter te worden in het afstemmen van zoekopdrachten:

  • Elk T-SQL-boek van Itzik Ben-Gan, Grant Fritchey of Benjamin Nevarez;
  • Elke blogpost van Paul White of Rob Farley;
  • V&A hier op answer.sqlperformance.com of op dba.stackexchange.com;
  • Video's voor het afstemmen van zoekopdrachten op YouTube;
  • De Demo Kit (met binnenkort een nieuwe versie!); en,
  • Oefen . Ernstig. Je kunt alle boeken en artikelen lezen die je wilt, maar zonder praktische, praktische probleemoplossing en het verbeteren van problematische vragen met echte prestatieproblemen, zal het moeilijk zijn om een ​​expert te worden. IMHO.

Samenvatting

Bedankt voor het bijwonen van het webinar, en heel erg bedankt voor alle geweldige vragen. Het spijt me dat ik ze niet allemaal heb kunnen behandelen, maar ik hoop dat dit toch nuttig was. Als je een vraag had die ik hierboven niet heb beantwoord, kun je me die rechtstreeks stellen op [email protected].


  1. CASESTUDY:ARKWARE MS ACCESS CRM

  2. Tabel (structuur) maken van bestaande tabel

  3. Hoe MariaDB in te stellen om verticale uitvoer te gebruiken

  4. tsql retourneert een tabel van een functie of winkelprocedure