Come creare una raccolta per workstation

Questo potrebbe sembrare uno strano post sul blog da scrivere. Perché non cercare semplicemente tutte le workstation con "Windows 7%" e "Windows 10%" nella tua query? Una volta ottenute queste informazioni, è possibile creare una raccolta per le workstation. Sì, funziona, ma ecco il problema: stai facendo sì che il tuo SQL Server svolga più lavoro del necessario. Inoltre, cosa succede quando aggiungi un altro sistema operativo per workstation (OS) come Windows 8 nel mix? Più lavoro!

In questo post del blog, spiego in modo più dettagliato perché è sbagliato creare query di raccolta utilizzando il simbolo di percentuale "%" in esse. Invece, ti mostro una query molto semplice che cattura tutti i sistemi operativi della workstation senza essere difficile su SQL Server o sul tuo server del sito SCCM. Dopodiché, tutto ciò che devi fare è creare la raccolta per le workstation.

Il problema con il simbolo di percentuale "%"

Eccomi, entrando nel nocciolo di SQL Server e come funzionano gli indici in un database! La maggior parte di voi sa qual è il "pagine bianche" sono giusti? È quel libro spesso 3 pollici che vive vicino al telefono di casa dei tuoi genitori. Pensa alle pagine bianche come a un database perché è esattamente quello che è, un database.

Per aiutare a dimostrare il mio punto, gli indici di SQL Server sono simili alle pagine bianche di un elenco telefonico, ho fatto una rapida ricerca su Bing per le workstation SCCM WQL. Ho trovato questo link a Query WQL ConfigMgr sul sito della galleria TechNet Microsoft. La prima query elencata è "Tutte le workstation Windows attive (laptop/desktop)".

Selezionare

SMS_R_SYSTEM.IDRisorsa,

SMS_R_SYSTEM.ResourceType,

SMS_R_SYSTEM.Nome,

SMS_R_SYSTEM.SMSUniqueIdentifier,

SMS_R_SYSTEM.ResourceDomainORWorkgroup,

SMS_R_SYSTEM.Client

a partire dal

SMS_R_System

inner join SMS_G_System_CH_ClientSummary su SMS_G_System_CH_ClientSummary.ResourceId = SMS_R_System.ResourceId inner join SMS_G_System_SYSTEM_ENCLOSURE su SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId

dove

SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes in (“3”, “4”, “5”, “6”, “7”, “15”, “16”, “8”, “9”, “10”, “11”, “ 14")

e SMS_R_System.OperatingSystemNameandVersion like “Microsoft Windows NT Workstation%”

e SMS_G_System_CH_ClientSummary.ClientActiveStatus = 1

e SMS_R_System.Client = 1

e SMS_R_System.Obsoleto = 0

e SMS_R_System.Active = 1

Questa query sta esaminando l'involucro del sistema e l'attributo Chassis Type. Posso scrivere un intero post sul blog sul motivo per cui questa query NON troverà tutte le workstation, ma questo è per un altro giorno. Il motivo per cui ti sto mostrando questa query è che tu dia un'occhiata alla sezione evidenziata.

Prima di tornare al punto sulle pagine bianche, cosa fa il simbolo di percentuale "%" in questa query? Parliamo di indici di SQL Server e scansioni di tabelle.

Cosa sono gli indici di SQL Server?

Secondo Punto tutorial, “Gli indici sono tabelle di ricerca speciali che il motore di ricerca del database può utilizzare per accelerare il recupero dei dati. In poche parole, un indice è un puntatore ai dati in una tabella. Un indice in un database è molto simile a un indice sul retro di un libro".

Cosa sono le scansioni della tabella?

Ora, diamo un'occhiata alle scansioni della tabella. MSSQLTips.com dice: "Una scansione dell'indice o della tabella è quando SQL Server deve scansionare i dati o le pagine di indice per trovare i record appropriati. Una scansione è l'opposto di una ricerca, in cui una ricerca utilizza l'indice per individuare i record necessari per soddisfare la query. Il motivo per cui vorresti trovare e correggere le tue scansioni è perché generalmente richiedono più I/O e richiedono anche più tempo per l'elaborazione.

Cosa fa il simbolo di percentuale "%" nella query SCCM WQL?

In poche parole, significa che stai cercando tutti i record che iniziano con "Microsoft Windows NT Workstation". Questo non è efficiente come richiedere tutti i record che contengono "Workstation", ma ne parleremo più avanti.

Tornando alla mia analogia con le pagine bianche, voglio trovare tutte le righe con "Jones%" e trovare il primo Jones è abbastanza facile. Come mai? Per la maggior parte, gli indici di SQL Server, simili alle pagine bianche in un elenco telefonico, sono ordinati per primo il cognome. Questo non è il caso, tuttavia, nel database SCCM e, per questo, la colonna OperatingSystemNameandVersion non è indicizzata in SQL Server. Ciò significa che quando si utilizza il simbolo di percentuale %, SCCM deve esaminare ogni riga nel database per vedere se il valore, Jones%, è presente. In altre parole, questo richiede molti I/O.

Come possiamo migliorare questa query per creare una raccolta per workstation?

Utilizzare la colonna SystemRole nella vista System (SMS_G_System_SYSTEM). Di seguito è riportato uno screenshot della colonna Ruolo del sistema in Esplora risorse. Sì, lo stai vedendo correttamente. Il nome della colonna è una parola nel database e WQL e due parole in Resource Explorer.

Raccolta per workstation - Colonna ruolo di sistema

Selezionare

SMS_R_System.ResourceId,

SMS_R_System.ResourceType,

SMS_R_System.Nome,

SMS_R_System.SMSUniqueIdentifier,

SMS_R_System.ResourceDomainORWorkgroup,

SMS_R_System.Client

a partire dal

SMS_R_System

inner join SMS_G_System_CH_ClientSummary su SMS_G_System_CH_ClientSummary.ResourceID = SMS_R_System.ResourceId

inner join SMS_G_System_SYSTEM su SMS_G_System_SYSTEM.ResourceId = SMS_R_System.ResourceId

dove

SMS_G_System_SYSTEM.SystemRole = “Stazione di lavoro”

e SMS_G_System_CH_ClientSummary.ClientActiveStatus = 1

e SMS_R_System.Client = 1

e SMS_R_System.Obsoleto = 0

e SMS_R_System.Active = 1

Nota che non sono cambiato molto. Ho rimosso il filtro ChassisType nella clausola where perché ci sono workstation con altri tipi di chassis. Ho anche rimosso il nome del sistema operativo. La query aggiornata cerca invece il ruolo di sistema "Workstation". Queste semplici modifiche rendono la query più efficiente su SQL Server e sul server del sito SCCM.

Con i risultati, ora puoi andare avanti e creare una raccolta per le workstation con la consapevolezza che non stai sottoponendo a stress eccessivo SQL Server.

Vuoi che scriva un post sul blog sul motivo per cui una query che cerca l'attributo System Enclosure ChasisType non troverà tutte le workstation? Fatemi sapere contattandomi a @GarthMJ.

Scopri come Right Click Tools sta cambiando il modo in cui vengono gestiti i sistemi.

Aumenta immediatamente la produttività con la nostra Community Edition limitata e gratuita.

Inizia oggi con Right Click Tools:

Condividi questo:

Supporto

  • Questo campo serve per la convalida e dovrebbe essere lasciato inalterato.

Contatti

  • Questo campo serve per la convalida e dovrebbe essere lasciato inalterato.
it_ITItalian