WQL не поддерживает TOP - обходное решение потребности

для Python 3.x:

num = 1234
lst = list(map(int, str(num)))
5
задан remi.chateauneu 28 November 2017 в 09:49
поделиться

1 ответ

Нет, нет способа смоделировать TOP с использованием только WQL.

Исключение: если вам повезло, что вы запрашиваете класс WMI, который имеет незафиксированные возрастающие числовые номера экземпляров, используемые в качестве ключей, то вы можете использовать сравнения больше и меньше, чтобы ограничить и пролистать результаты.

Возможно, что ManagementClass.GetInstances () вместо использования запроса WQL может позволить вам отменить перечисление на полпути после того, как вы соберете достаточное количество экземпляров, и, следовательно, избежите затрат ЦП и ОЗУ на перечисление весь список сразу.

Обратите внимание, что, AFAIK, поставщик CIMV2 WMI изначально не обрабатывает WQL - вместо этого он просто полагается на WMI для перечисления всех экземпляров, обработки WQL и фильтрации результатов перед их возвратом вызывающей стороне. Но дорогостоящая часть (фактически получение базовых данных WMI) все еще выполняется. Поэтому я считаю, что нет никакого повышения эффективности (для локальных запросов WMI), используя WQL по сравнению с использованием GetInstances () и самостоятельно фильтруя результаты - и если GetInstances () позволяет вам отменить на полпути, то GetInstances () может быть намного дешевле для длинных наборов результатов.

4
ответ дан 14 December 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: