다음을 통해 공유


WITHIN 절

이벤트 소비자는 이벤트 쿼리에서 WITHIN 절을 사용하여 폴링 간격 또는 그룹화 간격을 지정합니다.

폴링 간격은 WMI(Windows Management Instrumentation)가 클래스의 기본 이벤트를 담당하는 데이터 공급자를 폴링하는 데 사용하는 간격이며, 그 중 쿼리된 이벤트는 멤버입니다. 이 간격은 이벤트 알림이 배달되기 전 경과할 수 있는 최대 시간입니다. 소비자가 클래스 변경에 대한 알림을 필요로 하고 이벤트 공급자를 사용할 수 없는 경우 소비자는 WITHIN 절에서 폴링 간격을 사용합니다. 소비자는 내장 이벤트를 등록하고 폴링 간격을 포함합니다.

폴링 간격을 지정하려면 다음과 같이 WHERE 절 바로 앞에 WITHIN 절을 배치합니다.

SELECT * FROM IntrinsicEventClass WITHIN interval  WHERE property = value

IntrinsicEventClass는 이벤트가 멤버이고 간격이 폴링 간격이며 값은 소비자가 알림을 필요로 하는 속성의 값인 내장 이벤트 클래스입니다.

폴링 간격은 부동 소수점 숫자이며 1초보다 작은 값을 수락할 수 있도록 소수일 수 있습니다. 그러나 너무 작은 값을 지정하면 WMI가 리소스 집약적인 폴링 특성으로 인해 문을 유효하지 않은 것으로 거부할 수 있으므로 간격은 0.001과 같이 매우 작은 값이 아닌 몇 초를 나타내야 합니다. 대부분의 이벤트 소비자에게는 즉각적인 알림이 필요하지 않으므로 5분보다 큰 간격을 사용하는 것이 좋습니다.

다음 쿼리 예제에서는 WMI가 Win32_LogicalDisk 클래스의 인스턴스에 발생하는 변경 내용을 10초마다 확인하도록 요청합니다. 지정된 폴링 간격 내에 클래스의 인스턴스가 수정되면 수정할 때마다 알림 이벤트가 전송됩니다.

SELECT * FROM __InstanceModificationEvent WITHIN 10  WHERE TargetInstance ISA "Win32_LogicalDisk"

쿼리에 따라 이벤트 공급자와 WMI는 이벤트 제공 작업을 공유할 수 있습니다. 예를 들어 __InstanceDeletionEvent 시스템 클래스의 이벤트가 아닌 __InstanceCreationEvent__InstanceModificationEvent 시스템 클래스의 이벤트를 지원하는 이벤트 공급자입니다. 다음 쿼리를 사용하면 이벤트 공급자가 생성 및 수정 이벤트가 발생할 때 이를 생성하고, 이벤트가 생성될 때 전달되도록 할 수 있습니다. 또한 이 쿼리를 통해 WMI는 폴링 메커니즘을 사용하여 10초마다 __InstanceDeletionEvent 이벤트를 생성할 수도 있습니다.

SELECT * FROM __InstanceOperationEvent WITHIN 10  WHERE TargetInstance ISA "MyOwnClass"

WITHIN 절을 사용하여 그룹화 간격을 지정할 수도 있습니다. 그룹화 간격은 할당되지 않은 32비트 정수이며, 초기 이벤트를 받은 후 WMI가 유사한 이벤트를 수집해야 하는 기간을 지정합니다. 이 기간이 만료되면 WMI는 집계 이벤트를 전달하며, 모두 유사한 이벤트로 구성되어 있습니다. 자세한 내용은 GROUP 절을 참조하세요.

자주 발생하는 이벤트에 등록하는 이벤트 소비자는 WITHIN 절과 함께 그룹화 간격을 사용합니다. 이벤트 쿼리의 WHERE 절에 GROUP WITHIN을 추가하면 WMI가 여러 이벤트가 아닌 하나의 집계 이벤트를 보냅니다. 집계 이벤트는 __AggregateEvent 시스템 클래스로 표시됩니다.

그룹화 간격을 지정하려면 GROUP 절 바로 다음에 WITHIN 절을 배치합니다.

SELECT * FROM EventClass WHERE property = value GROUP WITHIN Interval

EventClass는 이벤트가 멤버이고 값이 소비자가 알림을 필요로 하는 속성의 값이며 간격이 그룹화 간격인 이벤트 클래스입니다.

자세한 내용은 수신할 이벤트 유형 결정을 참조하세요.

관리자 권한이 있는 경우에만 폴링 쿼리를 사용하여 영구 이벤트 소비자를 만들 수 있습니다.