Una de las (poco frecuentes) características nuevas de AS2008 son las vistas de administración de datos, que le permiten mostrar todo tipo de metadatos útiles e información de estilo de administración en formato tabular. Sin embargo, como señala Darren aquí:
http://geekswithblogs.net/darrengosbell/archive/2007/08/13/SSAS-2008-Data-Management-Views.aspx
… en realidad no es algo que no pueda obtener de los conjuntos de filas de esquema en este momento, y el gran conjunto de funciones que Darren escribió para el Proyecto de procedimiento almacenado de Analysis Services (http://www.codeplex.com/ASStoredProcedures/Wiki/View.aspx?title=XmlaDiscover&referringTitle=Home) facilitan el acceso a esta información en MDX.

Estuve jugando un poco con conjuntos de filas de esquema durante la semana pasada, principalmente porque estoy trabajando en una versión actualizada de mi calentador de caché SSIS (más de lo cual pronto), pero esto me dio una serie de ideas interesantes para otros cosas que podrían ser posibles. Por ejemplo, una de las grandes características que faltan de AS en este momento, en mi opinión, en un controlador de solicitudes: es demasiado fácil para un usuario poner su servidor de rodillas ejecutando la solicitud desde el infierno. En el artículo anterior, Darren habla sobre la información contenida en los conjuntos de filas DISCOVER_SESSIONS y DISCOVER_CONNECTIONS, y cómo puede usar los identificadores que devuelven para eliminar sesiones y conexiones; ambos contienen otra información interesante (que creo que probablemente necesite un poco de investigación para asegurarme de que sé exactamente lo que significan) sobre el tiempo transcurrido desde el último comando, el tiempo de CPU tomado por el último comando, cuál fue el último comando, cuánto tiempo el último el comando tardó en ejecutarse, etc. Con esta información, supongo que sería posible crear un gobernador de consultas rudimentario en SSIS: básicamente, un paquete programado para ejecutarse cada diez segundos o algo así, verificó el uso general de la CPU (u otros contadores de rendimiento) en la máquina y si estaba por encima cierto umbral, miró las sesiones abiertas, trató de determinar a los culpables y los mató.

También hay otras cosas útiles disponibles en los conjuntos de filas de esquema que no parecen estar documentados en ninguna parte. Si observa el conjunto de filas DISCOVER_SCHEMA_ROWSETS (intente ejecutar la llamada assp.Discover(«DISCOVER_SCHEMA_ROWSETS») si ASSP está instalado), puede ver qué conjuntos de filas de esquema están disponibles. Una interesante que encontré fue DISCOVER_PARTITION_DIMENSION_STAT; por ejemplo correr

llame a assp.Discover(«DISCOVER_PARTITION_DIMENSION_STAT», «Aventura funciona DWTrabajo de aventuraventas por internetInternet_Ventas_2004«)

…en Adventure Works. Lo que muestra es información de partición e indexación para una partición individual, información discutida en esta entrada de blog de SQLCat de principios de este año:
http://blogs.msdn.com/sqlcat/archive/2007/03/05/ssas-partition-slicing.aspx

Este artículo lo dirige a los archivos info*.xml creados cuando procesa una partitura para obtener esta información, pero aquí está listo para usar. Las últimas tres columnas devueltas por el conjunto de filas son las más importantes: le indican si cada atributo está indexado en la partición y, de ser así, cuáles son los miembros máximo y mínimo en la partición. Estos máximos y mínimos se expresan como ID de datos, las propias claves sustitutas internas de AS, y puede averiguar cuál es el ID de datos de un miembro utilizando la función de ID de datos (esperarlo) de la siguiente manera:

con medidas de member.showdataid como
ID de datos ([Date].[Date].miembro actual)
establecer medida.showdataid a 0,
[Date].[Date].miembros de 1
a partir de [adventure works]

Cuando me encontré con esto por primera vez, pensé que sería genial poder visualizar esta información de alguna manera para que pueda verificar si su división de partición está en un estado saludable o no. Por ejemplo, si observa la partición de 2001 del grupo de medida Ventas por Internet:

llame a assp.Discover(«DISCOVER_PARTITION_DIMENSION_STAT», «Aventura funciona DWTrabajo de aventuraventas por internetInternet_Ventas_2001«)

…puedes ver que no hay índice en absoluto. Esto se debe a que contiene tan pocos datos que se encuentran por debajo de la propiedad del servidor Index Build Threshold, lo que a su vez significa que cada vez que ejecute una consulta, se escaneará esa partición. Otra cosa con la que debe tener cuidado, si no está utilizando la propiedad Slice en cada partición (y realmente debería hacerlo, incluso en particiones MOLAP, a pesar de lo que digan algunas personas) es el script descrito por el equipo de SQLCat donde su los fragmentos terminan con rangos de ID de datos superpuestos, lo que significa que AS termina escaneando fragmentos innecesariamente cuando ejecuta consultas. Estoy seguro de que podría crear algún tipo de informe de SSRS que muestre todas las particiones de un grupo de métricas una al lado de la otra, y tal vez usar un gráfico de barras apiladas o algo así para tratar de representar los rangos de DataID para un atributo dado.