Database
 sql >> Datenbank >  >> RDS >> Database

Plan Explorer 3.0 Webinar – Beispiele und Fragen und Antworten

Letzten Freitag habe ich ein Webinar über Plan Explorer 3.0, die neuen Funktionen und warum wir uns entschieden haben, die PRO-Edition abzuschaffen und alle Funktionen kostenlos zu verschenken, gehalten . Wenn Sie es verpasst haben, können Sie sich das Webinar hier ansehen:

    Plan Explorer 3.0-Webinar

Es wurden viele großartige Fragen eingereicht, und ich werde versuchen, diese hier anzusprechen. Wir haben auch einige unserer eigenen Fragen an verschiedenen Stellen während der Präsentation gestellt, und die Benutzer haben nach Einzelheiten dazu gefragt, also werde ich mit den Fragen der Umfrage beginnen. Wir hatten einen Spitzenwert von 502 Teilnehmern, und ich werde in den Diagrammen unten angeben, wie viele Personen jede Frage beantwortet haben. Da die erste Frage gestellt wurde, bevor das Webinar technisch begann, beantwortete eine kleinere Anzahl von Personen diese Frage.

Publikumsfragen

F:Sind die Codebeispiele verfügbar?

A: Ja, die drei Session-Dateien, die ich für meine Demos verwendet habe, sind hier verfügbar:

    Plan Explorer 3.0 Webinar-Demos

Sie können diese im neuesten Build von Plan Explorer öffnen, aber wenn Sie eine der Abfragen erneut lokal ausführen möchten, benötigen Sie AdventureWorks2014 (mit dem Vergrößerungsskript von Jonathan Kehayias) und/oder die neue Beispieldatenbank „Wide World Importers“.

F:Also befindet sich alles, was heute angezeigt wird, im neuen, einheitlichen, kostenlosen Plan Explorer? Wenn ja, was ist das neue Umsatzmodell Ihres Unternehmens?

A: Ich bin immer überrascht, wenn ich Leuten begegne, die denken, dass wir nur Plan Explorer anbieten (ich sehe diese persönlich, und es gab auch mehrere ähnliche Kommentare zu Gregs Blogbeitrag). Unser wahres Brot und Butter steckt in unserer Überwachungsplattform, und wir hoffen, dass Ihre positiven Erfahrungen mit Plan Explorer Sie dazu bringen werden, auch unsere anderen Lösungen auszuprobieren.

F:Wir verwenden immer noch SQL Server 2008. Gibt es Vorteile bei der Verwendung von PE gegenüber SSMS?

A: Ja, während Sie einige der Funktionen (z. B. Live-Abfrageprofil) verpassen werden, stehen Ihnen im Vergleich zu SSMS viel mehr Informationen zur Verfügung, und wir tun alles, um bestimmte Probleme viel besser auffindbar zu machen.

F:Funktioniert Live Query Profile für SQL Server 2014?

A: Ja, solange Service Pack 1 angewendet wird, da die Funktion auf einer DMV basiert, die in SQL Server 2014 SP1 hinzugefügt wurde.

F:Welche Einschränkungen gibt es in Bezug auf SQL Server 2012? Kann ich dieses Tool überhaupt verwenden?

A: Absolut. Die Einschränkung, die ich während des Webinars zu SQL Server 2012 und niedriger angesprochen habe, besteht darin, dass sie keine Live-Abfrageprofildaten erfassen können.

F:Werden die Daten nur für SQL Server 2014 und höher erfasst? Was ist, wenn SQL Server 2014 installiert ist, aber die Kompatibilität auf 2012 eingestellt ist?

A: Ja, Live Query Profile (und die Ressourcendiagramme) funktionieren in SQL Server 2014 (mindestens mit SP1), SQL Server 2016 und Azure SQL-Datenbank. Es wird nicht von der Kompatibilitätsstufe beeinflusst.

F:Welche Version von SQL Server wird benötigt, um die Wartestatistikinformationen zurückzubekommen?

A: Die Erfassung von Wartestatistiken basiert auf einer Sitzung für erweiterte Ereignisse, daher müssen Sie SQL Server 2008 oder höher ausführen und im Kontext eines Benutzers oder einer Anmeldung mit ausreichenden Berechtigungen ausführen, um eine Sitzung für erweiterte Ereignisse zu erstellen und zu löschen (CONTROL SERVER in SQL Server 2008 und 2008 R2 und ALTER ANY EVENT SESSION in SQL Server 2012 und höher).

F:Wie erhalte ich die Anzeige der Indexanalyse oder der Live-Abfrageprofildiagramme?

A: Es gab viele Variationen dieser beiden Fragen, und so wie es sich anhörte, spielten die Leute während des Webinars aktiv mit der neuen Version und sahen weder die Indexanalysedaten noch die Live-Abfrageprofildaten. Wenn Sie einen vorhandenen Plan haben, der von SSMS oder einer früheren Version des Plan-Explorers erfasst wurde, werden keine Informationen angezeigt.

Um Indexanalysen zu sammeln Daten müssen Sie einen geschätzten oder tatsächlichen Plan erstellen aus dem Plan Explorer heraus. Um ein Spalten- und Indexraster anzuzeigen, müssen Sie eine ausgewählte Operation auswählen:in der Dropdown-Liste oben auf der Registerkarte „Indexanalyse“.

Um ein Live-Abfrageprofil zu sammeln Daten müssen Sie einen tatsächlichen Plan erstellen aus dem Plan Explorer heraus und laufen gegen 2014 SP1 oder besser. Sie müssen auch sicherstellen, dass Sie die Option „Mit Live-Abfrageprofil“ (siehe Bild rechts) ausgewählt haben, und warten, bis die Abfrageausführung abgeschlossen ist, bevor die Diagramme gerendert werden. In einer zukünftigen Version werden die Diagramme in Echtzeit gerendert, aber in dieser Version machen wir das, nachdem alle Daten gesammelt wurden.

F:Funktioniert das Live-Abfrageprofil mit geklonten Datenbanken in SQL Server 2014 SP2?

A: Ja, das wird funktionieren, aber es wird nicht viele Informationen liefern, da eine geklonte Datenbank leer ist – Sie werden die richtigen Schätzungen im Plan sehen, aber die tatsächlichen Werte werden alle 0 sein, und daher werden die Laufzeitmetriken nicht realistisch sein oder bedeutende Engpässe. Es sei denn, Sie füllen den Klon mit alternativen Daten, wie Erin Stellato in einem früheren Beitrag bewirbt. Beachten Sie auch, dass Sie, wenn Sie möchten, dass Abfragepläne die realen Produktionsdatengrößen widerspiegeln, sicherstellen sollten, dass alle Formen von Auto-Statistiken deaktiviert sind. Andernfalls werden sie aktualisiert, wenn Sie Abfragen ausführen, und dann sind alle Schätzungen 0.

F:Funktioniert die neue Version von Plan Explorer mit SQL Server 2016?

A: Ja. Wir unterstützen alle neuen SQL Server 2016-Planoperatoren und andere Showplan-Änderungen (siehe meinen Beitrag „Plan Explorer Support for SQL Server 2016“), und das Add-In funktioniert auch mit der neuesten Version von SSMS (siehe meinen Beitrag "Ankündigung der Plan Explorer-Add-In-Unterstützung für SSMS 2016").

F:Sogar ein tatsächlicher Ausführungsplan in SSMS wird mit geschätzt gekennzeichnet Kosten?

A: Ja, das ist richtig. Wenn Sie Live-Abfrageprofildaten erfassen, können wir die Kostenprozentsätze für alle Operatoren ändern, da wir mit einem erheblichen Maß an Genauigkeit wissen, wie viel tatsächliche Arbeit jede Operation geleistet hat (die Abfrage muss jedoch länger als ein Schwellenwert ausgeführt werden). Dies kann besonders nützlich sein, wenn Sie ein E/A-Problem beheben, da die Schätzungen anscheinend E/A-Engpässe nie berücksichtigen. Die folgende Grafik durchläuft die ursprünglichen Schätzungen (wir können Ihnen immer zeigen, was SSMS Ihnen gesagt hätte), die Ist-Werte nach der Neukalkulation und die Ist-Werte nach der Neukalkulation und der Änderung der Kosten auf „per E/A“ und der Linienbreiten auf "nach Datengröße":

F:Früher habe ich meinen von SSMS erstellten Plan im Plan Explorer geöffnet, aber habe ich anhand dessen, was Aaron gerade gezeigt hat, richtig verstanden, dass ich meine Abfragen (während der Optimierung) über den Plan Explorer ausführen sollte?

A: Ich habe diese Frage im Webinar angesprochen, aber um es klar zu sagen, ich denke, dass es zwei Schritte in der Entwicklung einer Abfrage gibt:(1) Gewährleistung korrekter Ergebnisse und (2) Leistungsoptimierung. Ich bin der festen Überzeugung, dass Sie derzeit SSMS für (1) und Plan Explorer für (2) verwenden sollten. Ich habe lange dafür geworben, dass die Leute, sobald sie sicher sind, dass sie korrekte Ergebnisse haben, sie optimieren sollten, indem sie actual generieren Ausführungspläne aus dem Plan Explorer heraus, weil wir viel mehr Laufzeitinformationen für Sie sammeln. Diese Laufzeitinformationen sind besonders hilfreich, wenn Sie Ihre Pläne auf unserer Q&A-Website teilen, da sie alle Metriken und potenziellen Engpässe viel deutlicher machen.

F:Wie hoch sind die Prozentsätze unter dem Operator … zum Beispiel 2.885 % unter der Funktion?

A: Bei diesem Prozentsatz handelt es sich nicht um Kosten, sondern um den Prozentsatz der Zeilen, die im Vergleich zur Schätzung tatsächlich verarbeitet wurden. In diesem Fall schätzte SQL Server, dass die Funktion 10.000 Zeilen zurückgeben würde, aber zur Laufzeit gab sie fast 300.000 zurück! Sie können einen Tooltip sehen, wenn Sie den Mauszeiger nur auf diese %-Zahl bewegen, und Sie können die Unterschiede in der Zeilenzahlschätzung im Tooltip für den Operator oder in anderen Rastern wie Top-Operationen sehen (die Funktion gibt jetzt eine andere Anzahl von Zeilen zurück als zuvor während der Demo):

F:Können Sie den Wiederholungsteil minimieren oder ausblenden, um mehr Platz für den Plan selbst zu haben?

A: Ja, alle unsere Paneele sind verstellbar; Viele haben eine Stecknadel, die zwischen statischem und automatischem Ausblenden umschaltet, die meisten Panels können herumgezogen werden (genau wie in Visual Studio, SSMS usw.), und insbesondere das Wiedergabepanel hat einen kleinen Pfeil oben in der Mitte, der Ihnen dies ermöglicht schnell ein-/ausblenden:

F:Können Sie den problematischen Codeblock direkt aus dem Plan sehen?

A: Ich bin mir nicht sicher, ob ich die Frage richtig interpretiere, aber alle unsere Panels sind kontextsensitiv, und die Aussage für den derzeit geprüften Plan wird sowohl im Statement-Raster als auch im Textdaten-Panel angezeigt:

Wenn der Anweisungstext aufgrund der Länge nicht vollständig sichtbar ist, können Sie jederzeit mit der rechten Maustaste auf diese Zelle klicken und Anweisung in Befehlstext kopieren auswählen und dann zu dieser Registerkarte wechseln. Wenn Sie den aktuellen Inhalt der Registerkarte „Befehlstext“ nicht überschreiben möchten, wählen Sie „Kopieren“> „Zelle“ und fügen Sie ihn in eine neue Sitzung, SSMS oder einen anderen Editor ein.

F:Wie kann ich eine "Aktuellen Plan abrufen" stoppen, wenn ich versehentlich eine 1-Stunden-Abfrage gestartet habe?

A: Wenn gerade eine Abfrage ausgeführt wird, gibt es in der Statusleiste unten links eine Stopp-Schaltfläche:

F:Wäre es nicht besser, DROP_EXISTING =ON zu verwenden, anstatt zuerst einen Index zu löschen und einen neuen zu erstellen?

A: Wir haben definitiv Pläne, das Index-Scripting in Zukunft robuster zu gestalten, einschließlich Optionen wie DROP_EXISTING und ONLINE.

F:Passt das zu SentryOne?

A: Alle Funktionen im Plan Explorer sind auch im SentryOne Client verfügbar. Sie müssen Plan Explorer technisch gesehen nicht installieren, wenn Sie den Client haben, außer dass Updates nach einem anderen Zeitplan gepusht werden, daher kann es in vielen Fällen sinnvoll sein, beide installiert zu haben.

Denken Sie daran, dass Pläne, die wir während der Überwachungsaktivitäten für Sie sammeln, aufgrund der hohen Kosten für das Sammeln tatsächlicher Pläne für alle Abfragen, die auf einem Server ausgeführt werden, geschätzte Pläne sind. Das bedeutet, dass bei einem Drilldown zu einem gesammelten Plan im Client keine zusätzlichen Informationen wie Indexanalyse- und Live-Abfrageprofildaten vorhanden sind. Sie können die Abfrage jederzeit interaktiv erneut ausführen, um diese zusätzlichen Laufzeitdaten zu erhalten.

F:Wie hoch ist der Leistungsaufwand dieser neuen Funktionen?

A: Die meisten der von uns erfassten Informationen sind nicht teurer, als wenn Sie dieselben Abfragen ausführen und dieselben Laufzeitdaten von Management Studio erfassen (z. B. mit aktiviertem SHOWPLAN, STATISTICS TIME und STATISTICS IO). Vieles davon wird jedoch durch unser Standardverhalten, Ergebnisse zu verwerfen, ausgeglichen, sodass wir den Server nicht mit dem Aufwand belasten, Ergebnisse an unsere Anwendung zu übertragen.

Bei extrem komplexen Plänen, die für Datenbanken mit sehr komplexen Schemas und VIELEN Indizes ausgeführt werden, könnte die Index- und Statistikerfassung weniger effizient sein, aber es ist äußerst unwahrscheinlich, dass dies spürbare Auswirkungen auf vorhandene Workloads hat. Dies wird nicht durch die Anzahl der Zeilen beeinflusst in einer Tabelle, die in einer Variation dieser Frage erwähnt wurde.

Bei wirklich lang andauernden oder ressourcenintensiven Abfragen wäre meine größte Sorge unsere Sammlung von Live-Abfrageprofilen. Wir haben zwei Einstellungen, die dabei helfen können:ob das Live-Abfrageprofil standardmäßig in die gesamte tatsächliche Plangenerierung aufgenommen werden soll und in welchem ​​Intervall Daten vom DMV erfasst werden sollen. Obwohl ich immer noch der Meinung bin, dass der Overhead dieser Sammlung nie annähernd den Overhead der Abfrage selbst erreichen sollte, können Sie diese Einstellungen optimieren, um die Sammlung weniger aggressiv zu machen.

Abgesehen davon, dass alles in Maßen erfolgen sollte, habe ich keine Probleme im Zusammenhang mit dem Overhead der Datenerfassung festgestellt und würde ohne zu zögern die volle Funktionalität für eine Produktionsinstanz verwenden.

F:Gibt es dort etwas, das beim Erstellen gefilterter Indizes hilft?

A: Derzeit haben wir keine Funktion, die gefilterte Indizes empfiehlt, aber wir haben sie definitiv auf dem Radar.

F:Gibt es Pläne, dem Plan-Explorer eine Vergleichsfunktion für Abfragepläne hinzuzufügen?

A: Ja, dies war sicherlich schon lange vor der Einführung dieser Funktionalität in SSMS auf unserer Roadmap. :-) Wir werden uns Zeit nehmen und ein Feature-Set entwickeln, das Sie hoffentlich von uns erwarten.

F:Könnten Sie SSIS-Pakete verwenden, um die Leistung eines Pakets herauszufinden?

A: Ich nehme an, Sie könnten, wenn Sie das Paket oder den Job über T-SQL auf einem Server aufrufen (Plan Explorer kann Dinge wie SSIS-Pakete nicht direkt starten). Aber die Anwendung zeigt nur die Leistungsaspekte, die durch SQL Server sichtbar gemacht werden – wenn es Ineffizienzen innerhalb des SSIS-Pakets gibt, die nicht mit der Ausführung gegen SQL Server zusammenhängen (z. B. eine Endlosschleife in einer Skriptaufgabe), sind wir es nicht in der Lage sein werden, diese aufzuheben, da wir keine Sichtbarkeit haben und keine Codeanalyse durchführen.

F:Können Sie kurz zeigen, wie die Deadlock-Analysefunktion verwendet wird?

A: Ich habe diese Frage während des Webinars übersehen, aber ich spreche in meinem Demo-Kit über diese Funktionalität, Jonathan Kehayias hat hier darüber gebloggt, Steve Wright hat ein Video darüber auf YouTube, und die offizielle Dokumentation kann im PE-Benutzerhandbuch eingesehen werden.

F:Kann dies wie Profiler verwendet werden? Kann ich eine gesamte Workload analysieren?

A: Plan Explorer wurde entwickelt, um bei der Analyse einzelner Abfragen und ihrer Ausführungspläne zu helfen. Wir haben eine voll funktionsfähige Überwachungsplattform für größere Anstrengungen, und es gibt auch mehrere Workload-Analysetools von Drittanbietern.

F:Ich bin ganz neu in der Abfrageoptimierung – könnten Sie Tools und Artikel für ein tieferes Verständnis vorschlagen?

A: Es gibt viele Ressourcen, um beim Optimieren von Abfragen besser zu werden:

  • Jedes T-SQL-Buch von Itzik Ben-Gan, Grant Fritchey oder Benjamin Nevarez;
  • Alle Blogposts von Paul White oder Rob Farley;
  • Fragen und Antworten hier auf answers.sqlperformance.com oder drüben auf dba.stackexchange.com;
  • Tuning-Videos auf YouTube abfragen;
  • Das Demo-Kit (mit einer neuen Version in Kürze!); und,
  • Üben . Ernsthaft. Sie können alle Bücher und Artikel lesen, die Sie möchten, aber ohne praktische, praktische Arbeit zur Fehlerbehebung und Verbesserung problematischer Abfragen mit echten Leistungsproblemen wird es schwierig sein, ein Experte zu werden. IMHO.

Zusammenfassung

Vielen Dank für Ihre Teilnahme am Webinar und vielen Dank für all die tollen Fragen. Es tut mir leid, dass ich nicht alle ansprechen konnte, aber ich hoffe, das war trotzdem hilfreich. Wenn Sie eine Frage haben, die ich oben nicht angesprochen habe, wenden Sie sich bitte direkt an mich unter [email protected].