Diseñar agregaciones (XMLA)

Los diseños de agregaciones están asociados a las particiones de un grupo de medida determinado para asegurar que las particiones usan la misma estructura al almacenar agregaciones. El uso de la misma estructura de almacenamiento para particiones permite definir fácilmente particiones que se pueden combinar posteriormente mediante el comando MergePartitions . Para obtener más información sobre los diseños de agregaciones, vea Agregaciones y diseños de agregaciones.

Para definir agregaciones para un diseño de agregaciones, puede usar el comando DesignAggregations en XML for Analysis (XMLA). El comando DesignAggregations tiene propiedades que identifican qué diseño de agregación se va a usar como referencia y cómo controlar el proceso de diseño en función de esa referencia. Con el comando DesignAggregations y sus propiedades, puede diseñar agregaciones de forma iterativa o por lotes y, a continuación, ver las estadísticas de diseño resultantes para evaluar el proceso de diseño.

Especificar un diseño de agregaciones

La propiedad Object del comando DesignAggregations debe contener una referencia de objeto a un diseño de agregación existente. La referencia de objeto contiene un identificador de la base de datos, identificador de cubo, identificador de grupo de medida e identificador de diseño de agregaciones. Si el diseño de agregaciones aún no existe, se produce un error.

Controlar el proceso de diseño

Puede usar las siguientes propiedades del comando DesignAggregations para controlar el algoritmo utilizado para definir agregaciones para el diseño de agregaciones:

  • La propiedad Steps determina cuántas iteraciones debe tomar el comando DesignAggregations antes de devolver el control a la aplicación cliente.

  • La propiedad Time determina cuántos milisegundos debe tomar el comando DesignAggregations antes de devolver el control a la aplicación cliente.

  • La propiedad Optimización determina el porcentaje estimado de mejora del rendimiento que el comando DesignAggregations debe intentar lograr. Si diseña agregaciones de forma iterativa, solo tendrá que enviar esta propiedad en el primer comando.

  • La propiedad Storage determina la cantidad estimada de almacenamiento en disco, en bytes, utilizada por el comando DesignAggregations . Si diseña agregaciones de forma iterativa, solo tendrá que enviar esta propiedad en el primer comando.

  • La propiedad Materialize determina si el comando DesignAggregations debe crear las agregaciones definidas durante el proceso de diseño. Si diseña agregaciones de forma iterativa, esta propiedad debería establecerse en false hasta que esté listo para guardar las agregaciones diseñadas. Cuando la propiedad está establecida en true, finaliza el proceso de diseño actual y las agregaciones definidas se agregan al diseño de agregaciones especificado.

Especificar consultas

El comando DesignAggregations admite el comando de optimización basada en el uso mediante la inclusión de uno o varios elementos Query en la propiedad Queries . La propiedad Queries puede contener uno o varios elementos Query . Si la propiedad Queries no contiene ningún elemento Query , el diseño de agregación especificado en el elemento Object usa una estructura predeterminada que contiene un conjunto general de agregaciones. Este conjunto general de agregaciones está diseñado para cumplir los criterios especificados en las propiedades Optimización y Almacenamiento del comando DesignAggregations .

Cada elemento Query representa una consulta de objetivo que utiliza el proceso de diseño para definir agregaciones dirigidas a las consultas utilizadas con más frecuencia. Puede especificar sus propias consultas de objetivo o puede usar la información almacenada por una instancia de Microsoft SQL Server SQL Server Analysis Services en el registro de consultas para recuperar información sobre las consultas usadas con más frecuencia. El Asistente para optimización de Usage-Based usa el registro de consultas para recuperar consultas de objetivo basadas en el tiempo, el uso o un usuario especificado cuando envía un comando DesignAggregations . Para obtener más información, vea Ayuda F1 del Asistente para optimización basada en el uso.

Si está diseñando agregaciones de forma iterativa, solo tiene que pasar consultas de objetivo en el primer comando DesignAggregations porque la instancia de SQL Server Analysis Services almacena estas consultas de objetivo y usa estas consultas durante los siguientes comandos DesignAggregations. Después de incluir las consultas del objetivo en el primer comando DesignAggregations de un proceso iterativo, cualquier comando DesignAggregations posterior que contenga las consultas de objetivo en la propiedad Queries generará un error.

El elemento Query contiene un valor delimitado por comas que contiene los siguientes argumentos:

Frequency,Dataset[,Dataset...]

Frecuencia
Un factor de ponderación que corresponde al número de veces que se ha ejecutado con anterioridad la consulta. Si el elemento Query representa una nueva consulta, el valor Frequency representa el factor de ponderación utilizado por el proceso del diseño para evaluar la consulta. A medida que el valor de frecuencia se vuelve mayor, el valor de ponderación que se asigna a la consulta durante el proceso de diseño va aumentando.

Dataset
Una cadena numérica que especifica qué atributos de una dimensión se van a incluir en la consulta. Esta cadena debe tener el mismo número de caracteres que el número de atributos de la dimensión. El cero (0) indica que el atributo de la posición ordinal especificada no está incluido en la consulta de la dimensión especificada, mientras que el uno (1) indica que el atributo de la posición ordinal especificada está incluido en la consulta de la dimensión especificada.

Por ejemplo, la cadena "011" haría referencia a una consulta que implicaría una dimensión con tres atributos, de los que el segundo y el tercero estarían incluidos en la consulta.

Nota

Algunos atributos no se tienen en cuenta en el conjunto de datos. Para obtener más información sobre los atributos excluidos, vea Elemento Query (XMLA) .

Cada dimensión del grupo de medida que contiene el diseño de agregaciones está representada por un valor Dataset en el elemento Query . El orden de los valores de Dataset debe coincidir con el orden de las dimensiones incluidas en el grupo de medidas.

Diseñar agregaciones mediante el proceso iterativo o proceso por lotes

Puede usar el comando DesignAggregations como parte de un proceso iterativo o un proceso por lotes, en función de la interactividad requerida por el proceso de diseño.

Diseñar agregaciones mediante un proceso iterativo

Para diseñar agregaciones de forma iterativa, se envían varios comandos DesignAggregations para proporcionar un control preciso sobre el proceso de diseño. El Asistente para diseñar agregaciones usa este mismo enfoque para proporcionar un control exhaustivo sobre el proceso de diseño. Para obtener más información, vea Ayuda F1 del Asistente para diseño de agregaciones.

Nota

Para diseñar agregaciones de forma iterativa, se requiere una sesión explícita. Para obtener más información sobre las sesiones explícitas, vea Managing Connections and Sessions (XMLA) (Administración de conexiones y sesiones [XMLA]).

Para iniciar el proceso iterativo, primero se envía un comando DesignAggregations que contiene la siguiente información:

  • Los valores de propiedad Storage y Optimization en los que se destina todo el proceso de diseño.

  • Los valores de propiedad Steps y Time en los que el primer paso del proceso de diseño está limitado.

  • Si desea la optimización basada en el uso, la propiedad Queries que contiene las consultas de objetivo a las que se dirige todo el proceso de diseño.

  • La propiedad Materialize establecida en false. Establecer esta propiedad en false indica que el proceso de diseño no guarda las agregaciones definidas en el diseño de agregaciones una vez completado el comando.

Cuando finaliza el primer comando DesignAggregations , el comando devuelve un conjunto de filas que contiene estadísticas de diseño. Puede evaluar estas estadísticas de diseño para determinar si el proceso de diseño debe continuar o si ha finalizado. Si el proceso debe continuar, envíe otro comando DesignAggregations que contenga los valores Steps y Time con los que este paso del proceso de diseño está limitado. Evalúe las estadísticas resultantes y, a continuación, determine si el proceso de diseño debe continuar. Este proceso iterativo de envío de comandos DesignAggregations y la evaluación de los resultados continúa hasta alcanzar los objetivos y tener definido un conjunto adecuado de agregaciones.

Una vez que haya alcanzado el conjunto de agregaciones que desee, envíe un comando DesignAggregations final. Este comando DesignAggregations final debe tener su propiedad Steps establecida en 1 y su propiedad Materialize establecida en true. Con esta configuración, este comando Final DesignAggregations completa el proceso de diseño y guarda la agregación definida en el diseño de agregaciones.

Diseñar agregaciones mediante un proceso por lotes

También puede diseñar agregaciones en un proceso por lotes enviando un único comando DesignAggregations que contiene los valores de propiedad Steps, Time, Storage y Optimization en los que todo el proceso de diseño está dirigido y limitado. Si desea la optimización basada en el uso, las consultas de objetivo en las que se destina el proceso de diseño también deben incluirse en la propiedad Queries . Asegúrese también de que la propiedad Materialize esté establecida en true, de modo que el proceso de diseño guarde las agregaciones definidas en el diseño de agregaciones cuando finalice el comando.

Puede diseñar agregaciones mediante un proceso por lotes en una sesión tanto implícita como explícita. Para obtener más información sobre las sesiones implícitas y explícitas, vea Administración de conexiones y sesiones (XMLA).

Devolver estadísticas de diseño

Cuando el comando DesignAggregations devuelve el control a la aplicación cliente, el comando devuelve un conjunto de filas que contiene una sola fila que representa las estadísticas de diseño del comando. El conjunto de filas contiene las columnas que se muestran en la tabla siguiente.

Columna Tipo de datos Descripción
Pasos Entero El número de pasos que realiza el comando antes de devolver el control a la aplicación cliente.
Time Entero largo El número de milisegundos que tarda el comando antes de devolver el control a la aplicación cliente.
Optimization Double El porcentaje estimado de mejora del rendimiento que alcanza el comando antes de devolver el control a la aplicación cliente.
Storage Entero largo El número estimado de bytes que toma el comando antes de devolver el control a la aplicación cliente.
Agregaciones Entero largo El número de agregaciones definido por el comando antes de devolver el control a la aplicación cliente.
LastStep Boolean Indica si los datos en el conjunto de filas representan el último paso del proceso de diseño. Si la propiedad Materialize del comando se estableció en true, el valor de esta columna se establece en true.

Puede usar las estadísticas de diseño contenidas en el conjunto de filas devuelto después de cada comando DesignAggregations en diseño iterativo y por lotes. En diseño iterativo, puede usar estadísticas de diseño para determinar y mostrar el progreso. Cuando diseña agregaciones por lotes, puede usar estadísticas de diseño para determinar el número de agregaciones que crea el comando.

Consulte también

Desarrollar con XMLA en Analysis Services