Delen via


GROUP-component

De GROUP-component zorgt ervoor dat WMI één melding genereert om een groep gebeurtenissen weer te geven. De representatieve melding is een exemplaar van de __AggregateEvent systeemklasse. De systeemklasse __AggregateEvent bevat twee eigenschappen: Representatieve en NumberOfEvents. De eigenschap Representatieve is een ingesloten object dat een van de exemplaren bevat die zijn ontvangen tijdens het groeperingsinterval dat is opgegeven in de WITHIN-component. Als er bijvoorbeeld een statistische gebeurtenis wordt gegenereerd om gebeurtenissen voor het wijzigen van exemplaren te melden, bevat Representatieve één exemplaar van de __InstanceModificationEvent-klasse. De eigenschap NumberOfEvents bevat het aantal gebeurtenissen dat tijdens het groeperingsinterval is ontvangen. Het groeperingsinterval geeft de periode aan, na ontvangst van een initiële gebeurtenis, waarin WMI vergelijkbare gebeurtenissen moet verzamelen.

De GROUP-component moet een WITHIN-component bevatten om het groeperingsinterval op te geven en kan het trefwoord BY of HAVING bevatten, of beide. De GROUP-component wordt na de WHERE-component geplaatst, zoals hieronder wordt weergegeven:

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

De EventClass-waarde is de gebeurtenisklasse waarvan de gebeurtenis lid is en waarde de waarde is voor de eigenschap waarvoor een melding is vereist. Het interval is een niet-ondertekend geheel getal dat het groeperingsinterval aangeeft nadat de eerste gebeurtenis is ontvangen. Het niet-ondertekende gehele getal is een aantal seconden. De eigenschappenlijst is een door komma's gescheiden lijst met een of meer eigenschappen die zijn opgenomen in de gebeurtenisklasse; operator een relationele operator is; en geheel getal is een niet-ondertekend 32-bits geheel getal dat een aantal gebeurtenissen aangeeft.

Wanneer u de GROUP-component gebruikt, zijn de WHERE-, BY- en HAVING-componenten optioneel.

Een basisgebruik van de GROUP-component kan een groepering van gebeurtenissen aanvragen binnen een tijdsinterval dat begint wanneer de eerste gebeurtenis wordt ontvangen. Met de volgende query worden bijvoorbeeld alle e-mail gebeurtenissen gegroepeerd die binnen 5 minuten zijn verzonden. In plaats van telkens wanneer een nieuw e-mailbericht wordt ontvangen, wisselt een gebruiker van deze query om de gebruiker alleen op de hoogte te stellen als er in de afgelopen vijf minuten nieuwe e-mail is ontvangen.

SELECT * FROM EmailEvent GROUP WITHIN 300

Als er meer gedetailleerde informatie vereist is, kunnen gebeurtenissen worden gegroepeerd op een of meer eigenschappen van de gebeurtenisklasse. De volgende query vraagt om e-mail gebeurtenissen te combineren met andere gebeurtenissen die dezelfde waarde hebben in de eigenschap Afzender:

SELECT * FROM EmailEvent GROUP WITHIN 300 BY Sender

Een nog groter detailniveau kan worden bereikt door een WHERE-component toe te voegen. Met de volgende query wordt bijvoorbeeld een gebruiker van nieuwe e-mail op de hoogte gebracht van een bepaalde afzender die in de afgelopen tien minuten is aangekomen, gecombineerd met andere gebeurtenissen met dezelfde waarde in de eigenschap Urgentie:

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