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 las particiones permite definir con facilidad las particiones que pueden combinarse más tarde con el comando MergePartitions. Para obtener más información acerca de 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 el diseño de agregaciones que se usa como una referencia y definen cómo controlar el proceso de diseño basado en esa referencia. Mediante el comando DesignAggregations y sus propiedades, puede diseñar agregaciones de forma iterativa o por lotes y luego 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 agregaciones 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 propiedades siguientes del comando DesignAggregations para controlar el algoritmo que se usa para definir las agregaciones para el diseño de agregaciones:

  • La propiedad Steps determina el número de iteraciones que debería realizar el comando DesignAggregations antes de devolver el control a la aplicación cliente.

  • La propiedad Time determina el número de milisegundos que debería tardar el comando DesignAggregations antes de devolver el control a la aplicación cliente.

  • La propiedad Optimization determina el porcentaje estimado de mejora del rendimiento que debería intentar alcanzar el comando DesignAggregations. Si diseña agregaciones de forma iterativa, sólo tendrá que enviar esta propiedad en el primer comando.

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

  • La propiedad Materialize determina si el comando DesignAggregations debería 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 uso incluyendo uno o más elementos Query en la propiedad Queries. La propiedad Queries puede contener uno o más elementos Query. Si la propiedad Queries no contiene ningún elemento Query, el diseño de agregaciones 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 Storage y Optimization 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 que se usan con más frecuencia. Puede especificar sus propias consultas de objetivo o usar la información almacenada por una instancia de Microsoft SQL Server Analysis Services en el registro de consultas para recuperar información sobre las más utilizadas. El Asistente para optimización basada en el uso utiliza el registro de la consulta para recuperar consultas de objetivo según el tiempo, uso o un usuario especificado cuando envía un comando DesignAggregations. Para obtener más información, vea Asistente para optimización basada en el uso (Ayuda F1).

Si diseña agregaciones de forma iterativa, sólo tiene que incluir consultas de objetivo en el primer comando DesignAggregations porque la instancia de Analysis Services almacena estas consultas de objetivo y las usa durante la ejecución de posteriores 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...]

  • Frequency
    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 proceso por lotes, dependiendo de la interactividad que requiere el proceso de diseño.

Diseñar agregaciones mediante un proceso iterativo

Para diseñar agregaciones de forma iterativa, debe enviar varios comandos DesignAggregations para proporcionar un control exhaustivo 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 Asistente para diseñar agregaciones (Ayuda F1).

Nota

Para diseñar agregaciones de forma iterativa, se requiere una sesión explícita. Para obtener más información acerca de sesiones explícitas, vea Administrar conexiones y sesiones (XMLA).

Para iniciar el proceso iterativo, envíe primero un comando DesignAggregations que contenga la información siguiente:

  • Los valores de propiedad Storage y Optimization a los que va dirigido el proceso de diseño completo.

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

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

  • La propiedad Materialize está 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, éste devuelve un conjunto de filas que contiene las 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, entonces envíe otro comando DesignAggregations que contenga los valores Steps y Time con los que se limita este paso del proceso de diseño. Evalúe las estadísticas resultantes y, a continuación, determine si el proceso de diseño debe continuar. Este proceso iterativo de enviar comandos DesignAggregations y evaluar los resultados continúa hasta que alcance sus objetivos y tenga un conjunto de agregaciones adecuado y definido.

Cuando haya obtenido el conjunto de agregaciones que desea, envíe un último comando DesignAggregations. Este último comando DesignAggregations debe tener su propiedad Steps establecida en 1 y su propiedad Materialize establecidas en true. Al usar estos valores, este último comando DesignAggregations completa el proceso del 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 a los que el proceso de diseño completo va dirigido y se limita. Si desea una optimización basada en uso, las consultas de objetivo a las que se dirige el proceso de diseño deberían también estar incluidas en la propiedad Queries. Asegúrese también de que la propiedad Materialize está establecida en true, para que el proceso de diseño guarde las agregaciones definidas en el diseño de agregaciones cuando finaliza 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 acerca de sesiones implícitas y explícitas, vea Administrar 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 fila única que representa las estadísticas de diseño para el comando. El conjunto de filas contiene las columnas que se muestran en la tabla siguiente.

Columna

Tipo de datos

Descripción

Steps

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

Doble

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.

Aggregations

Entero largo

El número de agregaciones definido por el comando antes de devolver el control a la aplicación cliente.

LastStep

Booleano

Indica si los datos en el conjunto de filas representan el último paso del proceso de diseño. Si la propiedad Materialize del comando está establecida en true, el valor de esta columna está establecido en true.

Puede usar las estadísticas de diseño contenidas en el conjunto de filas que se devuelve después de cada comando DesignAggregations en ambos diseños, 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.