So erstellen Sie eine Sammlung für Workstations

Dies mag wie ein seltsamer Blogbeitrag erscheinen. Warum suchen Sie nicht einfach nach allen Arbeitsplätzen mit „Windows 7%“ und „Windows 10%“ in Ihrer Abfrage? Sobald Sie diese Informationen haben, können Sie eine Sammlung für Arbeitsstationen erstellen. Ja, das funktioniert, aber hier ist das Problem: Sie veranlassen Ihren SQL Server, mehr Arbeit zu tun, als er tun muss. Was passiert außerdem, wenn Sie ein weiteres Workstation-Betriebssystem (OS) wie Windows 8 hinzufügen? Mehr Arbeit!

In diesem Blogbeitrag erkläre ich genauer, warum es schlecht ist, Sammlungsabfragen mit dem Prozentsymbol „%“ darin zu erstellen. Stattdessen zeige ich Ihnen eine sehr einfache Abfrage, die alle Workstation-Betriebssysteme erfasst, ohne SQL Server oder Ihren SCCM-Standortserver zu belasten. Danach müssen Sie nur noch die Sammlung für Workstations erstellen.

Das Problem mit dem Prozentsymbol „%“

Hier gehe ich, um in das Wesentliche von SQL Server einzusteigen und wie Indizes in einer Datenbank funktionieren! Die meisten von euch wissen, was die “weiße Seiten" sind richtig? Es ist dieses 3 Zoll dicke Buch, das in der Nähe des Telefons deiner Eltern zu Hause liegt. Stellen Sie sich die White Pages als Datenbank vor, denn genau das ist eine Datenbank.

Um meinen Standpunkt zu beweisen, ähneln SQL Server-Indizes den weißen Seiten eines Telefonverzeichnisses. Ich habe eine schnelle Bing-Suche nach SCCM WQL-Workstations durchgeführt. Ich habe diesen Link zu gefunden ConfigMgr WQL-Abfragen auf der Microsoft TechNet Gallery-Website. Die allererste aufgeführte Abfrage lautet: „Alle aktiven Windows-Arbeitsstationen (Laptops/Desktops).“

auswählen

SMS_R_SYSTEM.ResourceID,

SMS_R_SYSTEM.ResourceType,

SMS_R_SYSTEM.Name,

SMS_R_SYSTEM.SMSUniqueIdentifier,

SMS_R_SYSTEM.ResourceDomainORWorkgroup,

SMS_R_SYSTEM.Client

aus

SMS_R_System

Inner Join SMS_G_System_CH_ClientSummary auf SMS_G_System_CH_ClientSummary.ResourceId = SMS_R_System.ResourceId Inner Join SMS_G_System_SYSTEM_ENCLOSURE auf SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId

wo

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

und SMS_R_System.OperatingSystemNameandVersion like „Microsoft Windows NT-Workstation%“

und SMS_G_System_CH_ClientSummary.ClientActiveStatus = 1

und SMS_R_System.Client = 1

und SMS_R_System.Obsolete = 0

und SMS_R_System.Active = 1

Diese Abfrage betrachtet das Systemgehäuse und das Attribut Gehäusetyp. Ich kann einen ganzen Blogbeitrag darüber schreiben, warum diese Abfrage NICHT alle Workstations findet, aber das ist für einen anderen Tag. Der Grund, warum ich Ihnen diese Abfrage zeige, ist, dass Sie sich den hervorgehobenen Abschnitt ansehen.

Bevor ich zu meinem Punkt zu den weißen Seiten zurückkomme, was macht das Prozentsymbol „%“ in dieser Abfrage? Lassen Sie uns über SQL Server-Indizes und Tabellenscans sprechen.

Was sind SQL Server-Indizes?

Entsprechend Tutorials Punkt, „Indizes sind spezielle Nachschlagetabellen, die die Datenbanksuchmaschine verwenden kann, um den Datenabruf zu beschleunigen. Einfach ausgedrückt ist ein Index ein Zeiger auf Daten in einer Tabelle. Ein Index in einer Datenbank ist einem Index am Ende eines Buches sehr ähnlich.“

Was sind Tabellenscans?

Schauen wir uns nun Tabellenscans an. MSSQLTips.com sagt: „Bei einem Indexscan oder Tabellenscan muss SQL Server die Daten- oder Indexseiten scannen, um die entsprechenden Datensätze zu finden. Ein Scan ist das Gegenteil eines Suchvorgangs, bei dem ein Suchvorgang den Index verwendet, um die Datensätze zu lokalisieren, die zur Erfüllung der Abfrage erforderlich sind. Der Grund, warum Sie Ihre Scans finden und reparieren möchten, ist, dass sie im Allgemeinen mehr E/A erfordern und auch länger in der Verarbeitung dauern.“

Was macht das Prozentsymbol „%“ in der SCCM WQL-Abfrage?

Kurz gesagt bedeutet dies, dass Sie nach allen Datensätzen suchen, die mit „Microsoft Windows NT Workstation“ beginnen. Dies ist nicht so effizient wie das Abfragen aller Datensätze, die „Workstation“ enthalten, aber dazu später mehr.

Um auf meine Analogie zu den weißen Seiten zurückzukommen, möchte ich alle Zeilen mit „Jones%“ finden und den ersten Jones zu finden ist ziemlich einfach. Wieso den? In den meisten Fällen werden SQL Server-Indizes, ähnlich den White Pages in einem Telefonverzeichnis, nach dem Nachnamen zuerst sortiert. Dies ist jedoch in der SCCM-Datenbank nicht der Fall, und die Spalte OperatingSystemNameandVersion wird in SQL Server nicht indiziert. Dies bedeutet, dass SCCM bei Verwendung des Prozentsymbols % jede Zeile in der Datenbank überprüfen muss, um zu sehen, ob der Wert Jones% vorhanden ist. Mit anderen Worten, dies erfordert viel E/A.

Wie können wir diese Abfrage verbessern, um eine Sammlung für Workstations zu erstellen?

Verwenden Sie die Spalte SystemRole in der Systemansicht (SMS_G_System_SYSTEM). Unten sehen Sie einen Screenshot der Systemrollenspalte im Ressourcen-Explorer. Ja, Sie sehen es richtig. Der Spaltenname besteht in der Datenbank und WQL aus einem Wort und im Ressourcen-Explorer aus zwei Wörtern.

Sammlung für Workstations - Systemrollenspalte

auswählen

SMS_R_System.ResourceId,

SMS_R_System.ResourceType,

SMS_R_System.Name,

SMS_R_System.SMSUniqueIdentifier,

SMS_R_System.ResourceDomainORWorkgroup,

SMS_R_System.Client

aus

SMS_R_System

Inner Join SMS_G_System_CH_ClientSummary auf SMS_G_System_CH_ClientSummary.ResourceID = SMS_R_System.ResourceId

Inner Join SMS_G_System_SYSTEM auf SMS_G_System_SYSTEM.ResourceId = SMS_R_System.ResourceId

wo

SMS_G_System_SYSTEM.SystemRole = „Arbeitsplatz“

und SMS_G_System_CH_ClientSummary.ClientActiveStatus = 1

und SMS_R_System.Client = 1

und SMS_R_System.Obsolete = 0

und SMS_R_System.Active = 1

Beachten Sie, dass ich nicht viel geändert habe. Ich habe den ChassisType-Filter in der Where-Klausel entfernt, da es Workstations mit anderen Chassis-Typen gibt. Ich habe auch den OS-Namen entfernt. Stattdessen sucht die aktualisierte Abfrage nach der Systemrolle „Workstation“. Diese einfachen Änderungen machen die Abfrage auf Ihrem SQL Server- und SCCM-Standortserver effizienter.

Mit den Ergebnissen können Sie jetzt eine Sammlung für Workstations erstellen, in der Gewissheit, dass Sie den SQL Server nicht unnötig belasten.

Möchten Sie, dass ich einen Blog-Beitrag darüber veröffentliche, warum eine Abfrage, die nach dem Systemgehäuse-Attribut ChasisType sucht, nicht alle Workstations findet? Lassen Sie es mich wissen, indem Sie mich kontaktieren unter @GarthMJ.

Sehen Sie, wie Right Click Tools die Art und Weise verändert, wie Systeme verwaltet werden.

Steigern Sie sofort die Produktivität mit unserer limitierten, kostenlos nutzbaren Community Edition.

Starten Sie noch heute mit Right Click Tools:

Support

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Kontakt

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Durch das Absenden dieses Formulars erklären Sie sich damit einverstanden, dass Recast Software Ihre Daten wie in Recast Software beschrieben verarbeiten kann Datenschutz-Bestimmungen.

de_DEGerman