WITHIN Yan Tümcesi
Olay tüketicileri, yoklama aralığı veya gruplandırma aralığıbelirtmek için olay sorgularında WITHIN yan tümcesini kullanır.
Yoklama aralığı, Windows Yönetim Araçları'nın (WMI) sorgulanan olayın üye olduğu iç olaylarından sorumlu veri sağlayıcısını yoklamada kullandığı aralıktır. Bu aralık, bir olayın bildiriminin teslim edilmesi gerekmeden önce geçebilecek en uzun süredir. Tüketici, bir sınıfta yapılan değişikliklerin bildirimini gerektirdiğinde ve bir olay sağlayıcısı kullanılamadığında BIR WITHIN yan tümcesinde yoklama aralığı kullanır. Tüketici, bir iç olaya kaydolup yoklama aralığını içerir.
Yoklama aralığı belirtmek için, AŞAĞıDA gösterildiği gibi, WITHIN yan tümcesini WHERE yan tümcesinin hemen önüne yerleştirin:
SELECT * FROM IntrinsicEventClass WITHIN interval WHERE property = value
IntrinsicEventClass, olayın üye olduğu iç olay sınıfıdır, aralık yoklama aralığıdır ve değer tüketicinin bildirim gerektirdiği özelliğin değeridir.
Yoklama aralığı kayan noktalı bir sayıdır ve 1 saniyeden küçük değerleri kabul etmek için kesirli olabilir. Ancak, çok küçük bir değer belirtmek, yoklamanın yoğun kaynak kullanımlı yapısı nedeniyle WMI'nin deyimi geçerli değil olarak reddetmesine neden olabileceğinden, aralık 0,001 gibi son derece küçük bir değer yerine birkaç saniyeyi temsil etmelidir. Olay tüketicilerinin çoğu anında bildirime ihtiyaç duymadığından, 5 dakikadan uzun bir aralık kullanmaları önerilir.
Aşağıdaki sorgu örneği, WMI'nin Win32_LogicalDisk sınıfının örneklerinde gerçekleşen değişiklikler için her 10 saniyede bir denetlemesini istemektedir. Sınıfın bir örneği belirtilen yoklama aralığı içinde değiştirilirse, her değişiklik için bir bildirim olayı gönderilir.
SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA "Win32_LogicalDisk"
Sorguya bağlı olarak, olay sağlayıcısı ve WMI olayları sağlama görevini paylaşabilir. Örneğin, __InstanceDeletionEvent sistem sınıfının olaylarını değil, __InstanceCreationEvent ve __InstanceModificationEvent sistem sınıflarının olaylarını destekleyen bir olay sağlayıcısı. Aşağıdaki sorgu, olay sağlayıcısının oluşturma ve değiştirme olaylarını oluştukları sırada oluşturmasını ve oluşturulduklarında teslim etmelerini sağlar. Sorgu ayrıca WMI'nin yoklama mekanizmasını kullanarak her 10 (on) saniyede bir __InstanceDeletionEvent olay oluşturmasına da olanak tanır.
SELECT * FROM __InstanceOperationEvent WITHIN 10 WHERE TargetInstance ISA "MyOwnClass"
Gruplandırma aralığı belirtmek için WITHIN yan tümcesini de kullanabilirsiniz. Gruplandırma aralığı, ilk olay alındıktan sonra WMI'nin benzer olayları toplaması gereken zaman aralığını belirten işaretsiz bir 32 bit tamsayıdır. Bu sürenin süresi dolduğunda WMI, tüm benzer olaylardan oluşan toplama olayını teslim eder. Daha fazla bilgi için bkz. GROUP Yan Tümcesi.
Sık gerçekleşen olaylara kaydolan olay tüketicileri, WITHIN yan tümcesi ile bir gruplandırma aralığı kullanır. Bir olay sorgusunda WHERE yan tümcesine GROUP WITHIN eklenmesi, WMI'nin birçok olay yerine tek bir toplama olayı göndermesine neden olur. Toplama olayı, __AggregateEvent sistem sınıfı tarafından temsil edilir.
Gruplandırma aralığı belirtmek için, WITHIN yan tümcesini GROUP yan tümcesinin hemen arkasına yerleştirin.
SELECT * FROM EventClass WHERE property = value GROUP WITHIN Interval
EventClass, olayın üyesi olduğu olay sınıfıdır, değer tüketicinin bildirim gerektirdiği özelliğin değeridir ve Aralık gruplandırma aralığıdır.
Daha fazla bilgi için bkz. Alınacak Olay Türünü Belirleme.
Kalıcı olay tüketicileri yalnızca yönetici ayrıcalıklarınız varsa yoklama sorguları ile oluşturulabilir.