Dela via


Operatorreferens för logisk och fysisk showplan

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Operatorer beskriver hur SQL Server kör en fråga eller en DML-instruktion (Data Manipulation Language). Frågeoptimeraren använder operatorer för att skapa en frågeplan för att skapa det resultat som anges i frågan, eller för att utföra åtgärden som anges i DML-instruktionen. Frågeplanen är ett träd som består av fysiska operatorer. Du kan visa frågeplanen med hjälp SET SHOWPLAN av instruktionerna, alternativen för grafisk körningsplan i SQL Server Management Studio eller showplanhändelserna för extended events.

Operatorer klassificeras som logiska och fysiska operatorer.

Logiska operatorer

Logiska operatorer beskriver den relationsalgebraiska åtgärd som används för att bearbeta en -instruktion. Med andra ord beskriver logiska operatorer konceptuellt vilken åtgärd som behöver utföras.

Fysiska operatorer

Fysiska operatorer implementerar åtgärden som beskrivs av logiska operatorer. Varje fysisk operator är ett objekt eller en rutin som utför en åtgärd. Vissa fysiska operatorer har till exempel åtkomst till kolumner eller rader från en tabell, ett index eller en vy. Andra fysiska operatorer utför åtgärder som beräkningar, aggregeringar, dataintegritetskontroller eller kopplingar. Fysiska operatörer har kostnader kopplade till sig.

De fysiska operatorerna initierar, samlar in data och stänger. Mer specifikt kan den fysiska operatorn besvara följande tre metodanrop:

  • Open(): Metoden Open() gör att en fysisk operator initierar sig själv och konfigurerar nödvändiga datastrukturer. Även om den fysiska operatorn kan ta emot många Open() anrop tar den vanligtvis bara emot ett.

  • GetRow(): Metoden GetRow() gör att en fysisk operator hämtar den första eller efterföljande raden med data. Den fysiska operatorn kan ta emot noll eller många GetRow() anrop.

  • Close(): Metoden Close() gör att en fysisk operator utför vissa rensningsåtgärder och stänger av sig själv. En fysisk operatör tar bara emot ett Close() samtal, men ett Close() samtal är inte alltid garanterat.

Metoden GetRow() returnerar en rad med data, och antalet gånger den anropas visas som ActualRows i showplan-utdata som produceras av den grafiska och XML-showplan. Mer information om de här SET alternativen finns i ANGE STATISTIKPROFIL och ANGE STATISTIK-XML.

Antalet ActualRebinds och ActualRewinds som visas i showplan-utdata refererar till antalet gånger som Open() metoden anropas. Om inte en operator finns på den inre sidan av en kapslad loopkoppling är ActualRebinds lika med en och ActualRewinds är lika med noll. Om en operator finns på den inre sidan av en loopkoppling ska det totala antalet ombindningar och bakåtspolningar vara lika med antalet rader som bearbetas på den yttre sidan av kopplingen. En ombindning innebär att en eller flera av de korrelerade parametrarna för kopplingen har ändrats och att den inre sidan måste omvärderas. En bakåtspolning innebär att ingen av de korrelerade parametrarna har ändrats och att den tidigare inre resultatuppsättningen kan återanvändas.

ActualRebinds och ActualRewinds finns i XML showplan-utdata som produceras med hjälp SET STATISTICS XML ON av och den grafiska showplan. De fylls bara i för operatorerna Nonclustered Index Spool, Remote Query, Row Count Spool, Sort, Table Spool och Table-valued Function . ActualRebinds och ActualRewinds kan också fyllas i för operatorerna Assert och Filter när attributet StartupExpression är inställt på TRUE.

När ActualRebinds och ActualRewinds finns i en XML-showplan är de jämförbara med EstimateRebinds och EstimateRewinds. När de är frånvarande är det uppskattade antalet rader (EstimateRows) jämförbara med det faktiska antalet rader (ActualRows). Faktiska grafiska showplan-utdata visar nollor för de faktiska ombindningarna och faktiska bakåtspolningar när de saknas.

En relaterad räknare, ActualEndOfScans, är tillgänglig i XML och grafisk showplan. När en fysisk operator når slutet av dataströmmen ökar den här räknaren med en. En fysisk operator kan nå slutet av dataströmmen noll, en eller flera gånger. Precis som med ombindningar och spolar tillbaka kan antalet avsökningar vara fler än en, endast om operatorn är på den inre sidan av en loopkoppling. Antalet skanningar ska vara mindre än eller lika med summan av antalet ombindningar och bakåtspolningar.

Mappa fysiska och logiska operatorer

Frågeoptimeraren skapar en frågeplan som ett träd som består av logiska operatorer. När frågeoptimeraren har skapat planen väljer frågeoptimeraren den mest effektiva fysiska operatorn för varje logisk operator. Frågeoptimeraren använder en kostnadsbaserad metod för att avgöra vilken fysisk operator som implementerar en logisk operator.

Vanligtvis kan en logisk åtgärd implementeras av flera fysiska operatorer. I sällsynta fall kan dock en fysisk operator även implementera flera logiska åtgärder.

Körning av batchläge

Körning av batchläge är en frågebearbetningsmetod som används för att bearbeta flera rader tillsammans (därav termen batch) i stället för en rad i taget. Bearbetning i batchläge använder algoritmer som är optimerade för processorer med flera kärnor och ökat minnesgenomflöde på modern maskinvara. Batchläge kan användas av en uppsättning operatorer för både radlagrings- och columnstore-objekt. Mer information finns i Arkitekturguide för frågebearbetning.

Operatorbeskrivningar

Det här avsnittet innehåller beskrivningar av de logiska och fysiska operatorerna. Du kan visa egenskaperna för frågeplaner och operatorer med hjälp av fönstret Egenskaper i vyn Frågeplan i SQL Server Management Studio (SSMS).

Tips/Råd

När en given grafisk körningsplanikon har en gul cirkel med två höger-till-vänster-pilar innebär det att operatorn körs parallellt. Mer information om parallellitet finns i guiden Tråd- och uppgiftsarkitektur.

Icon Showplan-operator Description
Anpassningsbar koppling Operatorn Adaptive Join gör det möjligt att skjuta upp valet av en hashkopplings- eller kapslad loopkopplingsmetod tills den första indatan har genomsökts.

Adaptiv koppling är en fysisk operator. Mer information finns i Förstå adaptiva kopplingar.
Aggregat Operatorn Aggregate beräknar ett uttryck som innehåller MIN, MAX, SUM, COUNTeller AVG.

Aggregering är en logisk och fysisk operator.
Aritmetikuttryck Operatorn Aritmetic Expression beräknar ett nytt värde från befintliga värden på en rad. Aritmetiska uttryck används inte i nyare versioner av SQL Server.
Hävda Assert-operatorn verifierar ett villkor. Den validerar till exempel referensintegritet eller ser till att en skalär underfråga returnerar en rad. För varje indatarad utvärderar Assert-operatorn uttrycket i fönstret Egenskaper i körningsplanen. Om det här uttrycket utvärderas till NULLskickas raden genom Assert-operatorn och frågekörningen fortsätter. Om det här uttrycket utvärderas till ett värde som inte är null utlöses lämpligt fel.

Assert är en fysisk operator.
Tilldela Operatorn Tilldela tilldelar värdet för ett uttryck eller en konstant till en variabel.

Tilldela är ett språkelement.
None Async Concat Async Concat-operatorn används endast i fjärrfrågor (distribuerade frågor). Den har n underordnade och en överordnad nod. Vanligtvis är några av de underordnade fjärrdatorerna som deltar i en distribuerad fråga. Async Concat utfärdar Open() anrop till alla underordnade samtidigt och tillämpar sedan en bitmapp på varje underordnad. För varje bit som är en 1skickar Async Concat utdataraderna till den överordnade noden på begäran.
Bitmapp SQL Server använder bitmappsoperatorn för att implementera bitmappsfiltrering i parallella frågeplaner. Bitmappsfiltrering påskyndar frågekörningen genom att eliminera rader med nyckelvärden som inte kan generera några kopplingsposter innan rader skickas via en annan operator, till exempel parallellitetsoperatorn . Ett bitmappsfilter använder en kompakt representation av en uppsättning värden från en tabell i en del av operatorträdet för att filtrera rader från en andra tabell i en annan del av trädet. Genom att ta bort onödiga rader tidigt i frågan har efterföljande operatorer färre rader att arbeta med, och frågans övergripande prestanda förbättras. Optimeraren avgör när en bitmapp är tillräckligt selektiv för att vara användbar och i vilka operatorer filtret ska tillämpas.

Bitmapp är en fysisk operator.
Skapa bitmapp Operatorn Skapa bitmapp visas i showplan-utdata där bitmappar skapas.

Bitmappsskapande är en logisk operator.
None Ompartition av gren I en parallell frågeplan finns det ibland konceptuella regioner med iteratorer. Alla iteratorer i en sådan region kan köras av parallella trådar. Själva regionerna måste köras seriellt. Några av parallellism-iteratorerna i en enskild region kallas Förgreningspartition. Parallellism-iteratorn vid gränsen för två sådana regioner kallas Segmentrepartition.

Ompartition av gren och segmentpartition är logiska operatorer.
Sändning Broadcast har en underordnad nod och n överordnade noder. Broadcast skickar sina indatarader till flera konsumenter på begäran. Varje konsument får alla rader. Om alla konsumenter till exempel är build-sidor av en hashkoppling skapas n kopior av hash-tabellerna.
Skapa hash Anger versionen av en batch-hashtabell för ett minnesoptimerad columnstore-index.

Gäller för: SQL Server 2012 (endast 11.x).
Borttagning av klustrat index Operatorn Borttagning av klustrat index tar bort rader från det klustrade index som anges i objektegenskapen, som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. Om det finns ett SeekPredicate eller Predicate tas endast de rader som uppfyller predikatet bort.

Not: Ändringar i klustrade index kan påverka icke-grupperade index.

Borttagning av klustrat index är en fysisk operator.
Infoga klustrat index Operatorn Infoga grupperat index infogar rader från sina indata i det klustrade index som anges i egenskapen Object , som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. XML-showplan innehåller egenskaperna SetPredicate och ColumnReference , som kan användas för att fastställa det värde som varje kolumn har angetts till. Om Klustrad indexinfogning inte har några underordnade värden för infogningsvärden hämtas den infogade raden från själva Insert-operatorn .

Not: Ändringar i klustrade index kan påverka icke-grupperade index.

Klustrad indexinfogning är en fysisk operator.
Sammanslagning av klustrat index Operatorn Sammanslagning av klustrat index tillämpar en sammanslagningsdataström på ett klustrat index. Operatorn tar bort, uppdaterar eller infogar rader från det klustrade index som anges i objektegenskapen, som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. Den faktiska åtgärden som utförs beror på körningsvärdet för egenskapen ActionColumn .

Not: Ändringar i klustrade index kan påverka icke-grupperade index.

Sammanslagning av klustrat index är en fysisk operator.
Genomsökning av klustrat index Operatorn Klustrad indexgenomsökning söker igenom det klustrade index som anges i egenskapen Object , som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. När det finns ett valfritt predikat returneras endast de rader som uppfyller predikatet. Om egenskapen Ordnad i fönstret Egenskaper eller XML-showplan är True har frågeprocessorn fastställt att raderna måste returneras i den ordning som det klustrade indexet har sorterat dem. Om egenskapen Ordnad är False genomsöker databasmotorn indexet på det optimala sättet, utan att nödvändigtvis sortera utdata.

Klustrad indexgenomsökning är en logisk och fysisk operator.
Klustrad indexsökning Operatorn Klustrad indexsökning använder sökförmågan för index för att hämta rader från ett grupperat index. Egenskapen Object , som visas i fönstret Egenskaper i de grafiska och XML-showplanerna, innehåller namnet på det klustrade index som används. SeekPredicate innehåller predikatet för sök. Databasmotorn använder indexet för att endast bearbeta de rader som uppfyller SeekPredicate. Den kan också innehålla en predikategenskap där databasmotorn utvärderas mot alla rader som uppfyller SeekPredicate, men detta är valfritt och använder inte index för att slutföra den här processen.

Om egenskapen Ordnad i fönstret Egenskaper eller XML-showplan är True har frågeprocessorn fastställt att raderna måste returneras i den ordning som det klustrade indexet har sorterat dem. Om egenskapen Ordnad är False söker databasmotorn igenom indexet på det optimala sättet, utan att nödvändigtvis sortera utdata. Att kräva att utdata behåller sin ordning kan vara mindre effektivt än att producera icke-sorterade utdata.

Klustrad indexsökning är en logisk och fysisk operator.
Klustrad indexuppdatering Operatorn För uppdatering av klustrat index uppdaterar indatarader i det klustrade index som anges i objektegenskapen, som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. Om egenskapen Predikat finns uppdateras endast de rader som uppfyller det här predikatet. Om egenskapen SetPredicate finns anges varje uppdaterad kolumn till det här värdet. Om egenskapen DefineValue finns visas de värden som den här operatorn definierar. Dessa värden kan refereras till i SET -satsen eller någon annanstans inom den här operatorn och någon annanstans i den här frågan.

Not: Ändringar i klustrade index kan påverka icke-grupperade index.

Klustrad indexuppdatering är en logisk och fysisk operator.
Kollaps Dölj-operatorn optimerar uppdateringsbearbetningen. När en uppdatering utförs kan den delas upp (med operatorn Dela upp) i en borttagning och en infogning. Fönstret Egenskaper innehåller en grupp efter predikat som anger en lista med nyckelkolumner. Om frågeprocessorn stöter på intilliggande rader som tar bort och infogar samma nyckelvärden ersätter den dessa separata åtgärder med en enda, effektivare uppdateringsåtgärd.

Dölj är en logisk och fysisk operator.
Ta bort kolumnlagringsindex Operatorn Columnstore Index Delete representerar borttagningen av rader från kolumnlagringsindexet som anges i egenskapen Object , som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. Borttagning sker via borttagning av klustrat index för ett grupperat kolumnlagringsindex och via operatorn Ta bort index för ett icke-grupperat kolumnlagringsindex. Indextypen (Klustrad, IckeClustered eller ViewNonClustered) anges i egenskapen IndexKind i XML-showplan. SeekPredicate stöds inte för borttagning av kolumnlagringsindex. Rader som ska tas bort läse från en underordnad operator.

Borttagning av kolumnlagringsindex är en fysisk operator.
Infoga kolumnlagringsindex Operatorn Columnstore Index Insert representerar infogningen av rader från dess indata till kolumnlagringsindexet som anges i egenskapen Object, som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. Infogning sker via Den klustrade indexinfogningen för ett grupperat kolumnlagringsindex och via operatorn Indexinfogning för ett icke-grupperat kolumnlagringsindex. Indextypen (Klustrad, IckeClustered eller ViewNonClustered) anges i egenskapen IndexKind i XML-showplan. XML-showplan innehåller egenskaperna SetPredicate och ColumnReference , som kan användas för att fastställa det värde som varje kolumn har angetts till.

Not: Ändringar i klustrade index kan påverka icke-grupperade index.

Columnstore Index Insert är en fysisk operator.
Sammanslagning av kolumnlagringsindex Kolumnlagringsindexsammanslagning representerar programmet för en sammanslagningsdataström med operatorn Sammanslagning av klustrat index. Operatorn tar bort, uppdaterar eller infogar rader från det klustrade kolumnlagringsindexet som anges i egenskapen Object , som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. Den faktiska åtgärden som utförs beror på körningsvärdet för egenskapen ActionColumn .

Not: Ändringar i klustrade index kan påverka icke-grupperade index.

Sammanslagning av kolumnlagringsindex är en fysisk operator.
Kolumnlagringsindexsökning Operatorn Columnstore Index Scan representerar en genomsökning av kolumnlagringsindexet som anges i egenskapen Object, som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. Genomsökningen sker via den klustrade indexsökningen efter ett grupperat columnstore-index och via operatorn Indexgenomsökning för ett icke-grupperat kolumnlagringsindex. Indextypen (Klustrad, IckeClustered eller ViewNonClustered) anges i egenskapen IndexKind i XML-showplan. När det finns ett valfritt predikat returneras endast de rader som uppfyller predikatet. Egenskapen SeekPredicate är endast tillgänglig för ett partitionerat kolumnlagringsindex och endast likhets- eller ojämlikhetsvillkor. Om den partitionerade kolumnen finns i frågepredikat kan partitionseliminering minska antalet radgrupper som ska genomsökas.

Columnstore Index Scan är en fysisk operator.
Uppdatering av columnstore-index Operatorn Columnstore Index Update representerar en uppdatering till en eller flera rader i kolumnlagringsindexet som anges i egenskapen Object, som visas i fönstret Egenskaper i de grafiska och XML-showplanerna. Uppdateringar sker via operatorn Clustered Index Update för ett grupperat columnstore-index och via indexuppdateringsoperatorn för ett icke-grupperat kolumnlagringsindex. Indextypen (Klustrad, IckeClustered eller ViewNonClustered) anges i egenskapen IndexKind i XML-showplan. SeekPredicate stöds inte för en columnstore-indexuppdatering. Rader som ska uppdateras läss från en underordnad operator. Om egenskapen SetPredicate finns anges varje uppdaterad kolumn till det här värdet. Om egenskapen DefineValue finns visas de värden som den här operatorn definierar. Dessa värden kan refereras till i SET -satsen eller någon annanstans inom den här operatorn och någon annanstans i den här frågan.

Not: Ändringar i klustrade index kan påverka icke-grupperade index.

Columnstore Index Update är en fysisk operator.
Beräkningsskalar Operatorn Compute Scalar utvärderar ett uttryck för att skapa ett beräknat skalärt värde. Detta kan sedan returneras till användaren, refereras någon annanstans i frågan eller båda. Ett exempel på båda finns i ett filterpredikat eller kopplingspredikat.

Compute Scalar-operatorer som visas i showplans som genereras av SET STATISTICS XML kanske inte innehåller elementet RunTimeInformation . I grafiska showplans kan faktiska rader, faktiska ombindningar och faktiska återspolningar vara frånvarande från fönstret Egenskaper när alternativet Inkludera faktisk körningsplan har valts i SQL Server Management Studio. När detta inträffar innebär det att även om dessa operatorer användes i den kompilerade frågeplanen, utfördes deras arbete av andra operatorer i körningsfrågeplanen. Antalet körningar i showplan-utdata som genereras av SET STATISTICS PROFILE motsvarar summan av ombindningar och spolar tillbaka i showplans som genereras av SET STATISTICS XML.

Compute Scalar är en logisk och fysisk operator.
Sammanfogning Sammanfogningsoperatorn söker igenom flera indata och returnerar varje rad som genomsöks. Sammanfogning används vanligtvis för att implementera den Transact-SQL UNION ALL konstruktionen. Den fysiska operatorn Sammanfoga har två eller flera indata och en utdata. Sammanfogning kopierar rader från den första indataströmmen till utdataströmmen och upprepar sedan åtgärden för varje ytterligare indataström.

Sammanfogning är en logisk och fysisk operator.
Villkorsstyrd (om och medan) Villkorsoperatorn utför villkorsstyrd bearbetning baserat på en IF eller WHILE -loop. If och While är språkelement.
Konstant genomsökning Operatorn Konstant genomsökning introducerar en eller flera konstanta rader i en fråga. En Compute Scalar-operator används ofta efter en konstant genomsökning för att lägga till kolumner i en rad som skapas av operatorn Konstant genomsökning . Konstant genomsökning kan generera en eller flera rader med noll eller flera kolumner.
Konvertera Operatorn Konvertera konverterar en skalär datatyp till en annan.

Konvertera är ett språkelement.
Korskoppling Operatorn Korskoppling ansluter varje rad från den första (övre) inmatningen med varje rad från den andra (nedre) inmatningen.

Korskoppling är en logisk operator.
Markör Markör logiska och fysiska operatorer används för att beskriva hur en fråga eller uppdatering som involverar marköråtgärder körs. De fysiska operatorerna beskriver den fysiska implementeringsalgoritm som används för att bearbeta markören. till exempel med hjälp av en tangentuppsättningsdriven markör. Varje steg i körningen av en markör omfattar en fysisk operator. De logiska operatorerna beskriver en egenskap för markören, till exempel att markören är skrivskyddad.

Logiska operatorer är asynkrona, optimistiska, primära, skrivskyddade, rullningslås, sekundära och synkrona.

Fysiska operatorer inkluderar Dynamic, Fetch Query, Keyset, Population Query, Refresh Query och Snapshot.
Förklara Operatorn Deklarera allokerar en lokal variabel i frågeplanen.

Deklarera är ett språkelement.
Ta bort Operatorn Ta bort tar bort rader (från ett objekt) som uppfyller det valfria predikatet i fönstret Egenskaper .
Borttagen genomsökning I utlösare genomsöker operatorn Borttagen genomsökning den borttagna tabellen.
None Tydlig Operatorn Distinct tar bort dubbletter från en raduppsättning eller från en samling värden.

Distinct är en logisk operator.
None Distinkt sortering Den logiska operatorn Distinct Sort söker igenom indata, tar bort dubbletter och sortering efter de kolumner som anges i distinkt ordning efter predikat i fönstret Egenskaper .

Distinct Sort är en logisk operator.
Distribuera strömmar Operatorn Distribuera strömmar används endast i parallella frågeplaner. Operatorn Distribuera strömmar tar en enda indataström med poster och skapar flera utdataströmmar. Postinnehållet och formatet ändras inte. Varje post från indataströmmen visas i en av utdataströmmarna. Den här operatorn bevarar automatiskt den relativa ordningen för indataposterna i utdataströmmarna. Vanligtvis används hashning för att avgöra vilken utdataström en viss indatapost tillhör.

Om utdata partitioneras innehåller fönstret Egenskaper en predikat för partitionskolumner och partitioneringskolumnerna.

Distribuera strömmar är en logisk operator
Dynamisk Den dynamiska operatorn använder en markör som kan se alla ändringar som gjorts av andra.
Ivrig spol Operatorn Eager Spool tar hela indata och lagrar varje rad i ett dolt tillfälligt objekt som lagras i tempdb-databasen. Om operatorn återställs (till exempel av en kapslad loopoperator ) men ingen ombindning behövs, används de buffrade data i stället för att genomsöka indata igen. Om det behövs en ombindning tas de buffrade data bort och spoolobjektet återskapas genom att (rebound)-indata genom att genomsökas igen. Operatorn Eager Spool skapar sin spoolfil på ett "ivrigt" sätt: när spoolens överordnade operator frågar efter den första raden förbrukar spooloperatorn alla rader från indataoperatorn och lagrar dem i bufferten.

Eager Spool är en logisk operator.
Hämta fråga Operatorn Fetch Query hämtar rader när en hämtning utfärdas mot en markör.
Filter Filteroperatorn söker igenom indata och returnerar endast de rader som uppfyller filteruttrycket (predikat) som visas i fönstret Egenskaper.
None Flödesdi distinkt Flow Distinct-operatorn söker igenom indata och tar bort dubbletter. Medan Distinct-operatorn förbrukar alla indata innan utdata skapas, returnerar Flow Distinct-operatorn varje rad som den hämtas från indata (såvida inte den raden är en dubblett, i vilket fall den tas bort).

Flow Distinct är en logisk operator.
Referenskontroll för sekundärnyckel Operatorn Referenskontroll för sekundärnyckel utför referensintegritetskontroller på plats genom att jämföra den ändrade raden med raderna i de refererande tabellerna för att kontrollera att ändringen inte bryter referensintegriteten. Operatorn Referenskontroll för sekundärnyckel används när det finns fler än 253 sekundärnyckelreferenser på samma primära eller unika nyckel.

Referenskontroll för sekundärnyckel är en logisk och fysisk operator.
Fullständig yttre koppling Den logiska operatorn Fullständig yttre koppling returnerar varje rad som uppfyller kopplingspredikatet från den första (övre) indata som är kopplad till varje rad från den andra (nedre) indatan. Den returnerar också rader från:

– Den första indata som inte hade några matchningar i den andra indatan.

– Den andra indata som inte hade några matchningar i den första indatan.

Indata som inte innehåller matchande värden returneras som ett null-värde.

Fullständig yttre koppling är en logisk operator.
Samla in strömmar Operatorn Gather Streams används endast i parallella frågeplaner. Operatorn Gather Streams förbrukar flera indataströmmar och skapar en enda utdataström med poster genom att kombinera indataströmmarna. Postinnehållet och formatet ändras inte. Om den här operatorn behålls i ordning måste alla indataströmmar ordnas. Om utdata sorteras innehåller fönstret Egenskaper en ordning efter predikat och namnen på kolumner som sorteras.

Samla in strömmar är en logisk operator.
Hashmatchning Hash Match-operatorn skapar en hash-tabell genom att beräkna ett hash-värde för varje rad från dess build-indata. En hash-predikat , med en lista över kolumner som används för att skapa ett hash-värde, visas i fönstret Egenskaper . För varje avsökningsrad (i förekommande fall) beräknar den sedan ett hash-värde (med samma hash-funktion) och söker i hash-tabellen efter matchningar. Om det finns ett restpredikat (identifieras av RESIDUAL:() i fönstret Egenskaper ) måste predikatet också vara uppfyllt för att rader ska betraktas som en matchning. Beteendet beror på vilken logisk åtgärd som utförs:

– Använd den första (översta) indatan för att skapa hash-tabellen och den andra (nedre) indata för att avsöka hashtabellen för alla kopplingar. Utdata matchar (eller icke-matchningar) enligt kopplingstypen. Om flera kopplingar använder samma kopplingskolumn grupperas dessa åtgärder i ett hash-team.

– För de distinkta operatorerna eller aggregerade operatorerna använder du indata för att skapa hash-tabellen (ta bort dubbletter och beräkna eventuella aggregerade uttryck). När hash-tabellen har skapats genomsöker du tabellen och matar ut alla poster.

– Använd den första indatan för att skapa hash-tabellen (ta bort dubbletter) för union-operatorn. Använd den andra indatan (som inte får ha några dubbletter) för att avsöka hashtabellen, returnera alla rader som inte har några matchningar, skanna sedan hash-tabellen och returnera alla poster.

Hash-matchning är en fysisk operator. Mer information finns i Förstå Hash-kopplingar.
Ta bort index Operatorn Ta bort index tar bort rader från det icke-illustrerade index som anges i fönstret Egenskaper.

Indexborttagning är en fysisk operator.
Infoga index Operatorn Index Insert infogar rader från indata i det icke-illustrerade index som anges i fönstret Egenskaper. Fönstret Egenskaper innehåller också ett angivet predikat, vilket anger det värde som varje kolumn har angetts till.

Index Insert är en fysisk operator.
Indexgenomsökning Operatorn Indexgenomsökning hämtar alla rader från det icke-illustrerade index som anges i fönstret Egenskaper. Om ett valfritt predikat visas i fönstret Egenskaper returneras endast de rader som uppfyller predikatet.

Indexgenomsökning är en logisk och fysisk operator.
Indexsökning Indexsökningsoperatorn använder sökförmågan för index för att hämta rader från ett icke-grupperat index. Fönstret Egenskaper innehåller namnet på det icke-illustrerade index som används. Den innehåller också sökpredikatet. Databasmotorn använder indexet för att endast bearbeta de rader som uppfyller sökpredikatet. Det kan också innehålla en där predikat, som databasmotorn utvärderar mot alla rader som uppfyller sökpredikatet (den använder inte indexen för att göra detta). Om fönstret Egenskaper innehåller ORDERED -satsen har frågeprocessorn fastställt att raderna måste returneras i den ordning som det icke-grupperade indexet har sorterat dem i. ORDERED Om satsen inte finns söker databasmotorn igenom indexet på det optimala sättet (vilket inte garanterar att utdata sorteras). Det kan vara mindre effektivt att låta utdata behålla sin ordning än att producera icke-sorterade utdata.

Indexsökning är en logisk och fysisk operator.
Indexpool Operatorn Index Spool innehåller ett sökpredikat i fönstret Egenskaper. Index Spool-operatorn söker igenom sina indatarader, placerar en kopia av varje rad i en dold spoolfil (lagras i tempdb-databasen och finns endast under frågans livslängd) och skapar ett icke-grupperat index på raderna. På så sätt kan du använda sökfunktionen för index för att endast mata ut de rader som uppfyller sökpredikatet. Om operatorn återställs (till exempel av en kapslad loopoperator ) men ingen ombindning behövs, används de buffrade data i stället för att genomsöka indata igen.

Indexpool är en fysisk operator.
Indexuppdatering Den fysiska operatorn IndexUppdatering uppdaterar rader från sina indata i det icke-illustrerade index som anges i fönstret Egenskaper . Om det finns ett angivet predikat anges varje uppdaterad kolumn till det här värdet.

Indexuppdatering är en fysisk operator.
Inre koppling Operatorn Inre koppling returnerar varje rad som uppfyller kopplingspredikatet för den första (översta) inmatningen med den andra (nedre) inmatningen.

Inre koppling är en logisk operator.
Infoga Operatorn Infoga infogar varje rad från dess indata i objektet som anges i fönstret Egenskaper. Den fysiska operatorn är antingen operatorn Table Insert, Index Insert eller Clustered Index Insert .

Insert är en logisk operator.
Infogad genomsökning I utlösare genomsöker operatorn Infogad genomsökning den infogade tabellen.

Infogad genomsökning är en logisk och fysisk operator.
Inneboende Operatorn Intrinsic anropar en intern Transact-SQL funktion.

Intrinsic är ett språkelement.
Iterator Ikon för Iterator catchall visas när en lämplig ikon för iteratorn inte kan hittas av logiken som skapar grafiska showplans. Catchall-ikonen anger inte nödvändigtvis ett feltillstånd.
Nyckelsökning Nyckelsökningsoperatorn är ett bokmärkesuppslag i en tabell med ett grupperat index. Fönstret Egenskaper innehåller namnet på det klustrade indexet och den klusternyckel som används för att leta upp raden i det klustrade indexet. Nyckelsökning åtföljs alltid av en operator för kapslade loopar . WITH PREFETCH Om satsen visas i fönstret Egenskaper har frågeprocessorn fastställt att det är optimalt att använda asynkron prefetching (läs framåt) när bokmärken i det klustrade indexet letas upp.

Användningen av en nyckelsökningsoperator i en frågeplan anger att frågan kan dra nytta av prestandajustering. Frågeprestanda kan till exempel förbättras genom att ett täckande index läggs till.
Nyckeluppsättning Operatorn Keyset använder en markör som kan se uppdateringar, men inte infogningar, som gjorts av andra.
Språkelement Ikonen För språkelementet catchall visas när en lämplig ikon för iteratorn inte kan hittas av logiken som skapar grafiska showplans. Catchall-ikonen anger inte nödvändigtvis ett feltillstånd.
Lazy Spool Den logiska operatorn Lazy Spool lagrar varje rad från sina indata i ett dolt tillfälligt objekt som lagras i tempdb-databasen. Om operatorn återställs (till exempel av en kapslad loopoperator ) men ingen ombindning behövs, används de buffrade data i stället för att genomsöka indata igen. Om det behövs en ombindning tas de buffrade data bort och spoolobjektet återskapas genom att (rebound)-indata genom att genomsökas igen. Lazy Spool-operatorn skapar sin spoolfil på ett "lat" sätt, det vill sa att varje gång spoolens överordnade operator ber om en rad, hämtar spooloperatorn en rad från sin indataoperator och lagrar den i bufferten, i stället för att förbruka alla rader samtidigt.

Lazy Spool är en logisk operator.
None Vänster anti semi koppling Operatorn Left Anti Semi Join returnerar varje rad från den första (översta) inmatningen när det inte finns någon matchande rad i den andra (nedre) inmatningen. Om det inte finns något kopplingspredikat i fönstret Egenskaper är varje rad en matchande rad.

Left Anti Semi Join är en logisk operator.
None Vänster yttre koppling Operatorn Vänster yttre koppling returnerar varje rad som uppfyller kopplingspredikatet för den första (översta) inmatningen med den andra (nedre) inmatningen. Den returnerar även alla rader från den första indatan som inte har några matchande rader i den andra inmatningen. De icke-matchande raderna i andra indata returneras som null-värden. Om det inte finns något kopplingspredikat i fönstret Egenskaper är varje rad en matchande rad.

Vänster yttre koppling är en logisk operator.
None Vänster halvkoppling Operatorn Vänster halvkoppling returnerar varje rad från den första (övre) inmatningen när det finns en matchande rad i den andra (nedre) inmatningen. Om det inte finns något kopplingspredikat i fönstret Egenskaper är varje rad en matchande rad.

Vänster halvkoppling är en logisk operator.
Genomsökning av loggrad Operatorn För loggradsökning söker igenom transaktionsloggen.

Genomsökning av loggrad är en logisk och fysisk operator.
Sammanslagningsintervall Operatorn Sammanslagningsintervall sammanfogar flera (potentiellt överlappande) intervall för att skapa minimala intervall som inte överlappar varandra och som sedan används för att söka efter indexposter. Den här operatorn visas vanligtvis före en eller flera Compute Scalar-operatorer över operatorer för konstant genomsökning , som konstruerar de intervall (representeras som kolumner i en rad) som operatorn sammanfogar.

Kopplingsintervall är en logisk och fysisk operator.
Koppla koppling Operatorn Sammanfoga koppling utför den inre kopplingen, vänster yttre koppling, vänster halvkoppling, vänster anti-semikoppling, höger yttre koppling, höger halvkoppling, höger anti-semikoppling och logiska unionsåtgärder.

I fönstret Egenskaper innehåller operatorn Koppla koppling ett kopplingspredikat om åtgärden utför en en-till-många-koppling eller ett många-till-många-kopplingspredikat om åtgärden utför en många-till-många-koppling. Fönstret Egenskaper innehåller också en kommaavgränsad lista över kolumner som används för att utföra åtgärden. Operatorn Koppla koppling kräver två indata sorterade på respektive kolumner, eventuellt genom att infoga explicita sorteringsåtgärder i frågeplanen. Kopplingskoppling är särskilt effektivt om explicit sortering inte krävs, till exempel om det finns ett lämpligt B-trädindex i databasen eller om sorteringsordningen kan utnyttjas för flera åtgärder, till exempel en sammanslagningskoppling och gruppering med sammanslagning.

Kopplingskoppling är en fysisk operator. Mer information finns i Förstå sammanslagningskopplingar.
Kapslade loopar Operatorn Kapslade loopar utför den inre kopplingen, vänster yttre koppling, vänster halvkoppling och logiska åtgärder för vänster anti-semikoppling.

Kapslade loopkopplingar utför en sökning i den inre tabellen för varje rad i den yttre tabellen, vanligtvis med hjälp av ett index. Frågeprocessorn bestämmer, baserat på förväntade kostnader, om de yttre indata ska sorteras för att förbättra lokaliseringen av sökningarna i indexet över de inre indata. Alla rader som uppfyller (valfritt) predikat i fönstret Egenskaper returneras enligt vad som är tillämpligt, baserat på den logiska åtgärd som utförs. OPTIMIZED När attributet är inställt på Trueinnebär det att optimerade kapslade loopar (eller Batch-sortering) används.

Kapslade loopar är en fysisk operator. Mer information finns i Understanding Nested Loops joins (Förstå kapslade loopar).
None Infoga onlineindex Operatorn Infoga onlineindex anger att en indexåtgärd (skapa, ändra eller släpp) utförs online. Det vill: underliggande tabelldata förblir tillgängliga för användare under indexåtgärden.

Online Index Insert är en fysisk operator.
Ingen Parallellitet Parallellismoperatorn (eller Exchange Iterator) utför de logiska åtgärderna distribuera strömmar, samla in strömmar och ompartitionera strömmar. Fönstret Egenskaper kan innehålla en partitionskolumn som predikat med en kommaavgränsad lista över de kolumner som partitioneras. Fönstret Egenskaper kan också innehålla en ordning efter predikat, som visar kolumnerna som ska bevara sorteringsordningen för under partitioneringen.

Not: Om en fråga har kompilerats som en parallell fråga, men vid körningen körs den som en seriefråga, innehåller showplan-utdata som genereras av SET STATISTICS XML eller med alternativet Inkludera faktisk körningsplan i SQL Server Management Studio inte elementet RunTimeInformation för parallellitetsoperatorn . I SET STATISTICS PROFILE utdata visar det faktiska radantalet och det faktiska antalet körningar nollor för parallellismoperatorn . När något av villkoren inträffar innebär det att parallellitetsoperatorn endast användes under frågekompilering och inte i körningsfrågeplanen. Ibland körs parallella frågeplaner i serie om det finns en hög samtidig belastning på servern.

Parallellitet är en fysisk operator. Mer information om parallellitetsoperatorn finns i Parallellitetsoperatorn.
Genomsökning av parametertabell Operatorn Parameter Table Scan söker igenom en tabell som fungerar som en parameter i den aktuella frågan. Detta används vanligtvis för INSERT frågor inom en lagrad procedur.

Parametertabellsökning är en logisk och fysisk operator.
None Partiell aggregering Partiell aggregering används i parallella planer. Den tillämpar en aggregeringsfunktion på så många indatarader som möjligt så att det inte behövs att skriva till disk (kallas "spill"). Hash-matchning är den enda fysiska operatorn (iterator) som implementerar partiell aggregering.

Partiell aggregering är en logisk operator.
Befolkningsfråga Operatorn Population Query fyller i arbetstabellen för en markör när markören öppnas.
Uppdatera fråga Operatorn Uppdatera fråga hämtar aktuella data för rader i hämtningsbufferten.
Fjärrborttagning Operatorn Fjärrborttagning tar bort indataraderna från ett fjärrobjekt.

Fjärrborttagning är en logisk och fysisk operator.
Fjärrindexsökning Operatorn Fjärrindexsökning söker igenom fjärrindexet som anges i fönstret Egenskaper.

Fjärrindexsökning är en logisk och fysisk operator.
Fjärrindexsökning Operatorn Fjärrindexsökning använder sökförmågan för ett fjärrindexobjekt för att hämta rader. Fönstret Egenskaper innehåller namnet på fjärrindexet som används och sökpredikatet.

Fjärrindexsökning är en logisk och fysisk operator.
Fjärrinfogning Operatorn Fjärrinfogning infogar indataraderna i ett fjärrobjekt.

Remote Insert är en logisk och fysisk operator.
Fjärrfråga Fjärrfrågasoperatorn skickar en fråga till en fjärrkälla. Texten i frågan som skickas till fjärrservern visas i fönstret Egenskaper .

Fjärrfråga är en logisk och fysisk operator.
Fjärrgenomsökning Fjärrskanningsoperatorn söker igenom ett fjärrobjekt. Namnet på fjärrobjektet visas i fönstret Egenskaper .

Fjärrgenomsökning är en logisk och fysisk operator.
Fjärruppdatering Fjärruppdateringsoperatorn uppdaterar indataraderna i ett fjärrobjekt.

Fjärruppdatering är en logisk och fysisk operator.
Ompartitionera strömmar Operatorn Repartition Streams (eller exchange iterator) förbrukar flera strömmar och genererar flera dataströmmar med poster. Postinnehållet och formatet ändras inte. Om frågeoptimeraren använder ett bitmappsfilter minskas antalet rader i utdataströmmen. Varje post från en indataström placeras i en utdataström. Om den här operatorn är orderbevarande måste alla indataströmmar sorteras och sammanfogas till flera ordnade utdataströmmar. Om utdata partitioneras innehåller fönstret Egenskaper en predikat för partitionskolumner och partitioneringskolumnerna. Om utdata sorteras innehåller fönstret Egenskaper en ordning efter predikat och kolumnerna som sorteras. Operatorn används endast i parallella frågeplaner.

Ompartitionsströmmar är en logisk operator.
resultat Resultatoperatorn är de data som returneras i slutet av en frågeplan. Detta är vanligtvis rotelementet i en showplan.

Resultatet är ett språkelement.
RID-sökning RID-sökning är ett bokmärkesuppslag på en heap med hjälp av en angiven radidentifierare (RID). Fönstret Egenskaper innehåller den bokmärkesetikett som används för att leta upp raden i tabellen och namnet på tabellen där raden slås upp. RID Lookup åtföljs alltid av en NESTED LOOP JOIN.

RID-sökning är en fysisk operator. Mer information om bokmärkessökningar finns i Läs bekräftad sökning och bokmärkessökning.
None Höger anti semi koppling Operatorn Right Anti Semi Join matar ut varje rad från den andra (nedre) indatan när det inte finns någon matchande rad i den första (översta) indatan. En matchande rad definieras som en rad som uppfyller predikatet i fönstret Egenskaper (om det inte finns något predikat är varje rad en matchande rad).

Höger Anti Semi Join är en logisk operator.
None Höger yttre koppling Operatorn Höger yttre koppling returnerar varje rad som uppfyller kopplingen för den andra (nedre) indatan med varje matchande rad från den första (översta) inmatningen. Den returnerar också alla rader från den andra indatan som inte hade några matchande rader i den första inmatningen, kopplade till NULL. Om det inte finns något kopplingspredikat i fönstret Egenskaper är varje rad en matchande rad.

Höger yttre koppling är en logisk operator.
None Höger halvkoppling Operatorn Höger halvkoppling returnerar varje rad från den andra (nedre) inmatningen när det finns en matchande rad i den första (översta) inmatningen. Om det inte finns något kopplingspredikat i fönstret Egenskaper är varje rad en matchande rad.

Höger halvkoppling är en logisk operator.
Radantalspool Operatorn Radantalspool söker igenom indata, räknar hur många rader som finns och returnerar samma antal rader utan några data i dem. Den här operatorn används när det är viktigt att kontrollera om det finns rader i stället för de data som finns i raderna. Om en operator för kapslade loopar till exempel utför en vänster halvkopplingsåtgärd och kopplingspredikatet gäller för inre indata, kan en radantalspool placeras överst i de inre indata för operatorn Kapslade loopar . Sedan kan operatorn Kapslade loopar avgöra hur många rader som matas ut av radantalspoolen (eftersom faktiska data från den inre sidan inte behövs) för att avgöra om den yttre raden ska returneras.

Radantalspool är en fysisk operator.
None Segmentpartition I en parallell frågeplan finns det ibland konceptuella regioner med iteratorer. Alla iteratorer i en sådan region kan köras av parallella trådar. Själva regionerna måste köras seriellt. Några av parallellism-iteratorerna i en enskild region kallas Förgreningspartition. Parallellism-iteratorn vid gränsen för två sådana regioner kallas Segmentrepartition.

Ompartition av gren och segmentpartition är logiska operatorer.
Segment Segmentoperatorn delar indatauppsättningen i segment baserat på värdet för en eller flera kolumner. Dessa kolumner visas som argument i segmentoperatorn . Indata sorteras efter dessa kolumner. Operatorn använder segmentkolumnen för att markera den första raden i varje segment.

Segment är en fysisk och logisk operator.
Sekvensprojekt Operatorn Sekvensprojekt lägger till kolumner för att utföra beräkningar över en ordnad uppsättning. Det kräver att indatauppsättningen delas upp i segment baserat på värdet för en eller flera kolumner.

Sekvensprojektet är en logisk och fysisk operator.
Sekvens Sekvensoperatorn kör omfattande uppdateringsplaner. Funktionellt kör den varje indata i sekvens (uppifrån och ned). Varje indata är vanligtvis en uppdatering av ett annat objekt. Den returnerar endast de rader som kommer från dess sista (nedre) indata.

Sekvens är en logisk och fysisk operator.
Ögonblicksbild Operatorn Ögonblicksbild skapar en markör som inte ser ändringar som gjorts av andra.
Sort Sorteringsoperatorn sorterar alla inkommande rader. Fönstret Egenskaper innehåller antingen en distinkt ordning efter predikat om dubbletter tas bort av den här åtgärden, eller en ordning efter predikat med en kommaavgränsad lista över kolumnerna som sorteras. Kolumnerna prefixeras med värdet ASC om kolumnerna sorteras i stigande ordning eller värdet DESC om kolumnerna sorteras i fallande ordning.

Sortering är en logisk och fysisk operator.
Klyva Operatorn Split används för att optimera uppdateringsbearbetningen. Varje uppdateringsåtgärd delas upp i en borttagning och en infogningsåtgärd.

Delning är en logisk och fysisk operator.
Spole Spooloperatorn sparar ett mellanliggande frågeresultat i tempdb-databasen.
Strömma aggregering Stream Aggregate-operatorn grupperar rader efter en eller flera kolumner och beräknar sedan ett eller flera aggregeringsuttryck som returneras av frågan. Utdata från den här operatorn kan refereras av senare operatorer i frågan, returneras till klienten eller båda. Stream Aggregate-operatorn kräver indata som sorteras av kolumnerna i dess grupper. Optimeraren använder en sorteringsoperator före den här operatorn om data inte redan sorteras på grund av en tidigare sorteringsoperator eller på grund av en ordnad indexsökning eller genomsökning. I instruktionen SHOWPLAN_ALL eller den grafiska körningsplanen i SQL Server Management Studio visas kolumnerna i gruppen efter predikat i fönstret Egenskaper och de aggregerade uttrycken visas i kolumnen Definierade värden .

Stream Aggregate är en fysisk operator.
Strömbrytare Switch är en särskild typ av sammanlänkningsiterator som har n indata. Ett uttryck är associerat med varje Switch-operator . Beroende på returvärdet för uttrycket (mellan 0 och n-1) kopierar Switch lämplig indataström till utdataströmmen. En användning av Switch är att implementera frågeplaner som involverar snabbsnabb framåtmarkörer med vissa operatorer, till exempel operatorn TOP .

Växeln är en logisk och fysisk operator.
Ta bort tabell Operatorn Ta bort tabell tar bort rader från tabellen som anges i fönstret Egenskaper i frågekörningsplanen.

Ta bort tabell är en fysisk operator.
Infoga tabell Operatorn Tabellinfogning infogar rader från sina indata i tabellen som anges i fönstret Egenskaper i frågekörningsplanen. Fönstret Egenskaper innehåller också ett angivet predikat, vilket anger det värde som varje kolumn har angetts till. Om Tabellinfogning inte har några underordnade värden för infogade värden tas raden som infogas från själva Insert-operatorn.

Table Insert är en fysisk operator.
Sammanslagning av tabell Operatorn Table Merge tillämpar en sammanslagningsdataström på en heap. Operatorn tar bort, uppdaterar eller infogar rader i tabellen som anges i fönstret Egenskaper för operatorn. Den faktiska åtgärden som utförs beror på körningsvärdet för egenskapen ActionColumn

Tabellsammanslagning är en fysisk operator.
Tabellgenomsökning Operatorn Tabellgenomsökning hämtar alla rader från tabellen som anges i fönstret Egenskaper i frågekörningsplanen. Om ett predikat visas i fönstret Egenskaper returneras endast de rader som uppfyller predikatet.

Tabellgenomsökning är en logisk och fysisk operator.
Tabellpool Operatorn Table Spool söker igenom indata och placerar en kopia av varje rad i en dold spooltabell som lagras i tempdb-databasen och som endast finns under frågans livslängd. Om operatorn återställs (till exempel av en kapslad loopoperator ) men ingen ombindning behövs, används de buffrade data i stället för att genomsöka indata igen.

Tabellpool är en fysisk operator.
Tabelluppdatering Tabelluppdateringsoperatorn uppdaterar indatarader i tabellen som anges i fönstret Egenskaper i frågekörningsplanen. Set-predikatet avgör värdet för varje uppdaterad kolumn. Dessa värden kan refereras till i SET -satsen eller någon annanstans inom den här operatorn och någon annanstans i den här frågan.

Tabelluppdatering är en fysisk operator.
Tabellvärdesfunktion Operatorn Tabellvärdesfunktion utvärderar en tabellvärdesfunktion (antingen Transact-SQL eller CLR) och lagrar de resulterande raderna i tempdb-databasen. När de överordnade iteratorerna begär raderna returnerar Tabellvärdesfunktionen raderna från tempdb.

Frågor med anrop till tabellvärdesfunktioner genererar frågeplaner med iteratorn Table-valued Function . Tabellvärdesfunktionen kan utvärderas med olika parametervärden:

- Tabellvärdesfunktionens XML-läsare matar in en XML-BLOB som en parameter och skapar en raduppsättning som representerar XML-noder i XML-dokumentordning. Andra indataparametrar kan begränsa XML-noder som returneras till en delmängd av XML-dokument.

- Tabellvärdesfunktionens XML-läsare med XPath-filter är en särskild typ av TABELLvärdesfunktion för XML-läsare som begränsar utdata till XML-noder som uppfyller ett XPath-uttryck.

Tabellvärdesfunktion är en logisk och fysisk operator.
Topp Operatorn Top söker igenom indata och returnerar endast det första angivna antalet eller procenten av raderna, eventuellt baserat på en sorteringsordning. Fönstret Egenskaper kan innehålla en lista över de kolumner som söks efter band. I uppdateringsplaner används operatorn Top för att framtvinga radantalsgränser.

Top är en logisk och fysisk operator.
None Övre N sortering Top N Sort liknar sorterings iteratorn, förutom att endast de första N raderna behövs och inte hela resultatuppsättningen. För små värden för N försöker SQL Server-frågekörningsmotorn utföra hela sorteringsåtgärden i minnet. För stora värden för N använder frågekörningsmotorn den mer generiska sorteringsmetoden som N inte är en parameter till.
UDX Extended Operators (UDX) implementerar en av många XQuery- och XPath-åtgärder i SQL Server.

– Den utökade operatorn (UDX) FOR XML används för att serialisera relationsraden som den anger i XML-representation i en enda BLOB-kolumn på en enda utdatarad. Det är en orderkänslig XML-aggregeringsoperator.

– Utökad operator (UDX) XML SERIALIZER är en orderkänslig XML-aggregeringsoperator. Den matar in rader som representerar XML-noder eller XQuery-skalärer i XML-dokumentordning och skapar en serialiserad XML-BLOB i en enda XML-kolumn på en enda utdatarad.

– Den utökade operatorn (UDX) XML FRAGMENT SERIALIZER är en särskild typ av som används för bearbetning av XML SERIALIZER indatarader som representerar XML-fragment som infogas i XQuery Insert Data Modification Extension.

– Utökad operator (UDX) XQUERY STRING utvärderar XQuery-strängvärdet för indatarader som representerar XML-noder. Det är en ordningskänslig strängaggregeringsoperator. Den matar ut en rad med kolumner som representerar XQuery-skalären som innehåller strängvärdet för indata.

– Utökad operator (UDX) XQUERY LIST DECOMPOSER är en XQuery-listdekompositionsoperator. För varje indatarad som representerar en XML-nod genererar den en eller flera rader som var och en representerar XQuery-skalär som innehåller ett listelementvärde om indata är av XSD-listtyp.

– Den utökade operatorn (UDX) XQUERY DATA utvärderar funktionen XQuery fn:data() på indata som representerar XML-noder. Det är en ordningskänslig strängaggregeringsoperator. Den matar ut en rad med kolumner som representerar XQuery-skalär som innehåller resultatet av fn:data().

– Den utökade operatorn XQUERY CONTAINS utvärderar funktionen XQuery fn:contains() på indata som representerar XML-noder. Det är en ordningskänslig strängaggregeringsoperator. Den matar ut en rad med kolumner som representerar XQuery-skalär som innehåller resultatet av fn:contains().

– Den utökade operatorn UPDATE XML NODE uppdaterar XML-noden i tillägget XQuery replace data modification i modify() metoden för XML-typ.

UDX-operatorer är både logiska och fysiska operatorer.
Union Union-operatorn söker igenom flera indata, matar ut varje rad som genomsöks och tar bort dubbletter.

Union är en logisk operator.
Update Uppdateringsoperatorn uppdaterar varje rad från indata i objektet som anges i fönstret Egenskaper i frågekörningsplanen.

Uppdatering är en logisk operator. Den fysiska operatorn är Table Update, Index Update eller Clustered Index Update.
Fönsterpool Operatorn Window Spool expanderar varje rad till den uppsättning rader som representerar det fönster som är associerat med den. I en fråga OVER definierar -satsen fönstret i en frågeresultatuppsättning och en fönsterfunktion beräknar sedan ett värde för varje rad i fönstret.

Window Spool är en logisk och fysisk operator.

Anmärkning

I dokumentationen används termen B-träd vanligtvis som referens till index. I radlagringsindex implementerar databasmotorn ett B+-träd. Detta gäller inte för kolumnlagringsindex eller index i minnesoptimerade tabeller. Mer information finns i arkitekturen och designguiden för SQL Server och Azure SQL-index.