sql >> Database teknologi >  >> RDS >> Database

PREVIEW:SentryOne Plan Explorer-udvidelse til Azure Data Studio

Opdateret 15. august 2019 til 0.9.6.

Sidste år mødtes jeg med et af mine dev-teams her – de kalder sig SQL Injectors – for at tale om muligheden for at replikere SentryOne Plan Explorer-funktionalitet inde i Azure Data Studio. Efter lidt diskussion bragte vi konceptet til ledergruppen og satte en plan i gang.

Der var nogle komplikationer, som du kan forestille dig; Plan Explorer er skrevet ved hjælp af desktopteknologier, og ADS er en helt ny verden. Vi skulle konvertere al vores .NET Framework-kode til .NET Core, ændre vores UI-kode til Node og React og omarbejde hele implementeringen af ​​plandiagrammet. Jeg gemmer al baggrundshistorien til et andet indlæg, for der skete mange sjove ting undervejs, og vi fik en masse hjælp fra nogle fantastiske folk hos Microsoft – Karl Burtram, Alan Yu, Alan Ren, Charles Gagnon og Vicky Harp, for at nævne et par stykker. Indtil videre vil jeg fokusere på, hvordan du får fingrene i forhåndsvisningen, hvad der er i den indtil videre (inklusive et par skærmbilleder) og kendte problemer.

Sådan får du det

For at få adgang til Plan Explorer-udvidelsen skal du oprette en gratis SentryOne Cloud-konto og acceptere vores EULA. Kontoen giver dig adgang til vores supportforum, og vi kan holde dig opdateret om kommende udgivelser og nye funktioner. Når du har oprettet din konto, skal du gå til extensions.sentryone.com, hvor du skal se følgende link for at downloade udvidelsen:

Dette vil give dig en VSIX-fil, som du skal "sideindlæse" i Azure Data Studio (Microsoft understøtter ikke fuld hosting for tredjepartsudvidelser i ADS Marketplace, som de gør med VS Code).

Først skal du sikre dig, at du opfylder vores krav:

  • Azure Data Studio 1.9.0 eller nyere (juli meddelelse)
  • .NET Core Runtime 2.1 eller nyere (Windows | macOS | Linux)
  • Opretter forbindelse til SQL Server 2012 eller bedre, eller Azure SQL Database

Og anbefalet systemkonfiguration:

  • To eller flere kerner
  • 8 GB eller mere hukommelse
  • Operativsystemer:
    • Windows (8.1 / Server 2012 R2 eller bedre)
    • macOS (10.13 eller bedre)
    • RedHat (7.6 eller bedre)
    • SuSE (12.0 eller bedre)
    • Ubuntu (18.04 eller bedre)

For derefter at installere udvidelsen:

  • Åbn Azure Data Studio.
  • Vælg Fil> Installer udvidelse fra VSIX-pakke . Du kan ikke dobbeltklikke på VSIX-filen.
  • Find den SentryOne Plan Explorer VSIX-fil, du downloadede, og klik på Installer .
  • Medmindre du har afvist det før, bliver du nødt til at sige ja til en prompt om at stole på tredjepartsudvidelser:

    Hvis du ikke har en ny nok version af Azure Data Studio (eller du bruger en Insiders-build med ændringer, som vi ikke har testet endnu), fungerer nogle funktioner muligvis ikke som forventet.

    Hvis du ikke har en ny nok version af .NET Core Runtime (eller den ikke kører), får du denne fejlmeddelelse, efter at installationen lykkes:

Hvad er der i den

Ligesom desktopapplikationen er Plan Explorer-udvidelsen designet til at give dig mere omfattende grafiske eksekveringsplaner for dine realtidsforespørgsler mod SQL Server. Den er baseret på en beskeden delmængde af funktionalitet; vi er startet med kun plandiagrammet, et grundlæggende sætningsgitter, værktøjstip og adgang til XML (så du kan åbne planen i andre værktøjer). Vi vil tilføje flere funktioner til udvidelsen over tid for at forsøge at få dig så tæt på fuld paritet med desktop-klienten som muligt.

For at aktivere eller deaktivere udvidelsen

  • Klik på SentryOne Plan Explorer element i statuslinjen:

  • Eller tryk på Shift+Ctrl /⌘+P og find Toggle SentryOne Plan Explorer :

  • Eller tryk på Shift+Ctrl /⌘+F5 .

For at indsamle en eksekveringsplan

  • Sørg for, at udvidelsen er aktiveret.
  • I et nyt forespørgselsvindue skal du oprette en forbindelse til en server og skrive eller indsætte en forespørgsel.
  • For en estimeret plan, brug Forklar knappen på værktøjslinjen.
  • For en Faktisk plan, brug Ctrl /⌘+M .
  • Et nyt dokument på øverste niveau åbnes (med titlen Plan Explorer ) inklusive et gitter af udsagn, en række for hver plangenererende udsagn:

      Statements gitter

    • For at se den underliggende plan-XML skal du klikke på Se XML .
    • Klik på Se plan for at se plandiagrammet for en erklæring .
    • Plandiagram med standard lystema

      Plandiagram med Solarized Dark-tema

    • Hvis du vil se det fortættede værktøjstip for en operatør, skal du holde markøren over operatøren. For den udvidede version, som indeholder mere information og "klæber" til højre side af panelet, skal du klikke på operatøren:
    • Kondenserede og udvidede værktøjstip

    • For at ændre nogen af ​​diagramegenskaberne, såsom zoomniveau, skift mellem faktiske og estimerede planer, visning af omkostninger kun efter I/O eller CPU, eller ændring af linjebredder, der skal gengives efter antal rækker eller datastørrelse, højre- klik hvor som helst på diagrammet:
    • Kontekstmenu for diagramindstillinger

    • Når en manglende indeksanbefaling er til stede, vises en advarsel på værktøjstip for rodnode-operatoren, og en højreklik-kontekstmenu vil være tilgængelig hvor som helst på diagrammet (hvilket åbner det/de manglende indeks-scripts) i et nyt, afbrudt, forespørgselsvindue på øverste niveau):

      Manglende advarsel om indeksværktøjstip og mulighed for kontekstmenu

      Manglende indeksscript

Nyhed i 0.9.6 – 15. august 2019

  • Tilføjet mulighed for kontekstmenu for at skifte linjebredde mellem antal rækker og datastørrelse
  • Tilføjet mulighed for kontekstmenu for at vise manglende indeksanbefalinger i et nyt forespørgselsvindue
  • Skiftet standard API-port fra 5000 til 5042 for at reducere risikoen for konflikt
  • Tilføjede en indstilling for at tilpasse det lokale portnummer i tilfælde af konflikt:

  • Flyttet udvidelse til/fra til statuslinjen (tak for forslaget, Drew Skwiers-Koballa!)
  • Yderligere diagnostik i outputpanelet for at hjælpe med fejlfinding:

  • Opdateret adskillige operatørikoner (gammelt til venstre, nyt til højre):Bekræft

    ClusteredIndexDelete

    ClusteredIndexMerge

    ClusteredIndexUpdate

    ColumnstoreIndexSlet

    Slet

    SlettetScan

    FetchQuery

    ForeignKeyRefCheck

    Indeksslet

    Indeksopdatering

    IndsatScan

    Nøgleopslag

    PopulationQuery

    Fjernslet

    RemoteQuery

    RIDLookup

    Sekvens

    Kontakt

    WindowAggregate

    Bemærk, at ændringerne i nøgle- og RID-opslagsikonet allerede er sket i Plan Explorer 19.0.1 (forklaring her); resten af ​​disse ændringer vil snart blive vist i Plan Explorer.

Kendte problemer

  • Når Plan Explorer-udvidelsen er aktiveret, vil du også opleve den oprindelige Explain funktionalitet leveret af Azure Data Studio (Dave Bland forklarer denne funktionalitet her).
  • For faktiske planer er de eneste runtime-metrics, der er tilgængelige i grids, varighed og CPU (givet en moderne nok version af SQL Server). Andre data vil blive vist i fremtidige udgivelser, startende med Læsninger og Cost %.
  • Azure Data Studio trunkerer i øjeblikket plan-XML-output til 2 MB (se udgave #6299). Så for større planer og/eller større partier kan vi muligvis ikke vise alle planer. Dette er mere sandsynligt, når du bruger Explain til at generere estimerede planer (så bare sig nej til estimerede planer ).
  • Vi har ikke adgang til menuen Filer, så vi kan ikke åbne eller gemme planer, og vi kan kun åbne et enkelt dokumentvindue ved navn Plan Explorer – hvilket betyder, at du i det mindste indtil videre kun kan vise ét plandiagram ad gangen.
  • Manglende indekser , linjebreddeindstillinger , og undertræssammenbrudsfunktionalitet er ikke tilgængelig i forhåndsvisningen. Der er heller ingen layoutmuligheder, men du kan zoome med dit musehjul eller pegefeltet, og du kan panorere med pegefeltet med to fingre.
  • Når Azure Data Studio åbnes med dokumenter, der er gendannet fra en tidligere session, gælder aktivering af Plan Explorer-udvidelsen muligvis ikke for disse vinduer på grund af et problem med optælling af dokumenter i den pågældende tilstand. Indtil Microsoft frigiver en rettelse, bør det være en succes at slå Plan Explorer fra og til igen.
  • Temaunderstøttelse er eksperimentel på dette tidspunkt:
    • Ikke alle baggrundsfarver gengives smukt, og alle links er blå uanset hvad.
    • Alternative ikoner designet til mørke temaer er på vej.
    • Hvis du ændrer farvetema efter gengivelse af en plan, kan vi i øjeblikket ikke fange begivenheden. Interager med diagrammet (f.eks. højreklik) for at tvinge det til at "indhente".

Få flere oplysninger; give feedback

  • Produktside
  • Officiel produktdokumentation
  • SentryOne Plan Explorer / Query Tuning-forum
  • Udgivelsesmeddelelse for juli fra Azure Data Studio-teamet
  • Jeg svarer altid gerne på spørgsmål eller tager imod feedback på [email protected]

  1. SQL:IF-sætning i WHERE-sætning

  2. Tvinge en forespørgselstimeout i SQL Server

  3. Hvad er MariaDB? Hvordan virker MariaDB?

  4. Oprettelse af en PostgreSQL-database