sql >> Database >  >> RDS >> Database

VOORBEELD:SentryOne Plan Explorer-extensie voor Azure Data Studio

Bijgewerkt op 15 augustus 2019 voor 0.9.6.

Vorig jaar kwam ik hier samen met een van mijn ontwikkelteams – ze noemen zichzelf de SQL Injectors – om te praten over de mogelijkheid om de SentryOne Plan Explorer-functionaliteit binnen Azure Data Studio te repliceren. Na wat discussie hebben we het concept naar het leiderschapsteam gebracht en een plan in gang gezet.

Er waren wat complicaties, zoals je je kunt voorstellen; Plan Explorer is geschreven met behulp van desktoptechnologieën en ADS is een hele nieuwe wereld. We moesten al onze .NET Framework-code converteren naar .NET Core, onze UI-code wijzigen in Node and React en de volledige implementatie van het plandiagram opnieuw bewerken. Ik bewaar het hele achtergrondverhaal voor een ander artikel, want er zijn onderweg veel leuke dingen gebeurd en we hebben veel hulp gekregen van een aantal geweldige mensen bij Microsoft – Karl Burtram, Alan Yu, Alan Ren, Charles Gagnon en Vicky Harp, om er een paar te noemen. Voor nu wil ik me concentreren op hoe je de preview te pakken krijgt, wat er tot nu toe in zit (inclusief een paar screenshots) en bekende problemen.

Hoe je eraan komt

Om toegang te krijgen tot de Plan Explorer-extensie, moet u een gratis SentryOne Cloud-account maken en akkoord gaan met onze EULA. Het account geeft u toegang tot ons ondersteuningsforum en we kunnen u op de hoogte houden van aankomende releases en nieuwe functies. Nadat u uw account heeft aangemaakt, gaat u naar extensions.sentryone.com, waar u de volgende link zou moeten zien om de extensie te downloaden:

Dit geeft je een VSIX-bestand dat je moet "side-loaden" in Azure Data Studio (Microsoft ondersteunt geen volledige hosting voor extensies van derden in de ADS Marketplace, zoals ze doen met VS Code).

Zorg er eerst voor dat u aan onze vereisten voldoet:

  • Azure Data Studio 1.9.0 of nieuwer (aankondigingsbericht van juli)
  • .NET Core Runtime 2.1 of nieuwer (Windows | macOS | Linux)
  • Verbinding maken met SQL Server 2012 of beter, of Azure SQL Database

En aanbevolen systeemconfiguratie:

  • Twee of meer kernen
  • 8 GB of meer geheugen
  • Besturingssystemen:
    • Windows (8.1 / Server 2012 R2 of beter)
    • macOS (10.13 of beter)
    • RedHat (7,6 of beter)
    • SuSE (12.0 of beter)
    • Ubuntu (18.04 of beter)

Vervolgens, om de extensie te installeren:

  • Open Azure Data Studio.
  • Selecteer Bestand> Installeer extensie van VSIX-pakket . U kunt niet dubbelklikken op het VSIX-bestand.
  • Zoek het SentryOne Plan Explorer VSIX-bestand dat u hebt gedownload en klik op Installeren .
  • Tenzij je het eerder hebt afgewezen, moet je ja zeggen tegen een prompt over het vertrouwen van extensies van derden:

    Als u niet beschikt over een voldoende nieuwe versie van Azure Data Studio (of als u een Insiders-build gebruikt met wijzigingen die we nog niet hebben getest), werkt bepaalde functionaliteit mogelijk niet zoals verwacht.

    Als u niet beschikt over een voldoende nieuwe versie van .NET Core Runtime (of als deze niet actief is), krijgt u deze foutmelding nadat de installatie is gelukt:

Wat zit erin

Net als de desktoptoepassing is de Plan Explorer-extensie ontworpen om u te voorzien van rijkere grafische uitvoeringsplannen voor uw realtime query's op SQL Server. Het is gebaseerd op een bescheiden subset van functionaliteit; we zijn begonnen met alleen het plandiagram, een basisoverzichtsraster, tooltips en toegang tot de XML (zodat u het plan in andere tools kunt openen). We zullen in de loop van de tijd meer functies aan de extensie toevoegen om te proberen u zo dicht mogelijk bij volledige pariteit met de desktopclient te krijgen.

De extensie in- of uitschakelen

  • Klik op de SentryOne Plan Explorer element in de statusbalk:

  • Of druk op Shift+Ctrl /⌘+P en zoek Toggle SentryOne Plan Explorer :

  • Of druk op Shift+Ctrl /⌘+F5 .

Een uitvoeringsplan verzamelen

  • Zorg ervoor dat de extensie is ingeschakeld.
  • Breng in een nieuw queryvenster een verbinding tot stand met een server en schrijf of plak een query.
  • Voor een Geschatte plan, gebruik de Uitleggen knop op de werkbalk.
  • Voor een Echte plan, gebruik Ctrl /⌘+M .
  • Er wordt een nieuw document op het hoogste niveau geopend (getiteld Plan Explorer ) inclusief een raster van uitspraken, één rij voor elke plan-genererende instructie:

      Statementsraster

    • Als u de onderliggende plan-XML wilt bekijken, klikt u op XML weergeven .
    • Klik op Plan bekijken . om het plandiagram voor een afschrift te bekijken .
    • Plandiagram met standaard lichtthema

      Plandiagram met Solarized Dark-thema

    • Als u de beknopte tooltip voor een operator wilt zien, plaatst u de muisaanwijzer op de operator. Voor de uitgebreide versie, die meer informatie bevat en "plakt" aan de rechterkant van het paneel, klik op de operator:
    • Verkorte en uitgebreide tooltips

    • Als u een van de diagrameigenschappen wilt wijzigen, zoals zoomniveau, schakelen tussen werkelijke en geschatte plannen, kosten weergeven op alleen I/O of CPU, of lijnbreedten wijzigen die moeten worden weergegeven op basis van het aantal rijen of gegevensgrootte, gaat u naar rechts- klik ergens op het diagram:
    • Contextmenu met diagramopties

    • Als er een aanbeveling voor een ontbrekende index aanwezig is, verschijnt er een waarschuwing in de tooltip voor de operator van het rootknooppunt en is een contextmenu-optie met de rechtermuisknop overal in het diagram beschikbaar (waardoor het script voor ontbrekende index(en) wordt geopend in een nieuw, niet-verbonden queryvenster op het hoogste niveau):

      Ontbrekende index-tooltip-waarschuwing en contextmenu-optie

      Ontbrekend indexscript

Nieuw in 0.9.6 – 15 augustus 2019

  • Contextmenu-optie toegevoegd om regelbreedtes te wisselen tussen het aantal rijen en de gegevensgrootte
  • Contextmenu-optie toegevoegd om ontbrekende indexaanbevelingen in een nieuw queryvenster weer te geven
  • Standaard API-poort verschoven van 5000 naar 5042 om de kans op conflicten te verkleinen
  • Een instelling toegevoegd om het lokale poortnummer aan te passen in geval van conflict:

  • Verplaatst extensie aan/uit schakelaar naar statusbalk (bedankt voor de suggestie, Drew Skwiers-Koballa!)
  • Aanvullende diagnostiek in het deelvenster Uitvoer om het oplossen van problemen te vergemakkelijken:

  • Verschillende operatorpictogrammen bijgewerkt (oud links, nieuw rechts):Bevestigen

    ClusteredIndexVerwijderen

    ClusteredIndexSamenvoegen

    ClusteredIndexUpdate

    ColumnstoreIndexVerwijderen

    Verwijderen

    VerwijderdScan

    Opvragen

    ForeignKeyRefCheck

    IndexVerwijderen

    IndexUpdate

    IngevoegdScan

    Sleutel opzoeken

    PopulatieQuery

    Op afstand verwijderen

    RemoteQuery

    RID zoeken

    Volgorde

    Schakelaar

    VensterAggregatie

    Merk op dat de wijzigingen in het sleutel- en RID-opzoekpictogram al zijn gebeurd in Plan Explorer 19.0.1 (uitleg hier); de rest van deze wijzigingen zullen binnenkort in Plan Explorer verschijnen.

Bekende problemen

  • Als de Plan Explorer-extensie is ingeschakeld, ervaar je ook de native Explain functionaliteit geleverd door Azure Data Studio (Dave Bland legt die functionaliteit hier uit).
  • Voor daadwerkelijke plannen zijn de enige runtime-statistieken die beschikbaar zijn in rasters Duur en CPU (met een voldoende moderne versie van SQL Server). Andere gegevens zullen in toekomstige releases verschijnen, te beginnen met Reads en Cost %.
  • Azure Data Studio kapt momenteel de XML-uitvoer van het plan af tot 2 MB (zie uitgave 6299). Dus voor grotere plannen en/of grotere batches kunnen we mogelijk niet alle plannen tonen. Dit is waarschijnlijker wanneer u Explain gebruikt om geschatte plannen te genereren (zeg dus gewoon nee tegen geschatte plannen ).
  • We hebben geen toegang tot het menu Bestand, dus we kunnen plannen niet openen of opslaan, en we kunnen alleen een enkel documentvenster openen met de naam Plan Explorer – wat betekent dat u, althans voorlopig, slechts één plattegrond tegelijk kunt weergeven.
  • Ontbrekende indexen , opties voor lijndikte , en de functionaliteit voor het samenvouwen van substructuren is niet beschikbaar in het voorbeeld. Er zijn ook geen lay-outopties, maar je kunt zoomen met je muiswiel of trackpad knijpen, en je kunt pannen met trackpad-vegen met twee vingers.
  • Als Azure Data Studio wordt geopend met documenten die zijn hersteld van een eerdere sessie, is het inschakelen van de Plan Explorer-extensie mogelijk niet van toepassing op die vensters vanwege een probleem met het opsommen van documenten in die staat. Totdat Microsoft een oplossing uitbrengt, zou het voldoende moeten zijn om Plan Explorer uit en vervolgens weer in te schakelen.
  • Thema-ondersteuning is op dit moment experimenteel:
    • Niet alle achtergrondkleuren worden mooi weergegeven en alle links zijn hoe dan ook blauw.
    • Alternatieve iconen ontworpen voor donkere thema's zijn in de maak.
    • Als je van kleur verandert nadat je een plan hebt gemaakt, kunnen we de gebeurtenis momenteel niet vastleggen. Interactie met het diagram (bijv. klik met de rechtermuisknop) om het te dwingen "in te halen".

Krijg meer info; feedback geven

  • Productpagina
  • Officiële productdocumentatie
  • SentryOne Plan Explorer / Query Tuning-forum
  • Aankondiging van de release van juli van het Azure Data Studio-team
  • Ik ben altijd bereid om vragen te beantwoorden of feedback te geven op [email protected]

  1. Hoe kan ik meer dan 1 record per dag selecteren?

  2. MySQL-fout 1170 (42000):BLOB/TEXT-kolom gebruikt in sleutelspecificatie zonder sleutellengte

  3. Basisprincipes van SQL Server Inner Join met voorbeelden

  4. Werken met gebeurtenissen in Oracle Cloud Infrastructure Deel 1:basisprincipes van services