以下查询的wmi性能

时间:2010-06-23 08:57:17

标签: c# performance wmi

我正在使用以下两个WMI查询:

SELECT * FROM Win32_Group WHERE LocalAccount=true
SELECT Domain,Name FROM Win32_UserAccount WHERE LocalAccount=true

第二个查询运行大约需要6秒(仅限4个用户),而第一个查询大约需要0.3秒才能运行22个组。有人能告诉我为什么会出现这样的性能差距?还有其他写第二个查询的方法吗?

编辑:我正在本地计算机上运行查询,因此连接不应该出现在图片中。

1 个答案:

答案 0 :(得分:0)

我认为第二个查询很慢,因为它首先必须检索所有域用户。如果您只对本地用户感兴趣,可以尝试使用herelimit the query to the local machine所述的方法:

public static void GetUsers()  
{  
    SelectQuery sQry = new SelectQuery(“Win32_UserAccount”,“Domain=’PCNAME’”);  

    try  
    {  
        ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQry); 

        Console.WriteLine(“User Accounts\n”);  

        foreach (ManagementObject mObject in mSearcher.Get())  
        {  
            Console.WriteLine(mObject[“Name”]);  
        }  
    }  
    catch (Exception ex)  
    {  
        Console.WriteLine(ex.ToString());  
    }       
}