Dela via


GRUPP-sats

GROUP-satsen gör att WMI genererar ett enda meddelande som representerar en grupp händelser. Det representativa meddelandet är en instans av __AggregateEvent-systemklassen. Systemklassen __AggregateEvent innehåller två egenskaper: Representant och NumberOfEvents. Egenskapen Representant är ett inbäddat objekt som innehåller en av de instanser som togs emot under det grupperingsintervall som anges i WITHIN-satsen. Om till exempel en aggregeringshändelse genereras för att meddela om instansändringshändelser innehåller representant en instans av klassen __InstanceModificationEvent. Egenskapen NumberOfEvents innehåller antalet händelser som tas emot under grupperingsintervallet. Grupperingsintervallet anger tidsperioden, efter att ha tagit emot en första händelse, under vilken WMI ska samla in liknande händelser.

GROUP-satsen måste innehålla en WITHIN-sats för att ange grupperingsintervallet och kan innehålla nyckelordet BY eller HAVING, eller båda. GROUP-satsen placeras efter WHERE-satsen enligt följande:

SELECT * FROM EventClass [WHERE property = value] 
    GROUP WITHIN interval [BY property_list]
    [HAVING NumberOfEvents operator integer]

Värdet EventClass är den händelseklass som händelsen är medlem i och värde är värdet för den egenskap där meddelandet krävs. Intervallet är ett osignerat heltal som representerar grupperingsintervallet när den första händelsen har tagits emot. Det osignerade heltalet är ett antal sekunder. Egenskapslistan är en kommaavgränsad lista över en eller flera egenskaper som ingår i händelseklassen. operatorn är en relationsoperator. och heltal är ett osignerat 32-bitars heltal som anger ett antal händelser.

När du använder GROUP-satsen är satserna WHERE, BY och HAVING valfria.

En grundläggande användning av GROUP-satsen kan begära en gruppering av händelser inom ett tidsintervall som startar när den första händelsen tas emot. Följande fråga grupperar till exempel alla e-posthändelser som skickas inom 5 minuter. I stället för att söka efter en användare varje gång ett nytt e-postmeddelande tas emot kan den permanenta konsumenten använda den här frågan för att informera användaren endast om nytt e-postmeddelande har tagits emot under de senaste 5 minuterna.

SELECT * FROM EmailEvent GROUP WITHIN 300

Om mer detaljerad information krävs kan händelser grupperas efter en eller flera egenskaper för händelseklassen. Följande frågor begär att e-posthändelser kombineras med andra händelser som har samma värde i egenskapen Sender:

SELECT * FROM EmailEvent GROUP WITHIN 300 BY Sender

En ännu större detaljnivå kan uppnås genom att lägga till en WHERE-sats. Följande fråga meddelar till exempel en användare av nytt e-postmeddelande från en viss avsändare som har anlänt under de senaste 10 minuterna, kombinerat med andra händelser som har samma värde i egenskapen Importance:

SELECT * FROM EventClass WHERE Sender = "MyBoss" 
  GROUP WITHIN 300 BY Importance