다음을 통해 공유


이벤트 쿼리에 대한 SELECT 문

다양한 SELECT 문을 사용하여 이벤트 정보를 쿼리할 수 있습니다. 문은 기본 문이거나 쿼리에서 반환되는 결과 집합의 범위를 좁히기 위해 더 제한적일 수 있습니다.

다음 예제는 이벤트 정보를 쿼리하는 데 사용되는 기본 SELECT 문입니다.

SELECT * FROM EventClass

소비자가 쿼리를 제출하면 EventClass표시되는 모든 이벤트 발생에 대한 알림을 받는 요청입니다. 이 요청에는 모든 이벤트 시스템 및 비시스템 속성에 대한 알림 요청이 포함됩니다. 이벤트 공급자는 쿼리를 제출하면 EventClass 나타내는 이벤트가 발생할 때 알림 생성에 대한 지원을 등록합니다.

소비자는 SELECT 문의 별표(*) 대신 개별 속성을 지정할 수 있습니다.

다음 예제에서는 특정 속성을 쿼리하는 방법을 보여줍니다.

SELECT property_1, property_2, property_3 FROM MyEventClass

그러나 쿼리가 포함된 개체 속성을 지정하더라도 포함된 개체의 모든 속성이 반환됩니다.

다음 예제에서는 동일한 데이터를 반환하는 두 개의 쿼리를 보여 줍니다.

SELECT targetInstance FROM __InstanceCreationEvent within 2
    WHERE targetinstance isa "Win32_Process"
SELECT targetInstance.Name FROM __InstanceCreationEvent within 2
    WHERE targetinstance isa "Win32_Process"

시스템 속성이 특정 쿼리와 관련이 없는 경우 NULL 포함합니다. 예를 들어 __RELPATH 시스템 속성의 값은 모든 이벤트 쿼리에 대해 NULL .

다음 시스템 속성에는 이벤트 쿼리에 대한 NULL 포함되어 있습니다.

\_\_Namespace \_\_Path \_\_RelPath \_\_Server

자세한 내용은 WMI 시스템 속성 참조 참조하세요.

모든 이벤트 쿼리에는 선택적 WHERE 절포함될 수 있지만 WHERE 절은 주로 소비자가 추가 필터링을 지정하는 데 사용됩니다. 소비자는 항상 WHERE 절을 지정하는 것이 좋습니다. 복잡한 쿼리 비용은 불필요한 알림을 전달하고 처리하는 비용에 비해 최소화됩니다.

다음 예제에서는 가상 클래스 EmailEvent영향을 주는 모든 인스턴스 수정 이벤트에 대한 알림을 요청하는 쿼리를 보여 줍니다.

SELECT * FROM EmailEvent

EmailEvent 연결된 이벤트가 자주 발생하는 경우 소비자는 이벤트로 넘쳐납니다. 더 나은 쿼리는 중요도 수준이 높은 경우와 같이 특정 조건이 지정된 클래스의 속성을 사용하는 경우에만 이벤트를 요청합니다.

다음 예제에서는 emailImportance EmailEvent 클래스의 속성인 경우 사용할 수 있는 쿼리를.

SELECT * FROM EmailEvent WHERE EmailImportance > 3

WMI는 여러 가지 이유로 쿼리를 거부할 수 있습니다. 예를 들어 쿼리가 너무 복잡하거나 리소스를 많이 사용하여 평가할 수 있습니다. 이 경우 WMI는 WBEM_E_INVALID_QUERY같은 특정 오류 코드를 반환합니다.

포함된 개체의 속성은 WHERE 절에서 사용할 수 있습니다.

다음 예제에서는 __InstanceModificationEvent 시스템 클래스의 TargetInstance 속성이 포함된 Win32_LogicalDisk 개체이고 freeSpace Win32_LogicalDisk속성인 개체를 쿼리하는 방법을 보여줍니다.

SELECT * FROM __InstanceModificationEvent WITHIN 600
    WHERE TargetInstance ISA "Win32_LogicalDisk" 
    AND   TargetInstance.FreeSpace < 1000000