Cómo crear una colección para estaciones de trabajo

Esto puede parecer una entrada de blog extraña para escribir. ¿Por qué no buscar simplemente todas las estaciones de trabajo con “Windows 7%” y “Windows 10%” en su consulta? Una vez que tenga esta información, puede crear una colección para estaciones de trabajo. Sí, funciona, pero aquí está el problema: está provocando que su servidor SQL haga más trabajo del necesario. Además, ¿qué sucede cuando agrega otro sistema operativo (SO) de estación de trabajo como Windows 8 a la mezcla? ¡Mas trabajo!

En esta publicación de blog, explico con más detalle por qué es malo crear consultas de colección usando el símbolo de porcentaje “%” en ellas. En cambio, le muestro una consulta muy simple que captura todo el sistema operativo de la estación de trabajo sin ser duro con SQL Server o su servidor de sitio SCCM. Después de eso, todo lo que necesita hacer es crear la colección para estaciones de trabajo.

El problema con el símbolo de porcentaje "%"

¡Aquí voy, entrando en el meollo de SQL Server y cómo funcionan los índices en una base de datos! La mayoría de ustedes saben cuál es el "páginas blancas" ¿tienen razón? Es ese libro de 3 pulgadas de grosor que vive cerca del teléfono de la casa de tus padres. Piense en las páginas blancas como una base de datos porque eso es exactamente lo que es, una base de datos.

Para ayudar a demostrar mi punto, los índices de SQL Server son similares a las páginas blancas de un directorio telefónico, hice una búsqueda rápida en Bing de estaciones de trabajo SCCM WQL. Encontré este enlace a Consultas WQL ConfigMgr en el sitio de la Galería TechNet de Microsoft. La primera consulta enumerada es "Todas las estaciones de trabajo activas de Windows (computadoras portátiles / de escritorio)".

Seleccione

SMS_R_SYSTEM.ResourceID,

SMS_R_SYSTEM.ResourceType,

SMS_R_SYSTEM.Name,

SMS_R_SYSTEM.SMSUniqueIdentifier,

SMS_R_SYSTEM.ResourceDomainORWorkgroup,

SMS_R_SYSTEM.Client

desde

SMS_R_System

unión interna SMS_G_System_CH_ClientSummary en SMS_G_System_CH_ClientSummary.ResourceId = SMS_R_System.ResourceId unión interna SMS_G_System_SYSTEM_ENCLOSURE en SMS_G_System_SYSTEM_ENCLOSURE.Resource_System.ResourceId

dónde

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

y SMS_R_System.OperatingSystemNameandVersion como "Microsoft Windows NT Workstation%"

y SMS_G_System_CH_ClientSummary.ClientActiveStatus = 1

y SMS_R_System.Client = 1

y SMS_R_System.Obsolete = 0

y SMS_R_System.Active = 1

Esta consulta busca en el gabinete del sistema y el atributo Tipo de chasis. Puedo escribir una publicación de blog completa sobre por qué esta consulta NO encontrará todas las estaciones de trabajo, pero eso es para otro día. La razón por la que te muestro esta consulta es para que eches un vistazo a la sección resaltada.

Antes de volver a mi punto sobre las páginas blancas, ¿qué hace el símbolo de porcentaje "%" en esta consulta? Hablemos de índices de SQL Server y escaneos de tablas.

¿Qué son los índices de SQL Server?

De acuerdo a Punto de tutoriales, “Los índices son tablas de búsqueda especiales que el motor de búsqueda de la base de datos puede utilizar para acelerar la recuperación de datos. En pocas palabras, un índice es un puntero a datos en una tabla. Un índice en una base de datos es muy similar a un índice al final de un libro ".

¿Qué son los escaneos de tablas?

Ahora, veamos los escaneos de tablas. MSSQLTips.com dice, “Un escaneo de índice o escaneo de tabla es cuando SQL Server tiene que escanear los datos o las páginas de índice para encontrar los registros apropiados. Un escaneo es lo opuesto a una búsqueda, donde una búsqueda usa el índice para identificar los registros que se necesitan para satisfacer la consulta. La razón por la que querría encontrar y corregir sus escaneos es porque generalmente requieren más E / S y también tardan más en procesarse ".

¿Qué hace el símbolo de porcentaje “%” en la consulta SCCM WQL?

En pocas palabras, significa que está buscando todos los registros que comienzan con "Microsoft Windows NT Workstation". Esto no es tan eficiente como solicitar todos los registros que contienen "Estación de trabajo", pero más sobre eso más adelante.

Volviendo a mi analogía con las páginas blancas, quiero encontrar todas las filas con "Jones%" y encontrar el primer Jones es bastante fácil. ¿Por qué? En su mayor parte, los índices de SQL Server, similares a las páginas blancas de un directorio telefónico, se ordenan primero con el apellido. Sin embargo, este no es el caso en la base de datos SCCM y, por lo tanto, la columna OperatingSystemNameandVersion no está indexada en SQL Server. Esto significa que cuando usa el símbolo de porcentaje %, SCCM debe mirar cada fila en la base de datos para ver si el valor, Jones%, está ahí. En otras palabras, esto requiere mucha E / S.

¿Cómo podemos mejorar esta consulta para crear una colección para estaciones de trabajo?

Utilice la columna SystemRole en la vista Sistema (SMS_G_System_SYSTEM). A continuación se muestra una captura de pantalla de la columna Función del sistema en el Explorador de recursos. Sí, lo estás viendo correctamente. El nombre de la columna es una palabra en la base de datos y WQL, y dos palabras en el Explorador de recursos.

Colección para estaciones de trabajo: columna Función del sistema

Seleccione

SMS_R_System.ResourceId,

SMS_R_System.ResourceType,

SMS_R_System.Name,

SMS_R_System.SMSUniqueIdentifier,

SMS_R_System.ResourceDomainORWorkgroup,

SMS_R_System.Client

desde

SMS_R_System

unión interna SMS_G_System_CH_ClientSummary en SMS_G_System_CH_ClientSummary.ResourceID = SMS_R_System.ResourceId

unión interna SMS_G_System_SYSTEM en SMS_G_System_SYSTEM.ResourceId = SMS_R_System.ResourceId

dónde

SMS_G_System_SYSTEM.SystemRole = "Estación de trabajo"

y SMS_G_System_CH_ClientSummary.ClientActiveStatus = 1

y SMS_R_System.Client = 1

y SMS_R_System.Obsolete = 0

y SMS_R_System.Active = 1

Note que no cambié mucho. Quité el filtro ChassisType en la cláusula where porque hay estaciones de trabajo con otros tipos de chasis. También eliminé el nombre del sistema operativo. En su lugar, la consulta actualizada busca el rol del sistema "Estación de trabajo". Estos simples cambios hacen que la consulta sea más eficiente en su servidor SQL Server y el servidor de sitio SCCM.

Con los resultados, ahora puede seguir adelante y crear una colección para estaciones de trabajo sabiendo que no está poniendo ningún estrés indebido en SQL Server.

¿Le gustaría que hiciera una publicación de blog sobre por qué una consulta que busca el atributo ChasisType de System Enclosure no encontrará todas las estaciones de trabajo? Avísame poniéndote en contacto conmigo al @GarthMJ.

Vea cómo Right Click Tools está cambiando la forma en que se administran los sistemas.

Aumente la productividad de inmediato con nuestra versión limitada y gratuita de la edición Community.

Comience con Right Click Tools hoy:

Compartir este:

Ayuda

  • Este campo es para fines de validación y no debe modificarse.

Contacto

  • Este campo es para fines de validación y no debe modificarse.
es_MXSpanish