Поиск неподдерживаемых моделей компьютеров
Работаю над проектом по миграции с Windows 7 на Windows 10. Заказчик для оформления закупок новых ноутбуков попросил найти компьютеры старых неподдерживаемых моделей и контакты пользователей, которые «связаны» через User Device Affinity.
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 яйцами к брусчатке прибил за такой запрос 🙂