Поиск неподдерживаемых моделей компьютеров
Работаю над проектом по миграции с Windows 7 на Windows 10. Заказчик для оформления закупок новых ноутбуков попросил найти компьютеры старых неподдерживаемых моделей и контакты пользователей, которые «связаны» через User Device Affinity.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | SELECT TOP (100) PERCENT v_GS_COMPUTER_SYSTEM.Name0 AS [Computer name ], dbo.v_R_User.Full_User_Name0 AS [ User name ], v_UserMachineRelationship.UniqueUserName AS [ User account], dbo.v_GS_COMPUTER_SYSTEM.Model0 AS Model, dbo.v_UserMachineIntelligence.ConsoleMinutes AS [Console usage, minutes], dbo.v_R_User.Mail0 AS [Email account], dbo.v_UserMachineIntelligence.LastLoginTime AS [ Last login time ] FROM dbo.v_GS_COMPUTER_SYSTEM INNER JOIN dbo.v_UserMachineRelationship ON v_GS_COMPUTER_SYSTEM.ResourceID = v_UserMachineRelationship.MachineResourceID INNER JOIN dbo.v_UserMachineIntelligence ON v_UserMachineRelationship.MachineResourceID = v_UserMachineIntelligence.MachineResourceID INNER JOIN dbo.v_R_User ON dbo.v_UserMachineRelationship.UniqueUserName = dbo.v_R_User.Unique_User_Name0 WHERE (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Latitude E6330%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Latitude E6320%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Latitude E6230%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Latitude E6420%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Latitude E65250%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Latitude E6430U%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Precision M3800%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%OptiPlex 960%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%OptiPlex 790%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%OptiPlex 780%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Latitude E6220%' ) OR (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N '%Precision T3600%' ) ORDER BY [Computer name ], [Console usage, minutes] DESC |
Работать будет, но запрос аццки неоптимален в части моделей (Like ‘%XX%’) — в большой инфраструктуре будет медленно работать. Имеет смысл или указывать одинарные %, либо вообще по списку идти (положив его в табличку в кастомной БД).
Тестировалось на базе данных с 15К машин.
Но, признаюсь, свёрстано было на коленке, потому что срочно.
Наш бы DBA яйцами к брусчатке прибил за такой запрос