Вы находитесь на странице: 1из 128

Microsoft SQL Server 2005 Guía de

rendimiento de Analysis Services


Artículo técnico de SQL Server

Autor: Elizabeth Blanco

Expertos en materia:
T.K. Anand

Sasha (Alexander) Berger

Deepak das

Eric Jacobsen

Edward Melomed

Akshai Mirchandani

Mosha Pasumansky

Castro Padalkar

Carl Rabeler

Wayne Robertson

Richard Tkachuk

Dave Wickert

Len Wyatt

Publicado: Febrero 2007


Se aplica a: SQL Server 2005, Service Pack 2
Análisis de servicios 2005 guía de rendimiento 2

Resumen: Este libro blanco describe cómo los desarrolladores de aplicaciones pueden
Aplicar Rendimiento-técnicas de afinación para Su Microsoft SQL Servidor 2005 Análisis
Servicios Procesamiento analítico en línea (OLAP) Soluciones.
Análisis de servicios 2005 guía de rendimiento 3

Copyright

La información contenida en este documento representa la visión actual de Microsoft Corporation sobre las cuestiones
discutidas a partir de la fecha de publicación. Dado que Microsoft debe responder a las cambiantes condiciones del
mercado, no debería interpretarse como un compromiso por parte de Microsoft, y Microsoft no puede garantizar la
exactitud de cualquier información presentada después de la fecha de publicación.

Este libro blanco es sólo para propósitos informativos. MICROSOFT NO ofrece ninguna garantía, expresa, implícita o
estatutaria, en cuanto a la información conTENIDA en este documento.

El cumplimiento de todas las leyes de derecho de autor aplicables es responsabilidad del usuario. Sin limitar los derechos
bajo copyright, ninguna parte de este documento podrá ser reproducida, almacenada o introducida en un sistema de
recuperación, o transmitida en cualquier forma o por cualquier medio (electrónico, mecánico, fotocopia, grabación, o de
otra manera), o para cualquier propósito, sin el permiso expreso y por escrito de Microsoft Corporation.

Microsoft puede tener patentes, solicitudes de patente, marcas registradas, derechos de autor o cualquier otro derecho de
propiedad intelectual que cubra el contenido de este documento. A excepción de lo estipulado expresamente en cualquier
acuerdo de licencia por escrito de Microsoft, el suministro de este documento no le da ninguna licencia a estas patentes,
marcas, derechos de autor, u otra propiedad intelectual.

A menos que se indique lo contrario, las empresas, organizaciones, productos, nombres de dominio, direcciones de correo
electrónico, logotipos, personas, lugares y eventos representados en los ejemplos aquí son ficticios. Ninguna asociación
con ninguna compañía real, organización, producto, nombre de dominio, dirección de correo electrónico, logotipo,
persona, lugar o evento se destina o debe inferirse.

2007 Microsoft Corporation. Todos los derechos reservados.

Microsoft, Windows y Windows Server son marcas registradas o marcas registradas de Microsoft Corporation en el United
States y/o de otros países.

Todas las demás marcas registradas son propiedad de sus respectivos propietarios.
Análisis de servicios 2005 guía de rendimiento 4

Tabla de contenidos
Introducción ..................................................................................................... 7
Mejora del rendimiento de las consultas ........................................................... 9
Comprensión de la arquitectura de consulta ....................................................... 9
Gestión de sesiones ................................................................................. 10
Ejecución de consultas MDX ...................................................................... 11
Recuperación de datos: dimensiones .......................................................... 13
Recuperación de datos: medir datos de grupo ............................................. 16
Optimización del diseño de cotas .................................................................... 19
Identificar relaciones de atributos .............................................................. 19
Uso de jerarquías de manera efectiva ......................................................... 23
Maximizar el valor de las agregaciones ............................................................ 26
Cómo ayudan las agregaciones .................................................................. 26
Cómo el motor de almacenamiento utiliza agregaciones ............................... 27
¿Por qué no crear todas las agregaciones posibles? ...................................... 29
Cómo interpretar las agregaciones ............................................................. 31
Qué agregaciones se construyen ................................................................ 32
Cómo impactar el diseño de agregación ...................................................... 33
Sugerir candidatos de agregación .............................................................. 34
Especificación de estadísticas sobre datos de cubos...................................... 38
Adopción de una estrategia de diseño de agregación .................................... 41
Uso de particiones para mejorar el rendimiento de las consultas ......................... 43
Cómo se utilizan las particiones en la consulta............................................. 43
Diseño de particiones ............................................................................... 44
Consideraciones de agregación para múltiples particiones ............................. 45
Escritura MDX eficiente .................................................................................. 47
Especificar el espacio de cálculo ................................................................. 47
Eliminar tuplas vacías ............................................................................... 50
ReSumir datos con MDX ........................................................................... 59
Aprovechando la caché del motor de ejecución de consultas.......................... 62
Aplicación de las mejores prácticas de cálculo ............................................. 63
Ajuste del rendimiento de procesamiento ....................................................... 65
Descripción de la arquitectura de procesamiento .............................................. 65
Descripción del trabajo de procesamiento ................................................... 65
Trabajos de procesamiento de dimensiones................................................. 66
Comandos de procesamiento de dimensiones .............................................. 68
Trabajos de procesamiento de particiones ................................................... 69
Comandos de procesamiento de partición ................................................... 70
Ejecución de trabajos de procesamiento ..................................................... 70
Análisis de servicios 2005 guía de rendimiento 5

ReFrescando dimensiones eficientemente ........................................................ 71


Optimización de la consulta de origen ......................................................... 71
Reducir sobrecarga de atributos ................................................................ 72
Optimización de insertos, actualizaciones y eliminaciones de cotas ................. 74
ReFrescar particiones eficientemente............................................................... 76
Optimización de la consulta de origen ......................................................... 76
Uso de particiones para mejorar el rendimiento de procesamiento ................. 76
Optimización de insertos, actualizaciones y eliminaciones de datos ................ 77
Evaluación de agregados rígidos versus flexibles .......................................... 78
Optimización de escenarios de diseño especiales ........................................... 80
Funciones agregadas especiales...................................................................... 80
Optimización de conteo distinto ................................................................. 80
Optimización de medidas semiaditivas ........................................................ 82
Jerarquías padre-hijo .................................................................................... 83
Relaciones de dimensión complejas ................................................................. 84
Relaciones de muchos a muchos ................................................................ 84
Relaciones de referencia ........................................................................... 87
Casi en tiempo real actualizaciones de datos .................................................... 90
Afinar recursos del servidor ............................................................................ 96
Comprensión de cómo los servicios de análisis utilizan la memoria ...................... 97
Gestión de memoria ................................................................................. 97
Memoria retráctil versus no retráctil ........................................................... 99
Demandas de memoria durante la consulta ................................................101
Demandas de memoria durante el proceso .................................................101
Optimización del uso de memoria ..................................................................102
Aumentar la memoria disponible ...............................................................102
Control de gestión de memoria .................................................................103
Minimizar la sobrecarga de metadatos .......................................................104
Supervisar el tiempo de espera de las sesiones ociosas ...............................104
Memoria de afinación para el proceso de partición ......................................105
Calentamiento de la caché de datos ..........................................................107
Comprender cómo Analysis Services utiliza los recursos de la CPU .....................109
Arquitectura de trabajo............................................................................109
Agrupaciones de hilos ..............................................................................110
Demandas del procesador durante la consulta ............................................110
Demandas del procesador durante el proceso .............................................111
Optimización del uso de la CPU ......................................................................112
Maximizar el paralelismo durante la consulta ..............................................112
Maximizar el paralelismo durante el procesamiento .....................................113
Usar memoria suficiente ..........................................................................115
Análisis de servicios 2005 guía de rendimiento 6

Utilizar un clúster de balanceo de carga .....................................................115


Comprender cómo Analysis Services utiliza los recursos de disco .......................116
Demandas de recursos de disco durante el procesamiento ...........................116
Demandas de recursos de disco durante la consulta ....................................117
Optimización del uso del disco .......................................................................117
Uso de memoria suficiente .......................................................................117
Optimización de ubicaciones de archivos ....................................................117
DesHabilitar el registro innecesario ...........................................................118
Conclusión .................................................................................................... 118
Apéndice A – para más información .............................................................. 119
Apéndice B: modos de almacenamiento de partición .................................... 119
OLAP multidimensional (MOLAP) ....................................................................119
OLAP híbrido (HOLAP) ..................................................................................120
OLAP relacional (ROLAP) ...............................................................................121
Apéndice C – utilidad de agregación ............................................................. 123
Beneficios de la utilidad de agregación ...........................................................123
Cómo la utilidad de agregación organiza particiones .........................................124
Cómo funciona la utilidad de agregación .........................................................125
Análisis de servicios 2005 guía de rendimiento 7

Introducción
Casi tiempos de respuesta de consulta y oportuno Datos Actualizar Son Dos
bienEstablecido requisitos de rendimiento del procesamiento analítico en línea (OLAP)
Sistemas. Para proporcionar un análisis rápido, Sistemas OLAP Tradicionalmente Uso
jerarquías a Eficientemente Organizar y resumir Datos. Mientras Estas jerarquías
proporcione la estructura y la eficacia al análisis, Que tienden a restringir Lla Analítica
Libertad De usuario finals Quién Quiero Libremente Analizar y organizar Datos sobre la
marcha.
Para Apoyo una amplia gama de estructurado y flexible Opciones de análisis, Microsoft
® Sql Servidor™ Analysis Services (SSAS) 2005 Combina los beneficios de
jerarquización tradicional Análisis Con Lla Flexibilidad De una nueva generación de
Atributo Jerarquías. Las jerarquías de atributos permiten a los usuarios organizar
libremente los datos en Consulta tiempo, en lugar de limitarse a la ruta de navegación
predefinidas del arquitecto OLAP. Para Apoyo Esta flexibilidad, Lla Servicios de análisis
Olap Arquitectura está específicamente diseñado para Acomodar Ambos Atributo y
jerárquico Análisis Mientras Mantener Lla consulta rápida actuación de Convencional
Bases de datos OLAP.
Darse cuenta Lla Rendimiento beneficios de este análisis combinado Paradigma requiere
comprensión Cómo la Olap Arquitectura Soporta Ambos jerarquías de atributos y
Tradicional Jerarquías, Cómo que Cna Eficazmente Uso la arquitectura Para Satisfy sus
requerimientos de análisis y cómo puede maximizar la arquitectura de Utilización de
recursos del sistema.
Nota Para aplicar las técnicas de ajuste de rendimiento analizadas en este libro
blanco, debe tener SQL Server 2005 Service Pack 2 instalado.
Para satisfacer las necesidades de rendimiento de varios diseños OLAP y entornos de
servidor, Este Blanco el papel proporciona una orientación Cómo puede aprovechar Lla
Amplia gama de oportunidades para optimizar el análisis SRendimiento ervicio. Desde
Servicios de análisis el tuning del rendimiento es un Bastante tema amplio, Este Blanco
el papel organizas Tuning de rendimiento Técnicas En los siguientes Cuatro Segmentos.
Mejorar Query Rendimiento - Rendimiento de la consulta impacta directamente el
calidad de la experiencia del usuario final. Como tal, es el principal punto de referencia
utilizado para evaluar elaplicación de una implementación OLAP. Analysis Services ofrece
una variedad de Mecanismos para acelerar Consulta Rendimiento, incluyendo
agregaciones, almacenamiento en caché y recuperación de datos indexados. Además
Usted puede mejorar rendimiento de la consulta mediante la optimización el diseño de
su dimensión Atributos Cubos, Y Mdx Consultas.
Ajuste del rendimiento de procesamiento - El procesamiento es la operación que
actualiza los datos En Un Base de datos Analysis Services. Cuanto más rápido sea el
rendimiento de procesamiento, antes los usuarios pueden acceder datos refrescados.
Analysis Services proporciona una variedad De Mecanismos que te Cna Uso Para
Influencia Procesamiento enrformance, Incluyendo diseño eficiente de la dimensión,
Eficaz Agregacións particiones, unNd Un Económico Procesamiento Estrategia (por
ejemplo, actualización incremental versus completa contra el almacenamiento en caché
proactivo).
Optimizar Especial DesIgn Scenarios – Los escenarios de diseño complejos requieren un
conjunto distinto de técnicas de afinación del rendimiento para asegurart se aplican con
éxito, especialmente si usted Combine Un Complejo Diseño Con grandes volúmenes de
Análisis de servicios 2005 guía de rendimiento 8

datos. Ejemplos de Complejo Diseño Componentes incluya las funciones agregadas


especiales, padre-hijo Jerarquías, dimensión compleja Relaciones, Y “Cerca en tiempo
real " actualizaciones de datos.
Tuning Server ReSources – Servicios de análisis opera dentro de las limitaciones de
Disponible Servidor Recursos. Understanding cómo Analysis Services Utiliza memoria,
CPU y disco Recursos puede ayudarle a realizar una administración eficaz del servidor
decisiones que optimizan el rendimiento de las consultas y el procesamiento.
Tres apéndices Proporcionar LTintas a recursos adicionales, información en varios modos
de almacenamiento de particiones, Y orientación sobre utilizando el Utilidad de
agregación que forma parte de SQL Servidor 2005 Service Pack 2 muestras.
Análisis de servicios 2005 guía de rendimiento 9

Mejora del rendimiento de las consultas


La consulta es la operación en la que Analysis Services proporciona datos a las
aplicaciones cliente de acuerdo con la Cálculo y los requisitos de datos de un
multiDNombresprofesional eConsulta de Xpressings (MDX). Desde qrendimiento uery
impacta directamente la experiencia del usuario, Sección describe las oportunidades más
significativas para mejorar el rendimiento de las consultas. Fuego Es una visión general
de la rendimiento de la consulta Temas Que se abordan en esta sección:
Comprensión de la arquitectura de consulta - THge Análisis de servicios de consulta de
arquitectura Apoyos Tres operaciones principales: administración de sesiones, ejecución
de consultas MDX y recuperación de datos. Optimizar el rendimiento de las consultas
implica comprender cómo funcionan estas tres operaciones en conjunto para satisfacer
las solicitudes de consulta.
Optimización del diseño de cotas - UN diseño de dimensión bien afinado es quizás uno
de los factores de éxito más críticos de una solución de servicios de análisis de alto
rendimiento. Crcomer relaciones de atributos y exponer atributos en jerarquías son
opciones de diseño Que influir en el diseño efectivo de agregación, MDX optimizado
Cálculo resolución y almacenamiento y recuperación de datos de dimensiones eficientes
desde el disco.
Maximizar el valor de las agregaciones - Las agregaciones mejoran el rendimiento de las
consultas proporcionando resúmenes de datos precalculados. TLla Maximizar el valor de
las agregaciones, Asegúrese de tener un diseño de agregación eficaz que satisfaga las
necesidades de su carga de trabajo específica.
Uso de particiones para mejorar el rendimiento de las consultas - Las particiones
proporcionan Un mecanismo para separar datos de grupo de medida en unidades físicas
que mejoran el performance de las consultas, mejoran el rendimiento del procesamiento
y facilitan la administración de datos. Las particiones se preguntan naturalmente en
paralelo; sin embargo, hay algunas opciones de diseño y optimizaciones de propiedades
de servidor que puede especificar para optimizar las operaciones de partición para la
configuración del servidor.
Escritura MDX eficiente - Esta sección Describe Técnicas para escribir declaraciones MDX
eficientes Como: 1) escribir declaraciones que aborden una definición limitada Cálculo
Espacio, 2) diseño de cálculos para el GREAtest reutilización en varios usuarios, y a
3) escribir cálculos de manera directa para ayudar al Motor de ejecución de consultas
Seleccione la ruta de ejecución más eficiente.

Entender la consulta de arquitectura


Para que la experiencia de consulta sea lo más rápida posible para los usuarios finales,
la arquitectura de consulta de servicios de análisis proporciona varios componentes que
trabajan juntos para recuperar y evaluar datos. Figura 1 identifica las tres operaciones
principales que se producen durante la consulta: administración de sesiones, ejecución
de consultas MDX y recuperación de datos así como los componentes del servidor que
participan en cada operación.
Análisis de servicios 2005 guía de rendimiento 10

Figura 1 Servicios de análisis querying architecture

Sesión Gestión
Las aplicaciones cliente se comunican con Analysis Services utilizando XML for Analysis
(XMLA) a través de TCP IP o HTTP. Analysis Services proporciona un componente de
escucha XMLA que maneja todas las comunicaciones XMLA entre Analysis Services y sus
clientes. El administrador de sesiones de Analysis Services controla el modo en que los
clientes se conectan a una instancia de Analysis Services. Usuarios autenticados por
Microsoft ® Windows Y que tienen derecho a los servicios de análisis pueden conectarse
a servicios de análisis. Después de que un usuario se conecte a Analysis Services, el
administrador de seguridad determina los permisos de usuario basándose en el
combinación de Servicio de análisiss Papels que se aplican a la Usuario. Dependiendo de
la arquitectura de la aplicación cliente y de los privilegios de seguridad de la conexión, el
cliente creas una sesión Cuando se inicie la aplicación y, a continuación, reutilizará la
sesión para todas las solicitudes del usuario. La sesión proporciona el contexto en el que
las consultas del cliente son ejecutadas por Lla Motor de ejecución de consultas. UNA
sesión Existe Hasta es sea cerrado por la aplicación cliente o hasta que el servidor
necesite caducarlo. Para más información sobre la longevidad de las sesiones, Ver
Supervisar el tiempo de espera de las sesiones ociosas En este blanco Papel.
Análisis de servicios 2005 guía de rendimiento 11

Mdx ejecución de consultas


El funcionamiento primario del Motor de ejecución de consultas es ejecutar consultas
MDX. Este Sección proporciona una visión general de cómo El motor de ejecución de
consultas ejecuta consultas. Para saber más detalles sobre Optimizar Mdx Ver Escritura
MDX eficiente más adelante en este blanco Papel.
Mientras que el proceso de ejecución de la consulta real se realiza en varias etapass,
desde una perspectiva de rendimiento, el motor de ejecución de consultas debe
considerar dos Básica Requisitos: recuperar datos y producir el conjunto de resultados.
1. Recuperar dAta—Para recuperar los datos solicitado por una consultaLla Motor de
ejecución de consultas decomposes Cada Consulta MDX en solicitudes de datos. Para
comunicarse con el motor de almacenamiento, Lla Motor de ejecución de consultas
Debe Traducir Lla solicitudes de datos En solicitud de subcubos que el motor de
almacenamiento puede entender. Un Subcubo Representa a unidad lógica de
consulta, almacenamiento en caché y recuperación de datos. Un Mdx la consulta se
puede resolver en una o más solicitudes de subcubo en función de la granularidad de
la consulta y Cálculo Complejidad. Tenga en cuenta que el Palabra Subcubo Es Un
término genérico. Por ejemplo, los subcubos Que el motor de ejecución de consultas
crea durante la evaluación de la consulta se no debe confundirse con los subcubos
que se pueden crear Usando el MDX CREAR instrucción de subCUBO.
2. Producir Lla rresultado sY—TLla Manipular los datos recuperados del motor de
almacenamiento, el motor de ejecución de consultas Utiliza Dos clases de Plan de
ejecucións Para calcular resultados: it puede calcular a granel un subcubo entero, o
it puede calcular células individuales. En general, la ruta de evaluación del subcubo
es más eficiente; sin embargo, el motor de ejecución de consultas selecciona en
última instancia los planes de ejecución basándose en las complejidades de cada
consulta MDX. Tenga en cuenta que una consulta determinada puede tener varios
planes de ejecución para diferentes partes de la consulta y/o diferentes cálculos
involucrados en la misma consulta. Además, diferentes partes de una consulta
pueden elegir uno de estos dos tipos de planes de ejecución de forma independiente,
por lo que hay no es una sola decisión global para toda la consulta. Por ejemplo, si
una consulta Peticións los revendedores cuya rentabilidad de un año a otro es
superior al 10%, el motor de ejecución de consultas puede utilizar un plan de
ejecución para calcular la rentabilidad de cada año del revendedor y otro plan de
ejecución para sólo devolver los revendedores cuya rentabilidad es grander del 10%.
Wpara ejecutar un cálculo MDX, el motor de ejecución de consultas debe ejecutar el
cálculo a menudo a través de más celdas de las que pueda realizar. Considere el
ejemplo en el que tiene una consulta MDX que debe devolver el cálculo año-a-fecha
de ventas en la parte superior Cinco Regiones. Aunque puede parecer que sólo está
regresando Cinco valores de celda, Analysis Services debe ejecutar el cálculo a
través de celdas adicionales para determinar la parte superior Cinco las regiones y
también para volver su año a las ventas de la fecha. UNA técnica general de
optimización MDX consiste en escribir consultas MDX de manera que reduzca al
mínimo la cantidad de datos que el motor de ejecución de la consulta Debe Evaluar.
Para obtener más información sobre Este Técnica de optimización MDX, Ver
Especificar el espacio de cálculo más adelante en este blanco Papel.
Como Lla Motor de ejecución de consultas Evalúa Células, utiliza el Motor de
ejecución de consultas Caché y el motor de almacenamiento CAche Para sarrancó los
Análisis de servicios 2005 guía de rendimiento 12

resultados del cálculo. Los principales beneficios de la caché son optimizar la


evaluación de los cálculos y apoyar la reutilización de los resultados de los cálculos
entre los usuarios. Para optimizar el reutilización de la caché, el motor de ejecución
de consultas administra tres ámbitos de caché que determinan el nivel de
reutilización de caché: ámbito global, ámbito de sesión, y el ámbito de consulta. Para
obtener más información sobre la caché CompartirVer Aprovechando la caché del
motor de ejecución de consultas En Este libro blanco.
Análisis de servicios 2005 guía de rendimiento 13

DAta Recuperación: Dimensiones


Durante recuperación de datos, el motor de almacenamiento debe elegir eficazmente el
mejor mecanismo para cumplir con las solicitudes de datos Para datos de la dimensión y
datos de la medida.
Para satisfacer solicitudes de Dimensión Datos el motor de almacenamiento Extrae datos
de Lla Dimensión atributo y jerarquía Tiendas. Al recuperar los datos necesarios, el El
motor de almacenamiento utiliza Dynamic bajo demanda Caché de datos de dimensión
en lugar de mantener a todos los miembros de dimensión mapeados estáticamente en
memoria. El motor de almacenamiento simplemente lleva a los Memoria como son
necesarios. Dlas estructuras de datos IMENSIÓN pueden residir en el disco, en la
memoria de servicios de análisis o en las ventanas Sistema operativo Archivo caché,
dependiendo de la carga de la memoria Sistema.
Como el nombre indica, el almacén de atributos de cota contiene toda la información
acerca de los atributos de cota. Los componentes del atributo Dimension La tienda se
muestra en la figura 2.

Figura 2 Almacén de atributos de dimensión


Como se muestra en el diagrama, el almacén de atributos de cota contiene los
siguientes componentes para cada atributo de la cota:
 Clave sMetas—El almacén de claves contiene los valores de miembro clave del
atributo, así como un identificador único interno denominado DataID. Analysis
Services asigna el DataID a cada miembro de atributo y utiliza el mismo DataID para
referirse a ese miembro en todas sus tiendas.
 Propiedad sMetas—El almacén de propiedades contiene una variedad de
propiedades de atributo, incluyendo nombres de miembros y traducciones. Estas
propiedades se asignan a DataIDs específicos. DataIDs están contiguamente
asignado a partir de Cero. Ptiendas roperty así como los almacenes de la relación
(los almacenes de la relación se discuten más detalladamente Más tarde) son
ordenados físicamente por DataID, con el fin de asegurar el acceso aleatorio rápido a
los contenidos, sin búsquedas adicionales de índice o tabla hash.
 Hash tAbles—Para facilitar las búsquedas de atributos durante la consulta y el
procesamiento, cada atributo tiene dos tablas hash que se crean durante el
procesamiento y que se conservan en el disco. La tabla hash clave indexa los
miembros por sus claves únicas. UN nombre tabla hash indexa los miembros por su
nombre.
Análisis de servicios 2005 guía de rendimiento 14

 Relación sMetas—El almacén de relaciones contiene las relaciones de un atributo


con otros atributos. Más específicamente, el almacén de relaciones almacena cada
registro de origen con referencias DataID a otros atributos. Considere el ejemplo
siguiente para una dimensión de producto. El producto es el atributo clave de la
dimensión con relaciones de atributo directa con el color y el tamaño. La instancia de
los datos del casco del deporte del producto, el color del negro, y el tamaño de
grande se pueden almacenar en el almacén de la relación como 1001, 25, 5 donde
1001 es el DataID para el casco del deporte, 25 es la identificación de datos para el
negro, Y 5 es el identificador de datos de Large. Tenga en cuenta que si un atributo
no tiene relaciones de atributo con otros atributos, Un El almacén de relaciones es
No creado para ese atributo en particular. Para obtener más información sobre las
relaciones de atributos, consulte Identificar atribucióne Relaciones En Esta
documentación.
 Bits indexes—Para localizar de manera eficiente los datos de los atributos en el
almacén de relaciones en tiempo de consulta, el motor de almacenamiento crea
índices de mapa de bits en tiempo de procesamiento. Para cada DataID de Un
atributo relacionado, el índice de mapa de bits indica si una página contiene al
menos un registro con ese DataID. Para los atributos con un número muy grande de
DataIDs, los índices de mapa de bits pueden tardar algún tiempo en procesarse. En
la mayoría de los escenarios, los índices de mapa de bits proporcionan beneficios de
consulta significativos; sin embargo, existe un escenario de diseño donde el beneficio
de consulta que proporciona el índice de mapa de bits no compensa el costo de
procesamiento de crear el índice de mapa de bits en primer lugar. Es posible eliminar
la creación de índices de mapa de bits para un atributo dado estableciendo el
AttributeHierarchyOptimizedState propiedad a No optimoZed. Para obtener
más información sobre este escenario de diseño, Ver Reducir sobrecarga de atributos
En este blanco Papel.
Además del almacén de atributos, el almacén de jerarquías organiza los atributos en
rutas de navegación para los usuarios finales como se muestra en la figura 3.
Análisis de servicios 2005 guía de rendimiento 15

Figura 3 Jerarquía sPuerta


El almacén de jerarquías consta de los siguientes componentes principales:
 Establecer tienda—El almacén de configuración utiliza DataIDs para construir la
ruta de cada miembro, asignada desde el primer nivel al nivel actual. Por ejemplo,
todo, bicicletas, bicicletas de montaña, Mountain Bike 500 puede ser representado
como 1, 2, 5, 6 donde 1 es el DataID para todos, 2 es el DataID para bicicletas, 5 es
el DataID para bicicletas de montaña, y 6 es el FechasD para Mountain Bike 500.
 Almacén de la estructura—Para cada miembro en un nivel, tEstructura SMetas
Contiene el DataID del padre, el DataID del primer hijo, y el Total NiñoLimpio
Contar. Se ordenan las entradas del almacén de estructuras Por Cada de los
miembros Índice de nivel. El índice de nivel de un miembro es la posición de un
miembro en el nivel especificado por la configuración de ordenación de la cota. Para
entender mejor la estructura SMetas, considere los siguientes Ejemplo. Si Bicicletas
contiene 3 niños, el entrada para bicicletas en la estructura SMetas Wld Ser 1, 5,3
donde 1 es el DataID para los padres de la bici, todos, 5 es el DataID para bicicletas
de montaña, y 3 es el número de De la bici Niños.
Tenga en cuenta que sólo las jerarquías naturales se materializan en el almacén de
jerarquía y se optimizan para la recuperación de datos. Antinatural las jerarquías no se
materializan en el disco. Para obtener más información sobre las mejores prácticas para
diseñar jerarquías, Ver Uso de jerarquías de manera efectiva.
Análisis de servicios 2005 guía de rendimiento 16

Datos Recuperación: medir datos de grupo


Para solicitudes de datos, el Motor de almacenamiento Recupera Grupo de medida datos
que se Físicamente almacenados en Particiones. Un Partición contiene dos Categorías De
Grupo de medida Datos: datos de hechos y agregaciones. Para adaptarse a una variedad
de arquitecturas de almacenamiento de datos, cada partición se puede Asignado un
modo de almacenamiento diferente Que Especifica Donde datos de hechos y
agregaciones se almacenan. Desde una perspectiva de rendimiento, el modo de
almacenamiento que proporciona el FAStest rendimiento de la consulta es el Modo de
almacenamiento en línea multidimensional de procesamiento analítico (MOLAP). En
MOLAP, la partición datos de hechos y las agregaciones son almacenado en un formato
multidimensional comprimido que los servicios de Analysis administra. Para la mayoría
de las implementaciones, modo de almacenamiento MOLAP debe ser utilizado; sin
embargo, si necesita más información sobre Otros modos de almacenamiento de
partición, Ver Apéndice B. Si está considerando una implementación "casi en tiempo
real", Ver Casi en tiempo real actualizaciones de datos En este blanco Papel.
En el almacenamiento MOLAP, el estructuras de datos Para datos de hechos y los datos
de agregación son idénticos. Cada uno se divide en segmentos. UN segmento contiene
un número fijo de registros (típicamente 64 KB) dividido en 256 páginas con
256 registros en cada uno. Cada registro almacena todas las medidas en el grupo de
medida de la partición y un conjunto de datos internosDs que se asignan a los atributos
de granularidad de cada dimensión. Sólo Registros que están presentes en la tabla de
hechos relacionales se almacenan en la partición, resultando en una alta compresión
Datos Archivos.
Para Eficientemente Cumplir solicitudes de datosLla Motor de almacenamiento Sigue un
optimizado proceso para satisfacer la solicitud Por usando tres mecanismos generales,
Caché del motor de almacenamiento, agregaciones y datos de hechos representado en
la figura 4:.
Análisis de servicios 2005 guía de rendimiento 17

Figura 4 Satisfactorio dAta requests


Figura 4 presenta una solicitud de datos para {(Europa, 2005), (Asia, 2005)}. Para cumplir
con esta solicitud, el engi de almacenamientoNE elige entre los siguientes enfoques:
1. Motor de almacenamiento cDolor—El motor de almacenamiento Primera intentos
de satisfacer la solicitud de datos mediante el motor de almacenamiento Caché. El
servicio de una solicitud de datos desde la caché del motor de almacenamiento
proporcionas el mejor rendimiento de la consulta. El motor de almacenamiento
Caché siempre reside en la memoria. Para obtener más información sobre cómo
administrar el motor de almacenamiento Caché, Ver Demandas de memoria durante
la consulta.
2. Agregaciones—Si los datos relevantes no se encuentran en la caché, el motor de
almacenamiento comprueba la agregación de datos precalculada. En algunos
escenarios, el la agregación puede ajustarse exactamente a la solicitud de datos. Por
ejemplo, un ajuste exacto se produce cuando la consulta solicita ventas por categoría
por año y hay una agregación Que resume las ventas por categoría por Yera.
Mientras que un ajuste exacto es ideal, el motor de almacenaje puede utilizar
también Datos Agregado en un nivel inferior, como las ventas agregadas por mes y
la categoría o ventas agregadas por trimestre y el artículo. El motor de
almacenamiento resume los valores sobre la marcha Para Producir ventas por
Análisis de servicios 2005 guía de rendimiento 18

categoría por Yera. Para obtener más información sobre cómo diseñar agregaciones
para mejorar el rendimiento, Ver Maximizar el valor de las agregaciones.
3. Datos de hechos—Si Apropiado Agregaciones No Existen Para un determinado
Consulta, el motor de almacenamiento debe recuperar el datos de hechos de la
partición. El motor de almacenamiento utiliza muchas optimizaciones internas a
efectivamente recuperar datos del disco Incluyendo indexación mejorada y
agrupamiento de Relacionadas con RecorDs. Tanto en las agregaciones como en los
datos de hechos, las diferentes porciones de datos pueden residir en el disco o en las
ventanas Sistema operativo Archivo caché, dependiendo de la carga de memoria del
sistema.
UNA técnica clave de afinación del rendimiento para optimizar la recuperación de datos
es reducir la cantidad de datos que el motor de almacenamiento necesita escanear
mediante Múltiples particiones que dividir físicamente sus datos de grupo de medida en
distintos segmentos de datos. Uso de múltiples partitions no sólo puede mejorar
Consulta Velocidad Pero Que Cna También Proporcionar mayor escalabilidad, Facilitar
gestión de datos, Y Optimizar procesamiento de rendimiento.
Desde un Consulta Perspectiva el motor de almacenamiento puede predeterminar los
datos almacenados en cada Molap partición y optimizar que Molap particiones que
escanea en paralelo. En tél ejemplo en figurae 4, una partición con 2005 los datos se
muestran en azul y una partición con 2006 datos se muestra en color naranja. THge
Datos Petición se muestra en el diagrama {(Europa, 2005), (Asia, 2005)} Sólo Requiere
2005 Datos. En consecuencia, el motor de almacenamiento sólo necesita ir al
2005 Partición. Para maximizar la consulta rendimiento, el motor de almacenamiento
utiliza Paralelismo, como escanear particiones paralelas, siempre que sea posible. Para
localizar datos en una partición, el motor de almacenamiento consulta segmentos en
paralelo y utiliza índices de mapa de bits para escanear páginas de manera eficiente
para encontrar los datos deseados.
Las particiones son un componente importante de altarealizando cubos. Para más
información sobre los beneficios más amplios de las particiones, Ver los siguientes
Seccións en este libro blanco:
 Para más información sobre Cómo son los índices de mapa de bits creados y utilizado
en Particiones, Ver Trabajos de procesamiento de particiones.
 Para averiguar información más detallada Acerca de las ventajas de la consulta de
particionamiento, Ver Uso de particiones para mejorar el rendimiento de las
consultas.
 Para aprender más sobre los beneficios de procesamiento de usando particiones, Ver
Uso de particiones para mejorar el rendimiento de procesamiento.
Análisis de servicios 2005 guía de rendimiento 19

Optimizar Lla diseño de dimensiones


UN diseño de dimensión bien afinado es uno de los factores de éxito más críticos de una
solución de servicios de análisis de alto rendimiento. Lla Dos técnicas más importantes
que usted puede Uso Para Optimizar diseño de su dimensión para el rendimiento de la
consulta Son:
 Identificar relaciones de atributos
 Ucante las jerarquías Eficazmente

Identificar relaciones de atributos


Un Típico Datos la fuente de una dimensión de servicios de análisis es una tabla de
dimensiones del almacén de datos relacional. En almacenes de datos relacionales, Cada
Dimensión Mesa Típicamente Contiene una clave principal, Atributos, Y en algunos
casos, relaciones de clave externa con otras tablas.
Mesa 1 Columna pRoperties de un sImplementación Producto dIMENSIÓN
tCapaz
Dimensión tCapaz column Columna tYpe Relación con primary Relación con oallí
kEy columns

Clave del producto Clave principal Clave principal ---

SKU del producto Atributo 1:1 ---

Descripción Atributo 1:1 ---

Color Atributo Muchos: 1 ---

Tamaño Atributo Muchos: 1 Muchos: 1 a Size Range

Size Range Atributo Muchos: 1

Subcategoría Atributo Muchos: 1 Muchos: 1 a categoría

Categoría Atributo Muchos: 1

Cuadro 1 muestra el diseño de una tabla de dimensiones de producto simple. En Este


ejemplo simple, Lla dimensión del producto la tabla tiene una clave principal Columna, la
clave del producto. El otro Columnas en la tabla de cotas Son Atributos Que Proporcionar
Descriptivo Contexto a la clave principal como SKU de producto, Descripción y color.
Desde una perspectiva relacional, de estos Atributos eITHER tiene un mAny-to-una
relación a la clave principal O Un relación uno a uno a la clave principal. Algunos de
losse Atributos también tienen relaciones con otros Atributos. Por ejemplo, Tamaño tiene
una relación de muchos a uno con el rango de tamaño y la subcategoría tiene una
relación de muchos a uno con Categoría.
Así como es necesario entender y definir Lla dependencias funcionales entre campos de
bases de datos relacionales, usted debe también siguen las mismas prácticas En
Servicios de análisis. Servicios de análisis debe entender las relaciones entre sus
atributos en orden para agregar datos correctamente, efectivamente Tienda y recuperar
datos, y crear agregaciones útiles. Para ayudarle a Crear Estos asociaciones entre su
dimensión Atributos, Servicios de análisis proporciona una característica llamada
Análisis de servicios 2005 guía de rendimiento 20

relaciones de atributos. Como el nombre indica, unn relación de atributos Describe la


relatoionship entre dos atributos.
Cuando se Inicialmente crear una cota, Servicios de análisis AutosConstruye una
estructura de dimensión Con relaciones de atributo de muchos a uno entre el atributo de
clave principal y Cada Otros atributo Dimension como se muestra en la figura 5.

Figura 5 Predeterminado attribute relationships


Lla flechas en Figura 5 representan la Atributo Relacións entre la clave del producto y los
otros atributos de la dimensión. Mientras que la dimensión Estructura Presentó En
Figura 5 Proporciona Un Válido representación de THe datos del Producto tabla de
dimensiones, desde una perspectiva de rendimiento, no es una estructura de dimensión
optimizada Dado que Analysis Services no es consciente de las relaciones Entre los
atributos.
Con este diseño, wélnunca se emite una consulta que incluye un atributo de esta
dimensión, los datos se Siempre resumido de la clave principal Y Entonces agrupados
por el atributo. Así que si desea resumir las ventas por subcategoría, las claves de
producto individuales se agrupan en la mosca por subcategoría. Si su consulta requiere
las ventas por categoría, las claves de producto individuales Otra vez agrupados sobre la
marcha por categoría. Esto es algo ineficiente puesto que los totales de la categoría
podrían ser derived de Totales de subcategoría. Además con este diseño, Analysis
Services no sabe qué combinaciones de atributos Naturalmente existen en la dimensión
y debe utilizar los datos de hecho para Identificar Significativo Miembro Combinaciones.
Por ejemplo, en el momento de la consulta, si un usuario solicita datos por subcategoría
y categoría, Analysis Services debe realizar trabajos adicionales Para determinar que la
combinación de Subcategoría: bicicletas de montaña y categoría: accesorios no existe.
Para optimizar este diseño de dimensión, debe Entender Cómo se relacionan los
atributos entre sí y luego tomar medidas para Dejar Servicio de análisiss Sabe Cuáles
son las relaciones.
Para mejorar la Producto Dimensión, la estructura en la figura 6 presenta unaN diseño
optimizado que más eficaz Representa Lla relaciones en el Dimensión.
Análisis de servicios 2005 guía de rendimiento 21

Figura 6 Producto dIMENSIÓN Con optimized attribute relationships


Tenga en cuenta que el diseño de la dimensión en la figura 6 es diferente de la diseño
en Figura 5. En Figura 5Lla clave principal Hsa relaciones de atributos Para Cada dos
Atributo en la dimensión. En Figura 6, Dos nuevo atributo las relaciones se han añadido
entre el tamaño y Size Range y subcategoría y categoría.
Lla Nuevo Relaciones entre el tamaño y Size Range y subcategoría y categoría reflejan
las relaciones de muchos a uno Entre los atributos de la cota. Subcategory tiene una
relación de muchos a uno con la categoría. Tamaño tiene un muchos a uno Relación
Para Size Range. Estos Nuevo Relaciones Teléfonol servicios de análisis cómo la no
primaria atributos clave (Tamaño y Size Rangey subcategoría y categoría) están
relacionados entre sí.
Típicamente relaciones de muchos a uno Seguir Datos Jerarquías Como Lla jerarquía de
Productos Subcategorías, y categorías representado en la figura 6. Mientras Un Datos
hierarchy Cna Comúnmente Sugerir relaciones de muchos a uno, De no asuma
automáticamente que este es siempre el caso. Wélnunca agregar una relación de
atributo entre dos atributos, es importante Primera Compruebe que los datos de atributo
se adhieren estrictamente a una relación de varios a uno. Como regla general, debe
crear una relación de atributo del atributo A para atribuir B si y sólo si el número de
pares distintos (a, b) de A y B es el mismo (o menor) que el número de miembros
distintos de A. Si se crea una Atributo Relación y la Datos Viola Lla relación de muchos a
uno, ya se recibir resultados de datos incorrectos.
Considere el siguiente ejemplo. Tiene una dimensión de tiempo con un atributo de mes
que contiene valores como enero, febrero, marzo y un atributo Year que contiene
valores como 2004, 2005 y 2006. Si define una relación de atributo entre los atributos
mes y año, cuando el la dimensión se procesa, Análisis Servicios no No Sabe Cómo
distinguir entre los meses para cada año. Por ejemplo, cuando se encuentra con el
miembro de enero, que no ¿qué año debe enrollarlo hasta. Lla la única manera de
asegurar que los datos se enrollen correctamente de mes a cambiar la definición del
atributo month a mes y año. Que Hacer Este cambio de definición cambiando el
KeyColumns Propiedad Dela atributo de ser una combinación de mes y año.
Lla KeyColumns la propiedad consiste en una columna de origen o una combinación de
columnas de origen (conocidas como Colección) que identifica de forma única los
miembros de un atributo dado. Una vez que defina las relaciones de atributos entre sus
atributos, la importancia de la KeyColumns la propiedad está resaltada. Para cada
atributo de su dimensión, debe asegurarse de que Lla KeyColumns Propiedad de cada
atributo únicamente IDEntifies cada miembro de atributo. Si el KeyColumns la
Análisis de servicios 2005 guía de rendimiento 22

propiedad no identifica de forma exclusiva a cada miembro, los duplicados encontrados


durante el procesamiento se omiten de forma predeterminada, lo que resulta en
resúmenes de datos incorrectos.
Tenga en cuenta quef la relación de atributo tiene un valor predeterminado Tipo de
servicios de análisis flexibles no proporciona ninguna notificación de que ha encontrado
meses duplicados y Incorrectamente asigna todos los meses al primer año o al año
pasado dependiendo de la técnica de actualización de datos. Para obtener más
información sobre el Tipo propiedad y el impacto de la técnica de actualización de datos
en el manejo duplicado clave, Ver Optimización de insertos, actualizaciones y
eliminaciones de cotas En este blanco Papel.
Independientemente de Su técnica de actualización de datos, los duplicados de claves
suelen dar lugar a acumulaciones de datos incorrectas y deben evitarse Por tomarse el
tiempo para establecer un único KeyColumns Propiedad. Una vez que haya configurado
correctamente el KeyColumns propiedad para definir de forma exclusiva un atributo, es
una buena práctica cambiar la configuración de error predeterminada de la cota para
que ya no ignorars Duplicados. Para De Esto, establezca el KeyDuplicate propiedad de
IgnoreError Para ReportAndContinue O ReportAndStop. Con este cambio, se le
puede alertar de cualquier situación en la que se detecten los duplicados.
Siempre que defina un nuevo atributo rela, es fundamental que elimine las relaciones
redundantes para el rendimiento y la corrección de datos. En la figura 6, con las nuevas
relaciones de atributos, la clave del producto ya no requiere Directa relaciones con Size
Range o categoría. Como tal, Estos dos atributos relationships han sido eliminados. Para
ayudarle a identificar relaciones de atributos redundantes, Business Intelligence
Development Studio proporcionas una advertencia visual para alertarle sobre la
redundancia; sin embargo, no requiere que usted elimine la redundancia. Es una
práctica recomendada eliminar siempre manualmente la relación redundante. Una vez
eliminada la redundancia, la advertencia desaparece.
Aunque la clave del producto ya no está directamente relacionada Para Size Range y la
categoría, se Es Todavía Indirectamente Relacionadas con Para Estos atributos a través
de una cadena de relaciones de atributos. Más específicamente, La clave del producto
está relacionada con Size Range utilizar la cadena de relaciones de atributos que
vinculan la clave del producto con el tamaño y el tamaño al rango de tamaño. Esta
cadena de relaciones de atributos también se llama relaciones de atributos en cascada.
Con las relaciones de atributos en cascada, Analysis Services puede tomar mejores
decisiones de performance sobre diseño de agregación, almacenamiento de datos,
recuperación de datos y cálculos MDX. Más allá de las consideraciones de rendimiento,
las relaciones de atributos también se utilizan para aplicar la seguridad de cota y para
unir datos de grupo de medida a atributos de granularidad de clave no primaria. Por
ejemplo, si tiene un grupo de medida que contiene datos de ventas por clave de
producto y datos de pronóstico por subcategoría, el grupo de medida de pronóstico sólo
sabrá cómo enrollar datos de subcategoría a categoría si existen relaciones de atributos
entre Subcategoría y Categoría.
El principio básico detrás del diseño de relaciones de atributos eficaces es crear el
modelo de dimensión más eficiente que mejor representa la semántica de su negocio.
Mientras Esta sección Proporcionars directrices y mejores prácticas para optimizar el
diseño de su dimensión, para tener éxito, debe Ser Extremadamente familiarizado con
sus datos y los requisitos del negocio que los datos deben apoyar antes de considerar
cómo afinar su diseño.
Análisis de servicios 2005 guía de rendimiento 23

Considere el siguiente ejemplo. Tiene una dimensión de tiempo con un atributo llamado
Día de la semana. Este atributo contiene Siete miembros, uno por cada dAy de la wEek,
Donde el miembro del lunes representa todos los lunes en su dimensión de tiempo.
Dado lo que aprendiste del ejemplo de mes/año, Usted puede pensar que usted debe
inmediatamente cambiar el KeyColumns propiedad de este atributo para concatenar el
día con el calendario fecha o algún otro atributo. Sin embargo, antes Hacer Este cambio,
usted debe Considerar sus requerimientos de negocio. Lla día-de-la agrupación de la
semana puede ser vaLeerCapaz En algunos análisis Escenarios Como AnalyZing patrones
de ventas minoristas para el día de la semana. Sin embargo, en otras aplicaciones, el
día de la semana Puede Sólo Ser interesante si se concatena con la fecha real del
calendario. En otras palabras, el Mejor el diseño depende de su escenario de análisis. Así
que wEngañar es importante a seguir mejores prácticas para modificar las propiedades
de cota y crear relaciones de atributos eficientesCaderas, en última instancia, debe
Asegúrese de que su Propio requisitos del negocio están satisfechos. Para más ideas
sobre diversos diseños de la dimensión para una dimensión del tiempo, Ver el blog
Tiempo calcorugaiOns en UDM: período paralelo.

Ucante las jerarquías Eficazmente


En los servicios de análisis, los atributos pueden ser expuestos a los usuarios Por Usando
dos tipos de jerarquías: Atributo jerarquías y Usuario hierarCatudio. Cada uno de estos
hierarchies tiene un impacto diferente en el consulta el rendimiento de tu cubo.
Las jerarquías de atributos son Lla Predeterminado jerarquías creadas para cada atributo
de cota para apoyar el análisis flexible. Para jerarquías que no son padre-hijo, cada la
jerarquía de atributos consta de dos niveles: el atributo en sí y el nivel todo. El todo
Nivel se expone automáticamente como el atributo de nivel superior de cada jerarquía
de atributos.
Tenga en cuenta que puede deshabilitar el atributo todo para una jerarquía de atributos
determinada Por utilizando el IsAggregatable Propiedad. La desActivación del atributo
All no se recomienda generalmente en la mayoría de los escenarios de diseño. Sin el
todo Atributo, las consultas siempre deben recortar un valor específico de la jerarquía de
atributos. Mientras que usted puede controlar explícitamente la rebanada Por utilizando
el Miembro predeterminado propiedad, tenga en cuenta que esta división se aplica a
todas las consultas independientemente de si la consulta hace referencia
específicamente a la jerarquía de atributos. Con esto en mente, nunca es una buena
idea deshabilitar el atributo All para varias jerarquías de atributos en la misma
dimensión.
Desde una perspectiva de rendimiento, unttributes que son sólo expuesto en jerarquías
de atributos no son automáticamente considerado para la agregación. Esto significa que
nLla las agregaciones incluyen estos atributos. Queries la participación de estos atributos
Son satisfechos resumiendo los datos desde la clave principal. Sin el beneficio de las
agregaciones, el rendimiento de las consultas contra estos atributos, las jerarquías
pueden ser Algo Lento.
Para mejorar el rendimiento, es posible marcar un atributo como candidato de
agregación por utilizando el Uso de agregación Propiedad. Para más Detallada
información sobre este Técnica, Ver Sugerir candidatos de agregación En este blanco
Papel. Sin embargo, antes que Modificar Lla Uso de agregación propiedad, debe
considerar Si usted puede tomar ventaja de jerarquías de usuarios.
Análisis de servicios 2005 guía de rendimiento 24

En Usuario jerarquías, los atributos se organizan en Predefinidos Multinivel Navegación


Árboles Para facilitar el análisis del usuario final. Servicios de análisis le permite
construir dos tipos de Usuario Jerarquías: Natural Y uNnatural Jerarquías, cada uno con
diferentes características de diseño y rendimiento.
 En un Natural Jerarquía, Todos Atributos Participar como niveles en el Jerarquía
tienen directa o indirecto relación de atributoss De Lla Parte inferior de la jerarquía
Para Lla Arriba de la jerarquía. En la mayoría de los escenarios, jerarquías naturales
Siga las cadena de relaciones de muchos a uno que "naturalmente" existen en sus
datos. En el producto Dimensión Ejemplo discutido anteriormente en la figura 6,
puede Decidir para crear Un Agrupación de productos jerarquía que de abajo hacia
arriba consiste en Productos, Subcategorías de productosY Categorías de productos.
En este escenario, desde la parte inferior de la jerarquía hasta la parte superior de la
jerarquíaCada Atributo Es directamente relacionado con el atributo en el Próxima
nivel de la jerarquía. En un escenario de diseño alternativo, es posible que tenga una
jerarquía natural Que de abajo hacia arriba consiste en Productos y Categorías de
productos. A pesar de que las subcategorías de productos se han eliminado, esto
sigue siendo una jerarquía natural puesto que los productos se relacionan
indirectamente con categoría de producto a través de relaciones de atributos en
cascada.
 En un UnNatural Jerarquía la jerarquía consta de al menos dos niveles consecutivos
que no tienen relación de atributoss. Normalmente, estas jerarquías se utilizan para
crear rutas de desglose De comúnmente visto Atributos Que no siga ninguna
jerarquía natural. Para Ejemplo los usuarios pueden querer para ver una jerarquía de
Size Range Y Categoría o viceversa.
FROM una perspectiva de rendimiento, Natural las jerarquías se comportan muy
diferente UnNatural Jerarquías. En Natural jerarquías, el Jerarquía Árbol Es materializado
en disco en almacenes de jerarquía. Además, todos atributos que participan en Natural
Jerarquías Son Automáticamente considerado ser candidatos de agregación. Este es un
muy importante características de las jerarquías naturales, lo suficientemente
importante como para Considerar creación de jerarquías naturales siempre que sea
posible. Para obtener más información sobre unggregation candidates, Ver Sugerir
candidatos de agregación.
Antinatural Jerarquías no se materializan en el disco y los atributos que participan en
uNnatural Jerarquías no son Automáticamente Considera Como Agregación Candidatos.
Más bien, simplemente Proporcionar usuarios con fácil de usar taladrorutas de abajo
para los atributos comúnmente vistos que no tienen relaciones naturales. Por
assembLing estos atributos en jerarquías, que también puede utilizar una variedad de
Mdx Navegación Funciones para realizar fácilmente el cálculos como porcentaje de
padres. Un alternativa al uso UnNatural Jerarquías Es Para Cruz-join los datos Por uso
de MDX en el momento de la consulta. El desempeño de la UnNatural Jerarquías vs. las
cruces en el momento de la consulta son relativamente similares. Antinatural Jerarquías
simplemente proporcione el añadido BenEFIT de reusabilidad y central Gestión.
Para tomar ventaja de Natural jerarquías, debe asegurarse que ha configurado
correctamente relaciones de atributos en cascada para todos los atributos que participan
en la jerarquía. Dado que crear relaciones de atributos y crear jerarquías son dos
Separado las operaciones, no es raro perder inadvertidamente una relación de atributo
en Algunos punto en la jerarquía. Si falta una relación, Servicios de análisis clasifica la
Análisis de servicios 2005 guía de rendimiento 25

jerarquía Como an UnNatural Jerarquía, incluso si usted desea que sea un Natural
Jerarquía.
Para comprobar el tipo de jerarquía que ha creado, Business Intelligence Development
Studio emite una advertencia Icono siempre que cree una jerarquía de usuario que
falte uno o más relaciones de atributos. Lla propósito de la Advertencia Icono es que
Ayuda Identificar Situaciones donde se han previsto para crear un Natural Jerarquía pero
han omitido inadvertidamente las relaciones de atributos. Una vez que se crean las
relaciones de atributos apropiadas para la jerarquía en cuestión, la advertencia Icono
Desaparecers. Si Tú Intencionalmente Crear un antinatural jerarquía, la continuar
jerarquías para mostrar la advertencia Icono para indicar las relaciones que faltan. En
este Caso, simplemente ignore el icono de advertencia.
Además, si bien este no es un problema de rendimiento, ser consciente de cómo sus
jerarquías de atributos, jerarquías naturales, y UnNatural las jerarquías se muestran a
los usuarios finales de la herramienta front-end. Por ejemplo, si usted tiene una serie de
geografía atributos que generalmente se consultan Por usando un Natural Jerarquía del
CondeRy/region, estado/provincia, Y Ciudad, Usted puede considerar ocultar Lla
Individuales jerarquías de atributos para cada uno de estos atributos con el fin de
Prevenir Redundancia En la experiencia del usuario. Para ocultar las jerarquías de
atributos, Uso Lla AttributeHierarchyVisible Propiedad.
Análisis de servicios 2005 guía de rendimiento 26

Maximizar Lla Valor De Agregaciones


Una agregación es un Resumen precalculado de datos que los servicios de análisis
utilizan para mejorar el rendimiento de las consultas. Más específicamente, un
Agregación Resume Medidas Por una combinación de Dimensión Atributos.
Diseño Agregaciones Es el proceso de SeleccioneIng el más eficaz Agregaciones para su
consulta de la carga de trabajo. Como usted diseña agregaciones, usted debe considerar
la querying beneficios que Agregacións Proporcionar en comparación con el tiempo que
se tarda en Crear y actualizar la agregacións. En promedio, tener más agregaciones
Ayuda rendimiento de la consulta pero aumenta la tiempo de procesamiento involucrado
con Edificio Agregaciones.
Mientras que unggregations Son Físicamente Diseñado Para Grupo de medida
ParticiónLla Optimización Técnicas para maximizar el diseño de agregación Aplicar Si
tiene una o varias particiones. En Este Sección, a menos que se indique lo contrario, las
agregaciones se discuten Fundamental contexto de Un cubo con un solo grupo de
medida y una sola partición. Para obtener más información sobre cómo puede mejorar el
rendimiento de las consultas mediante múltiples particiones, Ver Uso de particiones para
mejorar el rendimiento de las consultas.

Cómo ayuda de agregaciones


Mientras que los datos de pre-agregación para mejorar el rendimiento de las consultas
suena razonable, ¿Cómo ayudan realmente las agregaciones a los servicios de análisis a
satisfacer las consultas de manera más eficiente? La respuesta es simple. Las
agregaciones reducen el número de registra que el motor de almacenamiento necesita
escanear desde el disco para satisfacer una consulta. Para obtener cierta perspectiva
sobre cómo Esto funciona, Primera Considerar Cómo el motor de almacenamiento
Satisface Un Consulta Contra Un cubo sin agregaciones.
Mientras que usted puede pensar Que el número de las medidas y los registros de la
tabla de hechos son los factores más importantes en agregación de datosDimensions
Realmente Jugar Lla más crítico papel en agregación de datos, determinar cómo se
resumen los datos en las consultas de usuario. Para ayudarle a visuAlize esto, figura 7
muestra tres dimensiones de un Simple cubo de ventas.

Figura 7 Prodproducto, cliente y Fecha de pedido dimensions


Cada dimensión tiene Cuatro Atributos. En el grano de la Cubo, allí son 200 Individuales
productos, 5,000 Individuales clientes y 1,095 fechas de pedido. THge Máximo Potencial
número de valores detallados en este Cubo es el producto cartesiano de estos números:
200 * 5000 * 1095 O 109,5 millones Teórico Combinaciones. Este Teórico el valor sólo
es posible si cada cliente Compra cada Prodtodos los días de Cada Yera, que es
improbable. En realidad, Lla distribución de datos Es Probable un par de órdenes de
Análisis de servicios 2005 guía de rendimiento 27

magnitud Inferior que el teórico Valor. Para Este escenario, asumir que Lla Ejemplo cubo
tiene 1.095.000 combinaciones en el grano, un factor de 100 inferior a la teórica Valor.
Consulta del cubo en el grano Es UnComún, Dado que tales un conjunto de resultados
grande (1.095.000 Células) Es Probablemente no es útil para usuarios finales. Para
cualquier consulta que no sea unt el cubo Grano, el motor de almacenamiento Debe
Realizar Un Resumen sobre la marcha de las células detalladas por el Otros atributos de
dimensiónQue Cna ser costoso para consultar el rendimiento. Para optimizar esta
SummarIzación, Servicios de análisis Usos Agregaciones para precalcular y almacenar
resúmenes de datos durante el procesamiento del cubo. Con las agregaciones fácilmente
disponibles en el momento de la consulta, rendimiento de la consulta puede ser
mejorado grandemente.
Continuando con el mismo ejemplo de cubo, Si el cubo contiene an agregación De
Ventas Por Lla Mes Y Producto SubCategoría Atributos, una consulta que requierens
ventas por Mes Por pRoduct SubCategoría puede ser Directamente satisfechos por Lla
Agregación Sin Va a los Hecho Datos. Lla Máximo número de celdas de esta agregación
es 720 (20 Producto SubCategoría miembros * 36 meses, excluyendo la Todos Atributo).
Mientras que las células numéricas reales en Lla la agregación es Otra vez Dependiente
en la distribución de datos, Lla Máximo número de celdas, 720, es considerablemente
más eficientes Que Resumiendo los valores de 1.095.000 Células.
Además, el beneficio de la agregación Se aplica más allá de los consultas que coinciden
directamente con la agregación. Siempre que una consulta se emite la solicitudLla Motor
de almacenamiento intentos de utilizar cualquier agregación que puede ayudar a
satisfacer la solicitud de consulta, Incluyendo Agregaciones que están en un nivel más
fino de detalle. Para estas consultas, el motor de almacenamiento simplemente resume
las celdas de la agregación para producir el conjunto de resultados deseado. Por
ejemplo, Si usted solicita Ventas datos resumidos por mes y categoría de producto, Lla
El motor de almacenaje puede Rápidamente resumir las celdas en Lla mes y Producto
SubCategoría agregación a Satisfacer tél consulta, en lugar de volver a resumir los datos
de la nivel de detalle más bajo. Para realizar este beneficio, sin embargo, requiere que
usted have diseño adecuado de sus dimensiones con relaciones de atributoshIPS y
jerarquías naturales para Que Analysis Services entiende cómo los atributos están
relacionados entre sí. Para más información sobre diseño de dimensiones, Ver
Optimización del diseño de cotas.

Cómo el motor de almacenamiento utiliza


agregaciones
Para obtener información sobre cómo el motor de almacenamiento utiliza agregaciones,
puede utilizar SQL Generador de perfiles de servidor para ver cómo y cuándo se
Utilizado para satisfacer las consultas. Dentro de SQL Servidor Profiler, hay varios
eventos que describen cómo se cumple una consulta. El evento que específicamente se
refiere a los hits de agregación es el Obtener datos de la agregación Evento.
FiguraHoras 8 muestra una consulta de ejemplo y un conjunto de resultados Un Ejemplo
Cubo.
Análisis de servicios 2005 guía de rendimiento 28

Figura 8 Muestra query Y rresultado sY


Para Lla Consulta se muestra en la figura 8, Puedes Uso Sql Servidor Analizador para
comparar Cómo se resuelve la consulta en Lla siguientes dos escenarios:
 Escenario 1—Consulta con un cubo donde una agregación satisface la consulta
Petición.
 Escenario 2—Consulta con un cubo Donde sin agregación satisface la solicitud de
consulta.

Figura 9 Escenario 1: SQL Server Profiler tCarrera Para cUbe Con Un


aggregation Golpeó
Figura 9 muestra un Sql Servidor Traza del generador de perfiles de la resolución de la
consulta contra un cubo con agregaciones. En Sql Servidor Traza del generador de
perfiles, puede ver las operaciones que realiza el motor de almacenamiento para
producir el conjunto de resultados.
Para satisfacer la consulta, se realizan las siguientes operaciones:
1. Una vez enviada la consulta, el motor de almacenamiento obtiene datos de la
agregación C 0000, 0001, 0000 según lo indicado por el Obtener datos de la
agregación Evento.
Agregación C es el nombre de la agregación. Servicios de análisis asigna la
agregación Con Un nombre único en hexadecimal Formato. Tenga en cuenta que
unggregations que se han migrado desde versiones anteriores de Analysis Services
Uso una Convención de nomenclatura diferente.
2. Además del nombre de agregación, la agregación C Figura 9 Muestra un vector, 000
0001 0000 , que describe la Contenido De Lla Agregación. Más información sobre lo
que este vector Realmente Significa Es descritas en Cómo interpretar las
agregaciones.
Análisis de servicios 2005 guía de rendimiento 29

3. Lla Agregación Datos Es Cargado En el motor de almacenamiento caché de grupo de


medida.
4. Una vez en la caché de grupo de medida, el Motor de ejecución de consultas
Recupera los datos de la caché y devuelve el resultado se establece en el cliente.

Figura 10 Escenario 2: SQL Server Profiler Rastro Para Cubo Con sin
agregación Golpeó
Figura 10 muestra un Sql Servidor Profiler trazar para la misma consulta contra el
mismo cubo pero esta vez, el cubo no tiene agregaciones Que Cna satisfacer la solicitud
de consulta.
Para satisfacer la consulta, se realizan las siguientes operaciones:
1. Una vez enviada la consulta, en lugar de recuperar datos de una agregación, el
motor de almacenamiento va a tdetalla los datos en la partición.
2. Desde este punto, el proceso es el mismo. Lla Datos está cargada En la caché de
grupo de medida del motor de almacenamiento.
3. Una vez en la caché de grupo de medida, el Motor de ejecución de consultas
Recupera los datos de la caché y devuelve el conjunto de resultados al cliente.
Para resumir Estos dos escenarios, Cuando Sql Servidor Profiler Muestra Obtener datos
de la agregación, Este indicates una agregación golpeó. Con una agregación golpeada,
Lla Motor de almacenamiento puede recuperar parte o toda la respuesta de datos de la
agregación y no no es necesario ir a la Datos Detalle. Que no sean tiempos de respuesta
rápidos,ggregation Hits Son una primaria indicación de un Jugocessful diseño de
agregación.
Para ayudarle a lograr una diseño efectivo de la agregación, Analysis Services
proporciona Herramientas y técnicas Para Ayuda se crean agregaciones para su carga de
trabajo de consultas. Para más información sobre estas herramientas y técnicas, Ver
Qué agregaciones se construyen En Este libro blanco. Una vez que haya creado y
desplegado sus agregaciones, Sql Servidor Profiler proporciona excelente perspicacia
para ayudarle Monitor aggregation uSabio durante el ciclo de duración de la aplicación.

Porqué no crear todas las agregaciones posibles?


Dado que las agregaciones pueden mejorar significativamente el rendimiento de las
consultas, Usted puede pregunto por qué No crear todas las agregaciones posibles?
Antes de contestar esta pregunta, Primero consideremos lo que es crear cada posible
agregación en realidad significa en términos teóricos.
Tenga en cuenta que el objetivo de este discusión teórica Es para ayudarle a entender
Cómo Agregacións Trabajo En Un atributoBasado Arquitectura. No está destinado a ser
Un discusión de cómo Analysis Services Realmente determina qué agregaciones se
Análisis de servicios 2005 guía de rendimiento 30

construyen. Para más información sobre este temaVer Qué agregaciones se construyen
En Este libro blanco.
En términos generales, un la agregación resume las medidas mediante una combinación
de atributoss. FROM una perspectiva de agregación, Para Cada Atributo, hay dos niveles
de detalle: Lla Atributo Sí mismo y el atributo All. Figura 11 DisplaYS los niveles de
detalle Para cada atributo en la dimensión del producto.

Figura 11 Atributo Niveles para la pRoduct Dimensión


Con Cuatro Atributos Y Dos Niveles de detalle (Todos y Atributo), la combinación posible
total para la dimensión del producto es 2 * 2 * 2 * 2 o 2 ^ 4 = 16 Vectores o
potenciales agregaciones.
Análisis de servicios 2005 guía de rendimiento 31

Figura 12 3 dimensions Con 4 attributes Para dIMENSIÓN


Si solicita esta lógica en todos los atributos se muestra en la figura 12, el número total
de posibles agregaciones puede representarse de la siguiente manera:
Número total De Agregaciones
2 (producto clave * 2 (color) *2 (subcategoría de producto) * 2 (categoría
de producto) *
2 (clave del cliente) * 2 (género) * 2 (ciudad) * 2 (estado/provincia) *
2 (llave de la fecha de la orden) * 2 (mes) * 2 (trimestre) * 2 (año)
= 2 ^ 12
= 4096
Basándonos en este ejemplo, Lla las agregaciones potenciales totales de cualquier cubo
se pueden expresar como 2 ^ (número total de atributos). Mientras que un cubo con
doce Atributos Produce 4,096 Teórico AgregacionesUn cubo de gran escala puede tener
cientos de atributos y consecuentemente an aumento exponencial en el número de
agregaciones. UN cubo con 100 Atributos, por ejemplo, habría 1,26765 y + 30 Teórico
¡Agregaciones!
Las buenas noticias Es Que Esto es sólo una discusión teórica. Servicios de análisis sólo
considera un pequeño porcentaje de Llase agregaciones teóricasY Eventualmente Crea
una aún más pequeña Subconjunto de agregaciones. Como norma general, una
Servicios de análisis diseño de agregación Típicamente Contiene decenas o centenas de
agregaciones, no miles.
Con eso en mente, la discusión teórica nos recuerda Que a medida que agrega atributos
adicionales al cubo, potencialmente aumentará el Número de agregacións que los
servicios de análisis deben considerar. Además, slas agregaciones de la hora se crean en
el momento del procesamiento del cubo, demasiadas agregaciones Cna Negativamente
rendimiento de procesamiento de impacto o requerir un espacio de disco excesivo para
almacenar. Como resultado, asegurar que Su Agregación el diseño apoya el Obligatorio
actualización de datos Línea.

Cómo interpretar agregaciones


Cuando Analysis Services crea un agregación, cada dimensión es nombrada por un
vector, indicando si el atributo Puntos al atributo o a los Todo el nivel. El nivel de
atributo está representado por 1 y el nivel all está representado por 0. Por ejemplo,
tenga en cuenta los siguientes ejemplos de vectores de agregación para la dimensión del
producto:
 Agregación por atributo ProductKey = [Clave del producto]: 1 [color]: 0
[Subcategoría]: 0 [Category]: 0 o 1000
Análisis de servicios 2005 guía de rendimiento 32

 Atributo de agregación por categoría = [Clave del producto]: 0 [Color]: 0


[Subcategoría]: 0 [Category]: 1 o 0001
 Agregación por ProductKey. Todos Y Color. All Y Subcategoría. todos Y
Category. All = [Clave del producto]: 0 [Color]: 0 [Subcategoría]: 0
[Category]: 0 o 0000
Para identificar cada agregación, Analysis Services combina los vectores de cota en una
ruta vectorial larga, También Llamado Un Subcubo, con cada vector de dimensión
separado por comas.
El orden de las cotas en el vector se determina por el orden de las cotas en el cubo. Para
encontrar tel orden de las dimensiones en el cuboUso una de las dos técnicas siguientes.
Con el cubo abierto en SQL Estudio de desarrollo de Business Intelligence de servidor,
puede revisar el orden de las cotas en un cubo en el Estructura del cubo Ficha. Tel
orden de las cotas en el cubo se muestra en el panel dimensiones, tanto en el
Jerarquías TAB y el Atributos Ficha. Como alternativa, puede revisar el orden de las
cotas enumeradas en el archivo XML del cubo.
El orden de los atributos en el vector para cada dimensión está determinado por el orden
de los atributos de la cota. Puede identificar el orden de los atributos en cada dimensión
revisando el archivo XML de dimensión.
Por ejemplo, la siguiente definición de subcubo (0000, 0001, 0001) describe una
agregación para:
Producto – todo, todo, todos, todos
Cliente – todo, todo, todo, estado/provincia
Fecha de pedido – todo, todo, todo, año
Entender cómo leer estos vectores es útil cuando revisa los éxitos de agregación en
SQL Servidor de perfiles. En Analizador de SQL Server, puede ver cómo el vector se
asigna a atributos de dimensión específicos al habilitar el Query subcube verbose
Evento.

Que se construyen agregaciones


Para decidir qué agregaciones se consideran y se crean, los servicios de análisis
proporciona una algoritmo de diseño de agregación Que Utiliza Un costo/beneficio
Análisis para evaluar el valor relativo de cada agregación Candidato.
 Coste de agregación—Lla Costo de una agregación es Principalmente Influenciado
Por Lla Agregación Tamaño. Para calcular el tamaño, los servicios de análisis se
reúnen Estadísticas Incluyendo Fuente Registro Cuenta y miembro Cuenta así como
metadatos de diseño, incluidos los número de dimensiones, medidas, Y Atributos.
Una vez que el Agregación el costo se calcula, Servicios de análisis realiza una serie
de tests para eValorar el costo Contra Absoluta Costo Umbrales y evaluar el costo
Comparado a otras Agregaciones.
 Beneficio de agregación—El beneficio de la agregación depende de lo bien que
reduce la cantidad de datos que Debe escanear durante la consulta. Por ejemplo, si
tienes 1000, 000 valores de datos que se resumen en una agregación De Cincuenta
Valores, esta agregación GranTaza Ventajas Consulta Rendimiento. Recordar que los
servicios de análisis pueden satisfacer consultas Por usando una agregación que
coincida exactamente con el subcubo de la consulta, o Por Resumiendo Datos de una
agregación a un nivel inferior (Un nivel más detallado). Como Analysis Services
Análisis de servicios 2005 guía de rendimiento 33

determina qué agregaciones se deben construir, el algoritmo necesita entender


Cómo Atributos están relacionados entre sí Así puede detectar qué agregaciones
Proporcionar el GREAtest Cobertura Y que agregaciones Son Potencialmente
redundante e innecesario.
Para ayudarle a crear agregaciones, Analysis Services expone el algoritmo usando dos
herramientas: el Asistente de diseño de agregación y el UsoAsistente de optimización
basada.
 Lla Asistente de diseño de agregación diseña agregaciones basadas en el diseño
del cubo y la distribución de datos. Tras bambalinas, selecciona agregaciones
utilizando un algoritmo de costo/beneficio que acepta insumos sobre el diseño y la
distribución de datos del cubo. Se puede acceder al asistente de diseño de
agregación en Business Intelligence Development Studio o SQL Server Management
Studio.
 Lla UsoOptimización basada Asistente diseña agregaciones basadas en patrones
de uso de consultas. Lla UsoEl Asistente para optimización basada utiliza el mismo
algoritmo de costo/beneficio que el Asistente de diseño de agregación, excepto que
proporciona una ponderación adicional a los candidatos de agregación que están
presentes en el registro de consultas de Analysis Services. Lla UsoSe puede acceder
al asistente de optimización basado en Business Intelligence Development Studio
(PUJAs) o SQL Server Management Studio. Para utilizar el Asistente para
optimización basada en el uso, debe capturar las consultas del usuario final y
almacenar las consultas en un registro de consultas. Para configurar y configurar el
registro de consultas para una instancia de Analysis Services, puede acceder a una
variedad de configuraciones de configuración en SQL Server Management Studio
para controlar la frecuencia de muestreo de las consultas y la ubicación del registro
de consultas.
En ésos especial escenarios cuando se requiere un grano más fino control sobre el
diseño de la agregación, Sql Service Pack del servidor 2 sSuelto incluye un avanzado
Agregación Utilidad. UCantar Este Avanzada herramienta, puede crear manualmente
agregaciones sin utilizar el algoritmo de diseño de agregación. Para más información
sobre la agregación Utilidad, Ver Aplicaciónendix C.

Cómo Para iMpact diseño de agregación


Para ayudar a los servicios de análisis aplicar correctamente Lla Agregación Diseño
Algoritmo, que Cna realizar la siguiente optimización Técnicas Para influencia y Mejorar
Lla Agregación Diseño. (Las secciones que siguen describen cada una de estas técnicas
con más detalle).
Sugerir candidatos de agregación – Cuando Servicios de análisis agregaciones de los
diseños, Lla Agregación Diseño Algoritmo no considera automáticamente cada Atributo
Para Agregación. Por consiguiente en el diseño de su cubo, verificar el Atributos Que se
consideran Para Agregación Y determine Si necesita sugerir adicional candidatos a la
agregación.
Especificación de estadísticas sobre datos de cubos - Para Hacer evaluaciones
inteligentes de coste de agregacións, el algoritmo de diseño Analiza Estadísticas Sobre el
cubo para cada Agregación Candidato. Ejemplos de estos metadatos incluyen Miembro
Cuenta Y cuenta de tabla de hechos. Ensuring de que sus metadatos estánFecha puede
mejorar la efectividad de su diseño de agregación.
Análisis de servicios 2005 guía de rendimiento 34

Adopción de una estrategia de diseño de agregación – Para ayudarle a diseñar las


agregaciones más eficaces para su implementación, es útil adoptar una estrategia de
diseño de agregación que aprovecha las fortalezas de cada uno de los Agregación Diseño
Métodos en varias etapas de su ciclo de desarrollo.

Sugiriendo candidatos a la agregación


Cuando Analysis Services diseña agregaciones, el algoritmo de diseño de agregación no
considera automáticamente cada atributo para la agregación. ¿Recuerda la discusión del
número potencial de agregaciones en un cubo? Si los servicios de análisis tuvieran en
cuenta cada atributo para la agregación, tomaría demasiado tiempo diseñar las
agregaciones, por no hablar de rellenarlos con datos. Para agilizar este proceso, Analysis
Services utiliza el Uso de agregación propiedad para determinar qué atributos debe
Automáticamente considere para la agregación. Para Cada Grupo de medida, compruebe
los atributos Automáticamente consideradas para la agregación y Entonces Determine si
necesita sugerir candidatos adicionales de agregación.
Lla reglas de uso de agregación
Un candidato de la agregación es una Atributo que los servicios de análisis consideran
Potencial Agregación. Para determinar si un atributo específico es un candidato de
agregación, Lla Motor de almacenamiento depende de la valor de la Uso de agregación
Propiedad. Lla Uso de agregación la propiedad se asigna A per-Cubo Atributo, por lo
que se aplica globalmente en todos los grupos de medida y particiones en el cubo. Para
cada atributo de un cubo, el Uso de agregación Propiedad puede tener uno de cuatro
valores potenciales: Completo, Ninguno, IrrestrictoY Predeterminado.
 Completo: Cada agregación del cubo debe incluir este atributo o un atributo
relacionado que es menor en la cadena de atributos. Por ejemplo, usted tener una
dimensión de producto con la siguiente cadena de atributos relacionados: producto,
subcategoría de producto y categoría de producto. Si usted Especifique el Uso de
agregación Para Producto Categoría que se Completo, Los servicios de análisis
pueden Crear Un agregación que incluye el producto Subcategoría en contraposición
a la categoría de producto, Dado que el producto SUBCategory está relacionado con
la categoría y puede ser se utiliza para derivar totales de categoría.
 Ninguno—No hay agregación para el cubo Puede incluir este atributo.
 Irrestricto—No se colocan restricciones en la agregación DiseñoHge; sin embargo,
el atributo todavía debe evaluarse para determinar si se trata de un candidato de
agregación valioso.
 Predeterminado—El diseñador Se aplica Un regla predeterminada basándose en el
tipo de atributo y la dimensión. Como usted puede adivinar, este es el valor
predeterminado vvalor del Uso de agregación Propiedad.
Lla regla predeterminada es muy conservador sobre Qué atributos Son considerado para
la agregación. Por lo tanto, es extremadamente importante que usted entienda Cómo la
Predeterminado Regla Obras. Lla regla predeterminada está roto abajo en Cuatro
Restricciones:
1. Predeterminado ConstraiNt 1—Sin restricción para Lla Granularidad y todo
Atributos - Para Lla Dimensión Atributo That es el Grupo de medida atributo de
granularidad y la Aatributo llUnpply Irrestricto. THge el atributo de granularidad es
el mismo que el de la dimensión atributo key siempre y cuando el el grupo de
medida se une a una cota mediante Lla atributo de clave principal.
Análisis de servicios 2005 guía de rendimiento 35

Para ayudarle a Visualizar Cómo Restricción predeterminada 1 se aplica, Figura 13


muestra un prodimensión del conducto con Seis Atributos. Cada atributo se muestra
como unjerarquía de tributos. Además tres jerarquías de usuarios se incluyen en la
dimensión. Dentro de las jerarquías de usuario, hay dos jerarquías naturales se
muestra en azul y una Antinatural Jerarquía muestran en Gris. Además del atributo
All (no representado en el diagrama), tÉl atribuye en Amarillo, Clave del producto, es
la única candidato de la agregación eso se considera después la primera Restricción
se aplica. Clave del producto es la atributo de granularidad para el grupo de medida.

Figura 13 Producto dIMENSIÓN aggregation candidates Después Aplicar


Restricción predeterminada 1
2. Restricción predeterminada 2—NoNE para Dimensión especial Tipos Para
todo attribUtes (excepto todos) en muchos-a-Muchos no materializado Referencia
Dimensiones, y dimensiones de minería de datos, Uso Ninguno. La dimensión del
producto en figure 13 es un Estándar Dimensión. Therefore no se ve afectada por
Constraint 2. Para obtener más información sobre las dimensiones de muchos a
muchos y de referencia, Ver Relaciones de dimensión complejas.
3. Restricción predeterminada 3—Sin restricción para las jerarquías naturales-
Para todas las jerarquías de usuarios, Aplicar un proceso de escaneo especial para
identificar el atributos en jerarquías naturales. Como recuerdan, Un Natural la
jerarquía es una jerarquía de usuario en la que todos los atributos que participan en
la jerarquía contienen relaciones de atributos en todos los niveles de la jerarquía.
Para identificar el jerarquías naturales, Servicios de análisis Escaneos cada jerarquía
de usuario Comenzando En Lla Tapa ligeral y Entonces Movimientos abajo Por la
jerarquía a la Parte inferior Nivel. Para cada nivel, es Cheques Si Lla atributo de la
Actual nivel está vinculado a la atributo de la siguiente nivel vía directa o indirecta
relación de atributos, Para Cada Atributo Que pasar la jerarquía natural test, Aplicar
Irrestricto, excepto para atributos no agregables, que se establecen en Completo.
4. Restricción predeterminada 4—Ninguno para todo lo demás. Forall otros
Dimensión Atributos, Aplicar Ninguno. En este ejemplo, el atributo de color cae en
este Cubo puesto que sólo se expone como una jerarquía de atributos.
Análisis de servicios 2005 guía de rendimiento 36

Figura 14 muestra lo que el Producto dimensión parece después de todo Restricciones


En regla predeterminada He estado Aplicado. Los atributos en amarillo Resaltar los
candidatos de la agregación.
 Como resultado de Restricción predeterminada 1, la llave del producto y todo
Atributos have sido identificado como candidatos.
 Como resultado de Restricción predeterminada 3, el tamaño, Size Range,
Subcategoría y atributo categorys have También sido identificados como candidatos.
 Después Restricción predeterminada 4 se aplica, Color es Todavía no se considera
para ninguna agregación.

Figura 14 Producto dIMENSIÓN aggregation candidates aespués aLl


application De aLl default cimpresiónes
Mientras que los diagramas son útiles para visualizar Qué sucede después de cada
restricción se aplica, puede Vista Lla Específico agregación de candidatos para su propia
implementación Cuando se utiliza Lla Asistente de diseño de agregación para diseñar
agregaciones.
Figura 15 muestra el Especifique la página de conteos de objetos del Asistente de diseño
de agregación. En este Asistente Página Puedes Vista los candidatos de la agregación
para el Producto Dimensión muestran en Figura 14. El atributo Bolds en la dimensión del
producto están los candidatos de la agregación para esta dimensión. Lla Color Atributo
Es no negrita porque no es un candidato de agregación. Esta página especificar conteos
de objetos se discute de nuevo en Especificación de estadísticas sobre metadatos de
cuboQue Describirs Cómo se puede actualizar Estadísticas para mejorar el diseño de
agregación.
Análisis de servicios 2005 guía de rendimiento 37

Figura 15 Agregación candidates en el Asistente de diseño de agregación


Influenciar aggregation candidates
A la luz de la Comportamiento Dela Uso de agregación Propiedad, Siguientes son
algunas pautas Que puede adoptar para influir en los candidatos de agregación para su
implementación. Tenga en cuenta que al hacer estas modificaciones, usted es
inhumencing los candidatos de la agregación, no garantiza que se va a crear una
agregación específica. La agregación debe seguir siendo evaluada por su costo relativo y
beneficio antes de crearse. El guidelines se han organizado en Tres escenarios de
diseño:
 Dimensiones con no hay jerarquías de usuario—Si su dIMENSIÓN Sólo Hsa
jerarquías de atributos con no jerarquías definidas por el usuario, por defecto, el
único el atributo que se considera para la agregación es el atributo de granularidad
del cubo Más la ALl Atributo. Como tal, es posible que desee considere agregar
algunas jerarquías naturales a su diseño. Además de la Uso de agregación
Ventajas, sus usuarios pueden Disfrutar Lla Análisis Experiencia de Usando
Predefinidos rutas de navegación.
 Atributo oólo eXposed En Un attribute hierarchy—Si un atributo dado sólo se
expone como un atributo hierarchy como el color en Figura 14, es posible que desee
Cambiar Su Uso de agregación property como sigue:
 Change el valor de la Uso de agregación propiedad de Predeterminado Para
Unrestricted Si el atributo es un atributo de uso común o si hay consideraciones
Análisis de servicios 2005 guía de rendimiento 38

especiales para mejorar el rendimiento en un particular pivote o desglose. Por


ejemplo, si usted ha resumido muy estilo Scorecard informes, desea asegurarse
de que los usuarios experimenten un buen tiempo de respuesta de la consulta
inicial antes de taladrar alrededor en más detalle.
 Mientras se establece el Uso de agregación Propiedad de una jerarquía de
atributos determinada Para Irrestricto Es Apropiado son algunos escenarios, No
ser tentado tLla Establecer todas las jerarquías de atributos Para Irrestricto. Si
bien este escenario parece razonable, puede Rápidamente encuentra en una
posición en la que el mago toma mucho tiempo para considere todos los posibles
Candidatos Y crear un diseño de agregación. En cubos grandes, el mago puede
tomar al menos una hora para completar el diseño y considerablemente mucho
más tiempo para procesar. Como tal, usted debe Establecer la propiedad a
Irrestricto Sólo Para el comúnmente preguntado jerarquías de atributos. La
regla general es de cinco a diez Irrestricto atributos por dimensión.
 Cambiar el valor de la Uso de agregación Propiedad De Predeterminado Para
Completo en el caso inusual que se utiliza en prácticamente todas las consultas
que desea optimizar. Este es un caso muy raro y sólo debe Ser se utiliza para
atributos que tienen un Relativamente pequeño número de miembros.
 Infrecuentemente atributos usados—Para los atributos que participan en
jerarquías naturales, que puede querer cambiar el Uso de agregación propiedad de
Predeterminado Para NUna Si los usuarios sólo lo usarían con poca frecuencia. El
uso de este enfoque puede ayudarle a reducir el espacio de agregación y llegar a la
cinco a diez Irrestricto atributos por dimensión. Por ejemplo, puede tener ciertos
atributos que son Sólo utilizado por Unos pocos usuario avanzados Quién están
dispuestos a Aceptar rendimiento ligeramente más lento. En este escenario, Son
Esencialmente Forzando el algoritmo de diseño de agregación para pasar tiempo
construyendo Sólo las agregaciones que proporcionan el más Ventaja a la mayoría
de los usuarios. Otro ejemplo en el que puede que desee considerar la configuración
de la Uso de agregación propiedad a Ninguno es cuando se tiene una jerarquía
natural donde el número de miembros de un nivel al siguiente nivel es casi idéntico.
Por ejemplo, Si tienes 20 subcategorías de productos y 18 categorías de productos,
puede tener sentido establecer el atributo de categoría de producto en ninguno, ya
que la pena de e/S de sumar 20 miembros hasta 18 Miembros es despreciable.
Hablando en términos generales, si los datos no admiten al menos un 2:1 debe
considerar la configuración de la Uso de agregación Para Ninguno.

Especificar Estadísticas Sobre datos del cubo


Una vez que el algoritmo de diseño de agregación ha identificado a los candidatos a la
agregación, Realizars Un costo/beneficio Análisis de cada agregación. Con el fin de
realizar evaluaciones inteligentes de los costos de agregación, el algoritmo de diseño
analiza la estadísticas acerca del cubo para cada candidato de agregación. Ejemplos de
estos metadatos incluyen conteos de miembros Y tabla de hechos Registro Cuenta.
Asegurar que sus metadatos estén actualizados puede mejorar la efectividad de su
diseño de agregación.
Que puede definir Lla número de registro de origen de tabla de hecho en el
EstimatedRows propiedad de cada grupo de medida, y you puede definir Atributo
Miembro Contar En EstimatedCount propiedad de cada atributo.
Análisis de servicios 2005 guía de rendimiento 39

You puede modificar estos conteos En Especificar conteos Página de la Asistente de


diseño de agregación como se muestra en figura 16.

Figura 16 Especificar objeto counts en el Asistente de diseño de agregación


Si el conteo es nulo es., no lo definiste durante el diseño), haciendo clic en el CoUnt el
botón rellena los conteos de cada candidato de la agregación así como el tamaño de la
tabla del hecho. Si el conteo ya está rellenado, haga clic en Contar Perola tonelada no
actualiza los conteos. En cambio, debe cambiar manualmente los conteos en el cuadro
de diálogo Caja o mediante programación. Esto es significativo cuando se diseñan
agregaciones en un pequeño conjunto de datos y luego se mueve el cubo a una pbase
de datos roduction. A menos que actualice los conteos, se creará cualquier diseño de
agregación Por utilizando el Estadísticas del conjunto de datos de desarrollo.
Además, cuando se utilizan varias particiones para dividir físicamente sus datos, es
importante que el Partición los conteos reflejan con precisión los datos de la partición y
no los datos en el grupo de medida. Así que si creas una parteition por año, el el conteo
de particiones para el atributo Year debe ser 1. Cualquier conteo en blanco en la
columna reCuento de particiones Utilice los valores de conteo estimados, que se aplican
a toda la tabla Fact.
Usando Estos Estadísticas, Analysis Services compara el costo de cada agregación a
umbrales de coste predefinidos para determinar Si una agregación es o no demasiado
costosa de construir. Si el costo es demasiado alto, se descarta inmediatamente. Uno de
los umbrales de costos más importantes se conoce como el unoTercer Regla. Los
Análisis de servicios 2005 guía de rendimiento 40

servicios de análisis nunca construyen una agregación que sea mayor que un tercio del
tamaño de la tabla de hechos. En términos prácticos, la unoTercer la regla normalmente
impide la construcción de agregaciones que incluyan uno o más atributos grandess.
A medida que el número de miembros de cota aumenta a niveles más profundos en un
cubo, se vuelve menos probable que una agregación contenga estos niveles inferiores
debido a la unoTercer Regla. Las agregaciones excluidas por el unoTercer regla son las
que serían casi tan grandes como el nivel de hecho en sí y casi tan caro para los
servicios de análisis a utilizar para la resolución de la consulta como el nivel de hecho.
Como resultado, añaden poco o ningún valor.
Cuando se tienen dimensiones con un gran número de miembros, este umbral se puede
superar fácilmente en o cerca del nivel de la hoja. Por ejemplo, usted tiene Un Grupo de
medida con los siguientes Diseño:
 Customer Dimensión con 5 millones clientes individuales organizado en
50,000 Ventas distritos y 5.000 territorios de ventas
 Pdimensión roduct con 10000 Productos organizado en 1,000 Subcategorías Y
30 Categorías
 Dimensión de tiempo con 1,095 días organizados en 36 Meses Y 3 Años
 Tabla de hechos de ventas con 12 millones registros de ventas
Si usted modela este grupo de medida usando Un Solo Partición, Servicios de análisis no
no considerar ninguna agregación que excede 4 millones Registros (un tercio del tamaño
de la Partición). Por ejemplo, es no no considere ninguna agregación que incluya la
cliente individual, dado que el atributo de cliente supera unoTercer Regla. Además, no
no considerar una agregación del territorio de ventas, Categoría y mes Dado que el
número total de registros de esa agregación podría Potencialmente Ser 5,4 millones
Registros consistente en 5.000 territorios de ventas, 30 Categorías y 36 Meses.
Si usted modela este grupo de medida usando Múltiples Particiones que Cna Impacto Lla
diseño de agregación al desglosar el grupo de medida en pequeños componentes físicos
y ajustar el Estadísticas para cada partición.
Por ejemplo, si romper el measGrupo de URE en 36 Mensual Particiones, puede tener los
siguientes Datos Estadísticas Para Partición:
 Dimensión del cliente tiene 600.000 Individuales Clientes organizadas en
10.000 distritos de ventas y 3.000 territorios de ventas
 Dimensión del producto con 7,500 productos organizados en 700 Subcategorías y
25 categories
 Dimensión de tiempo con 1 Mes y 1 Yera
 Tabla de datos de ventas con 1, 000000 registros de ventas
Con los datos desglosados en componentes más pequeños, los servicios de análisis
pueden ahora identificar Adicional agregaciones útiles. Por ejemplo, la agregación para
el territorio de ventas, Categoría y mes es ahora un buen candidato con (3000 territorios
de ventas * 25 Categorías * 1 Mes) o 75,000 registros que es menor que un tercio Dela
Partición tamaño de 1 millón Registros. Al crear varias particiones es Útil, también es
fundamental que actualizar el recuento de miembros Y Partición cuenta para la partición
como displayed en la figura 16. Si no actualizas las estadísticas, Analysis Services no
sabrá que la partición contiene un conjunto de datos reducido. Tenga en cuenta que este
ejemplo se ha proporcionado para ilustrar puede utilizar múltiples particiones para
impactar el diseño de agregación. Para Práctico Partición Tamaño Directrices, incluida la
Análisis de servicios 2005 guía de rendimiento 41

Recomienda número de registros por partición, Ver Diseño de particiones En Este libro
blanco.
Tenga en cuenta que puede examinar los metadatos almacenados en y recuperar la
información de soporte y supervisión de una instancia de Analysis Services Por uso de
conjuntos de filas de esquema de XML for Analysis (XMLA). Con esta técnica, puede
obtener acceso a información sobre conteos de registros de partición y tamaño de
agregación en disco para ayudarle a obtener un mejor sentido de la huella de los cubos
de servicios de análisis.

Adoptar una estrategia de diseño de agregación


El objetivo de una estrategia de diseño de agregación es ayudarle a diseñar y mantener
agregaciones durante el ciclo de ejecución de la implementación. Desde una perspectiva
de agregación, el ciclo de duración del cubo se puede desglosar en dos etapas
generales: diseño de agregación inicial y sintonización continua basada en patrones de
consulta.
Diseño de agregación inicial
El más Eficaz diseños de agregación son los que son personalizados para Lla ConsultaIng
Patrones de su base de usuarios. Desafortunadamente, cuando inicialmente se
implementa un cubo, que probablemente se no tiene datos de uso de consulta
disponibles. Como tal, es no es posible utilizar el UsoOptimización basada Asistente. Sin
embargo, debido a que los servicios de análisis generalmente resuelven las consultas de
usuario más rápidamente con algunas agregaciones que con ninguna, debería
inicialmente diseñar un número limitado de agregaciones Por utilizando el Agregación
Asistente de diseño. El número de agregaciones iniciales que debe diseñar depende de la
complejidad y el tamaño del cubo (el Hecho tamaño).
 Pequeño cubes—Con un cubo pequeño, un eficaz Agregación Estrategia es
inicialmente el diseño de agregaciones utilizando el Agregación Asistente de diseño
para lograr un 20 a 30 porcentaje de aumento en el rendimiento. Tenga en cuenta
que si el diseño tiene demasiados atributos considerar para la agregación, hay una
Oportunidad que la Agregación Asistente de diseño wEnfermo detener antes de
alcanzar el porcentaje diseñado mejora de rendimiento Y el usuario Interfaz Puede
no visiblemente Mostrar Cualquier Por ciento aumento de rendimiento. En este
escenario, el gran número de atributos ha resultó en muchas posibles agregacioness,
y la número de agregaciones que han Realmente sido creados son Un Muy pequeño
porcentaje de ttotal de posibles agregaciones.
 Grandes y complex cubes—Con un cubo grande y complejo, tomas Servicios de
análisis mucho tiempo sólo para diseñar un pequeño porcentaje de las posibles
agregaciones. Recordar que el número de Teórico agregaciones en Un el cubo se
puede expresar como 2 ^ (n totalsombra de Irrestricto Atributos). Un cubo complejo
con Cinco Dimensiones Que Cada Contienen Ocho attributes Hsa 2 ^40 o 1.1 Billones
candidatos a la agregación (dado que cada atributo es un candidato de agregación).
Con este número, Si usted asume que el Diseño de agregación WIzard puede
examinar 1000 agregaciones por segundo (que es una estimación muy generosa), se
tomará el Agregación Asistente de diseño aproximadamente 35 años para considerar
Un billones de posibles agregaciones. Además, un gran número de agregaciones
tomans mucho tiempo para calcular y consumirs una gran cantidad de espacio en
disco. Si bien este es un ejemplo teórico, unn enfoque eficaz con mundo real Cubos
que son grandes y complejas es inicialmente diseñar agregaciones para lograr un
Análisis de servicios 2005 guía de rendimiento 42

pequeño aumento de rendimiento (menos de 10 Por ciento Y posiblemente incluso 1


o 2 por ciento con cubos muy complejos) y luego permitir que el Agregación
Asistente de diseño para ejecutar no más de 15 Minutos.
 Medio complexity cUbes—Con un cubo de mediana complejidad, las agregaciones
de diseño para lograr un 10 a 20 aumento porcentual en el rendimiento. TEllos,
permitir que el asistente se ejecute por no más de 15 Minutos. Si bien es difícil
definir qué constituye un cubo de alta complejidad frente a un cubo de complejidad
media, considere esta pauta general: un cubo de alta complejidad es un cubo
Contiene más que Diez Irrestricto Atributos en una dimensión dada.
Antes de crear agregaciones iniciales con el Agregación Asistente de diseño, debe
Evaluar la aplicación Uso de agregación Propiedad y modificar su valor según sea
necesario Para Minimizar Agregaciones que son Raramente Utilizado Y Para maximizar la
probabilidad de útil Agregaciones. Usando Uso de agregación es equivalente a
proporcionar el algoritmo de agregación conConsejos" Acerca de qué atributos se
consultan con frecuencia e infrecuentemente. Para specific directrices sobre Modificar Lla
Uso de agregación PropiedadVer Influir en los candidatos de agregación.
Después de que usted diseñar agregaciones para un determinado Partición es una buena
práctica Evaluar Lla tamaño de los archivos de agregación. El tamaño total de todos los
archivos de agregación para una partición dada debe ser aproximadamente de una a dos
veces el tamaño de la tabla de datos de origen. Si las agregaciones son más de dos
veces el tamaño de la tabla de hechos, es probable que el gasto de un largo tiempo de
procesamiento de su cubo a Buiagregación relativamente grande del LD Archivos.
Durante la consulta, potencialmente puede experimentar problemas de performance
Cuando los archivos de agregación grandes no se pueden cargar efectivamente en la
memoria debido a la falta de Sistema Recursos. Si usted experimentae Estos cuestiones,
es una buena práctica considerar reducir la número de candidatos a la agregación.
Continua basado en Tuning En patrones de consulta
Después de que los usuarios hayan preguntado al cubo durante un período de tiempo
suficiente para recopilar datos de patrones de consulta útiles en el registro de consultas
(tal vez una semana o dos), utilice el Asistente para optimización basada en el uso para
realizar un análisis basado en el uso para diseñar agregaciones adicionales que sea útil
basándose en los patrones reales de consulta del usuario. A continuación, puede
procesar la partición para crear el nuevo conjunto de agregaciones. A medida que
cambian los patrones de uso, utilice el Asistente para optimización basada en el uso para
actualizar agregaciones adicionales.
Recuerde que para usar Lla Optimización basada en el uso Asistente, debe capturar las
consultas del usuario final y almacenar las consultas en un registro de consultas.
Consultas de registro Requiere una cierta cantidad de sobrecarga por lo que se
recomienda generalmente que te Gire apagado Registro y luego volver a encenderlo
periódicamente Cuando que necesita para afinar agregaciones basado en patrones de
consulta.
Como alternativa al uso Lla Optimización basada en el uso Asistente, si necesita un
control de granulado más fino sobre el diseño de agregación, SQL Service Pack del
servidor 2 sSuelto incluye un avanzado Utilidad de agregación que permite crear
Específico Agregaciones desde el registro de consultas sin utilizar el algoritmo de diseño
de agregación. Para obtener más información sobre la utilidad de agregación, Ver
Apéndice C.
Análisis de servicios 2005 guía de rendimiento 43

Usando Particiones Para mejorar el rendimiento de


las consultas
Particiones medida separada Agrupe los datos en unidades físicas. El uso eficaz de las
particiones puede Mejorar performance de consultas, mejore el rendimiento de
procesamiento y facilite la administración de datos. Este Sección Específicamente
Direcciones Cómo puede Uso particiones para mejorar Consulta Rendimiento. THY Uso
de particiones para mejorar el rendimiento de procesamiento sección discute los
beneficios de procesamiento y gestión de datos de Particiones.

Cómo particiones are utilizado iN Consulta


Cuando se consulta un cubo, el motor de almacenamiento intentos de recuperar datos
de la caché del motor de almacenamiento. Si no hay datos disponibles en la caché,
intentará Recuperar datos de una agregación. Si no hay agregación presente, se Debe
Vete a Lla Hecho Datos. Si usted tener una partición, Analysis Services debe escanear
aunque todos los datos de hechos En partición para encontrar la dATA que le interese.
Mientras que el motor de almacenamiento puede consultar la partición en paralelo y Uso
índices de mapa de bits para acelerar recuperación de datosEnITH sólo una partición, el
rendimiento no va a ser óptimo.
Como unn alternativa, puede utilizar varias particiones para dividir el grupo de medida
en componentes físicos separados. Cada partición se puede consultar por separado y el
motor de almacenamiento puede Consulta Sólo la partición(s) que contienen los datos
pertinentes.

Figura 17 Inteligente querying by partitions


Figura 17 muestra una consulta solicitando Ventas de revendedores Cantidad por tipo de
negocio de un cubo llamado Trabajos de aventura así como el SQL Traza del generador
de perfiles de servidor que describe cómo se satisfizo la consulta. Lla El grupo de la
medida de las ventas del revendedor de la aventura trabaja el cubo contiene cuatro
particiones: una para cada año. Debido a que la consulta rebana 2003, el motor
de almacenamiento puede ir directamente al 2003 Ventas de revendedores
Partición Y no no tiene que escanear los datos de otras particiones. Lla
Sql Servidor Profiler Trace para esta consulta muestra cómo necesita la
consulta leer datos Sólo desde el 2003 Ventas de revendedores Partición.
Análisis de servicios 2005 guía de rendimiento 44

Diseño Particiones
Si tiene alguna idea de cómo los usuarios consultan los datos, puede
Partición datos de una manera que coincida con las consultas comunes. Esto
puede ser algo difícil si las consultas de usuario no siguen patrones
comunes. UNA opción muy común para las particiones es seleccionar Un
Elemento De hora Como Día mes, cuarto, año o alguna combinación de
elementos temporales. Muchas consultas Contain a elemento de tiempo, Así
Particionamiento por tiempo a menudo se beneficians rendimiento de la
consulta.
Cuando configure las particiones, debe Atar Cada Partición a una fuente
tcapaz, vista, o consulta de origen que contiene Lla subconjunto de Datos
para esa partición. Para las particiones MOLAP, durante el procesamiento
Analysis Services identifica internamente el segmento de datos que se incluye en cada
partición usando el DataIDs mínimo y máximo de cada atributo Para Calcule el rango de
datos que contiene la partición. A continuación, se combina el intervalo de datos para
cada atributo para crear la definición de división de la partición. La definición de división
se conserva como un subcubo. Conociendo esta información, el motor de
almacenamiento puede optimizar qué parteExplora durante la consulta sólo eligiendo las
particiones que son relevantes para la consulta. Para ROLAP y el almacenamiento en
caché proactivo particiones, debe Manualmente Identifique el segmento en las
propiedades de la partición.
Como diseñas particiones, Uso los siguientes directrices para creación y gestión
Particiones:
 Cuando decide Cómo desglosar sus datos en particiones, generalmente está pesando
el tamaño de la partición frente al número de particiones. El tamaño de la partición
es una función del número de registros de la partición, así como del tamaño de los
archivos de agregación de esa partición. Aunque los segmentos de una partición se
consultan en paralelo, si los archivos de agregación para una partición no se puede
administrar de forma eficaz en la memoria, se puede ver Significativo problemas de
rendimiento durante la consulta.
 En general. el número de registros por partición debe no exceda 20 Millones.
Además, el tamaño de una partición no debe exceder 250 Mb. If la partición excede
cualquiera Una de estos Umbrales, considere la posibilidad de romper la partición en
componentes más pequeños para reducir la cantidad de tiempo dedicado a escanear
la partición. Mientras que tener varias particiones es Generalmente Beneficioso
having también muchas particiones, e.g., mayor que unos pocos cientos, Cna
También afectar negativamente el rendimiento.
 Si tiene varias particiones que son menores de 50 Mb o 2 millones de registros por
particiónConsiderar consolidarlos en una partición. Además generalmente no es una
buena práctica crear una partición que tenga menos de 4,096 Registros. En este
escenario, Dado que el conteo de registros es tan pequeño, el motor de
almacenamiento no crea agregaciones o índices para la partición y, por lo tanto, no
no configure el auto-Slice. Tenga en cuenta que este conteo de registros Umbral es
controlada por el IndexBuildThreshold Propiedad en el archivo msmdsrv. ini.
Cayendo por debajo de esteno debe ser generalmente un problema en los entornos
de producción Desde los conjuntos de datos de partición son típicamente mucho más
grande que 4,096 Registros.
Análisis de servicios 2005 guía de rendimiento 45

 Cuando defina sus particiones, Recuerde que De No tienen que contener conjuntos
de valores uniformes. Por ejemplo, para un grupo de medidas determinado, puede
tener Tres particiones anuales, 11 particiones mensuales, Tres particiones
semanales, y 1–7 particiones diarias. El valor de utilizar particiones heterogéneas
Con diferentes niveles de detalle es que usted puede más fácilmente administrar la
carga de nuevos datos sin perturbar Existente pArCompeticiones. Además Puedes
agregaciones de diseño para grupos de particiones que comparten el mismo nivel de
detalle (más información en la siguiente sección).
 Siempre que utilice varias particiones para un grupo de medidas determinado, debe
asegurarse de actualizar las estadísticas de datos de cada partición. Más
específicamente, es importante asegurarse de que la partición datos y miembros los
conteos reflejan con precisión los datos específicos de la partición y no los datos de
todo el grupo de medidas. Para obtener más información sobre cómo actualizar los
conteos de particiones, Ver Especificación de estadísticas sobre datos de cubos.
 Para los distintos grupos de medida de conteo, considere definir específicamente las
particiones para optimizar el procesamiento y el rendimiento de las consultas de
conteos distintos. Para más información sobre este tema, Ver Optimización de conteo
distinto.

Agregación Consideraciones Para múltiples


particiones
Para cada partición, puede utilizar un diseño de agregación diferente. Al aprovechar esta
flexibilidad, puede identificar esos conjuntos de datos que requieren un mayor diseño de
agregación. Aunque la flexibilidad puede ayudarle a mejorar el rendimiento, muchos
diseños de agregación a través de sus particiones pueden introducir sobrecarga.
Para ayudar a guiar su diseño de agregación, las siguientes son pautas generales para
que usted considere. Cuando tenga menos de Diez las particiones, usted debe
típicamente tener no más que Dos diseños de agregación por grupo de medida. Con
menos de 50 particiones, normalmente no quiere más que Tres diseños de agregación
por grupo de medida. Para mayor que 50 particiones, no quiere más que Cuatro diseños
de agregación.
Mientras que ela partición ACH puede tener un diseño de agregación diferente, es una
buena práctica Agrupe sus particiones basándose en Lla Datos Estadísticas de la
partición para que pueda aplicar una sola diseño de agregación a un grupo de similares
Particiones.
Considere el siguiente ejemplo. MeN un cubo con múltiples Mensual particiones, nuevos
datos Puede flujo en la partición única correspondiente a latest Mes. Eso es
generalmente también la partición preguntado lo más frecuentemente. UNA estrategia
común de agregación en este caso es realizar UsoOptimización basada en la partición
más reciente, dejando particiones más antiguas y menos consultadas como están.
El nuevo diseño de agregación también se puede copiar en un partición base. Esta
partición base no contiene datos, sólo sirve para mantener el diseño de agregación
actual. Cuando es hora de agregar una nueva partición (por ejemplo, al comienzo de un
nuevo mes), la partición base se puede clonar en una nueva partición. Cuando el Slice
está configurado en la nueva partición, está listo para tomar datos como la partición
actual. Después de un proceso completo inicial, la partición actual se puede actualizar de
Análisis de servicios 2005 guía de rendimiento 46

forma incremental durante el resto del período. Para más información sobre técnicas de
procesado, Ver ReFrescar particiones eficientemente.
Análisis de servicios 2005 guía de rendimiento 47

Escritura Eficiente Mdx


Cuando el Motor de ejecución de consultas ejecuta una consulta MDX, es traduce la
consulta a solicitudes de datos de motor de almacenamiento y luego compila los datos
para producir Un Consulta conjunto de resultados.
Durante ejecución de consultasLla Motor de ejecución de consultas También Ejecutars
Cualquier Cálculos Que Son directa o indirectamente Referencia, Como miembros
calculados, medidas semi-aditivasy asignaciones de ámbito de secuencias de comandos
MDX. Siempre que se refiera directa o indirectamentecálculos en la consulta, usted debe
considere el impacto del cálculos en el rendimiento de la consulta.
Este Sección presenta técnicas para escritura MDX eficiente enunciados en escenarios
comunes de diseño. Lla Sección asume que el lector hcomo algunos conocimientos de
MDX.

Especificar Lla espacio de cálculo


Cuando necesite Crear Mdx cálculos que Aplicar reglas de negocio a ciertas Células en
un cubo, es es crítico Escribir Eficiente Código MDX que Eficazmente Especifica Lla
Cálculo espacio para cada regla.
Antes se aprende sobre Llase Mdx Codificación Técnicas es importante estar
familiarizado con algunos comunes escenarios donde la regla de negocios condicionals
son relevantes. Fuego es una descripción de un cálculo de crecimiento donde quieres
Aplicar reglas únicas a diferentes períodos de tiempo. Para CalculadoY crecimiento de Un
período anterior, Usted puede pensar que Lla lógica eXpressing para este cálculo es p
actualEriod Menos anterior pEriod. In general, Este Expresión Es Válido; Sin embargo no
es exactamente correcto en el siguiente Tres Situaciones.
 El primer período—IN la primera hora Período De Un Cubo, no hay ninguna período
anterior. SInce el período anterior no existe para el primer período, Lla expresión de
período actual menos el período anterior evalúa Para período actual, que puede ser
algo engañoso. Para evitar la confusión del usuario final, para el período anterior,
que Puede Decidir Para aplicar un negocioregla de ESS Que Reemplaza Lla Cálculo
Con Null.
 Lla Todos Atributo—Que necesidad de considerar cómo el cálculo interactúa con Lla
Todos. En este escenario, el cálculo simplemente no se aplica a todos losAsí que
Decidir Para aplicar una regla que Establecers el valor para todos a NA.
 Futuro Períodos—Para períodos de tiempo que se extienden más allá del final de
los datos Gama, ya debe considerar Donde desea que el cálculo Parada. Por ejemplo,
si su último período de datos es DecembER de 2006, ya Quiero Para Uso una regla
de negocio para aplicar sólo el cálculo a los períodos de tiempo antes e incluyendo
Diciembre de 2006.
Basándose en este Análisis, usted Necesita para aplicar Cuatro Negocio Reglas para el
crecimiento del cálculo del período anterior. La regla 1 es para el Primera período, la
regla 2 es para el todo, la regla 3 es para los períodos de tiempo futuros y la regla 4 es
para el resto hora Períodos. La clave para aplicar eficazmente estas reglas de negocio es
identificar eficazmente el espacio de cálculo para cada regla. Para lograr Este, tiene dos
diseños generales Opciones:
 Puede crear un miembro calculado Con una declaración de Mii Que Utiliza lógica
condicional para Especificar el cálculo Espacio para un determinado Período.
Análisis de servicios 2005 guía de rendimiento 48

 Alternativamente, puede crear un Calculado miembro y Utilice unn MDX script


asignación de ámbito Para Especificar el SP de cálculoAce para un determinado
Período.
En un cubo simple sin otro Cálculos, el rendimiento de estos dos Enfoques Es
aproximadamente igual. Sin embargo Si el miembro calculado directa o indirectamente
Referencias Cualquier otros MDX Calcdirigiendo tal como semi-aditivo Medidas,
miembros calculados, O Secuencia de comandos MDX asignaciones de ámbito, que Cna
sin duda ver una diferencia de rendimiento entre los dos enfoques. Para ver cómo
Receta MDXT las asignaciones de ámbito se pueden utilizar para realizar el cálculo del
crecimiento, Puedes Uso el Asistente de inteligencia de negocios para Generar
inteligencia de tiempo Cálculos en tu cubo.
Para entender mejor el prestaciones de la asignación de ámbito Técnica utilizado por el
Asistente de inteligencia de negocios, cInsider lo siguiente Ilustrativo Ejemplo de unn
eficaz asignación de ámbito. Que Requieren una nueva miembro calculado Llamado
Semana Ganancia bruta. El beneficio bruto del fin de semana se deriva del miembro
calculado beneficio bruto. Para calcular el beneficio bruto de fin de semana, debe Suma
el beneficio bruto miembro calculado Para Lla días en un fin de semana de ventas. Esto
parece bastante fácil, pero Existen diferentes reglas de negocio que se aplican a cada
territorio de ventas a como sigue:
 Para todas las tiendas de la North America territorio de ventas, el Fin de semana
beneficio bruto Debe sumar el beneficio bruto de dEss 5 6 Y 7I.e., Viernes, sábado y
domingo.
 Para todas las tiendas en Lla Pacífico territorio de ventas, Lla Fin de semana
beneficio bruto debe ser Ahora mismoLl. Desea establecerlo como NULL debido a que
el Pacífico territorio es en el proceso de Cierre De todos los Su Tiendas Y Lla Los
números de ganancia bruta son Significativamente Sesgada debido a su fin de
semana liquidación de ventas.
 Para todos los demás territorios, el beneficio bruto fin de semana Debe sumar el
beneficio bruto Para los días 6 y 7, es decir,, Sábado y domingo.
Para satisfacer las condiciones de Este escenario, a continuación se muestran dos
opciones de diseño que Cna cHoose.
Opción 1—Miembro calculado
You puede utilizar un miembro calculado con una declaración de MII para aplicar la
suma condicional del beneficio bruto. En este escenario, el motor de ejecución de
consultas debe evaluar el espacio de cálculo en tiempo de ejecución en función de celdas
por celda basándose en la especificación de MII. Como resultado, el motor de ejecución
de consultas utiliza una ruta de código menos optimizada para ejecutar el cálculo que
aumenta el tiempo de respuesta de la consulta.

con el miembro [Opción 1 Semana Ganancia bruta] como

Mii (ancestro ([Sales Territory]. [Sales Territory]. CurrentMember

[Sales Territory]. [Sales Territory]. [Grupo])

ESSales Territory]. [Sales Territory]. [Grupo]. & [North America],

SUM ({[Date]. [ Día de la semana]. & [5],

[Fecha]. [Día de la semana]. & [6],


Análisis de servicios 2005 guía de rendimiento 49

[Fecha]. [Día de la semana]. & [7]},

[Medidas]. [Beneficio bruto del revendedor]),

Mii (ancestro ([Sales Territory]. [Sales Territory]. CurrentMember

[Sales Territory]. [Sales Territory]. [Grupo])

ESSales Territory]. [Sales Territory]. [Grupo]. & [Pacífico],

Null

SUM ({[Date]. [ Día de la semana]. & [6],

[Fecha]. [Día de la semana]. & [7]},

[Cmmeasures]. [Beneficio bruto del revendedor])))

Opción 2—Asignación de ámbito con un miembro calculado


En la opción 2, se utiliza un miembro calculado con una asignación de ámbito para
aplicar la suma condicional de ganancia bruta.

CREAR miembro CURRENTCUBE. [Medidas]. [Opción 2 Semana Bruto Beneficio]


Como

SUM ({[Date]. [ Día de la semana]. & [7],

[Fecha]. [Día de la semana]. & [6]},

[Medidas]. [Beneficio bruto del revendedor]);

Scope ([Opción 2 Semana Bruto Beneficio],

Descendientes ([Sales Territory]. [Grupo de territorios de ventas].


& [norte

America]));

This = SUM ({[Date]. [ Día de la semana]. & [7],

[Fecha]. [Día de la semana]. & [6],

[Fecha]. [Día de la semana]. & [5]},

[Medidas]. [Beneficio bruto del revendedor]);

Alcance del extremo;

Scope ([Opción 2 Semana Bruto Beneficio],

Descendientes ([Sales Territory]. [Grupo de territorios de ventas].


& [Pacífico]));

This = NULL;

Alcance del extremo;


Análisis de servicios 2005 guía de rendimiento 50

En Este ejemplo, Este option es significativamente más rápido Que la primera opción. La
razón Este option es más rápido es porque el Dos sdefiniciones de subcube de Cope (la
parte izquierda de Cada asignación de ámbito) Permitir Lla Motor de ejecución de
consultas Para Sabe antes de tiempo el espacio de cálculo para cada regla de negocio.
Encante esta información, el Motor de ejecución de consultas puede seleccionar una ruta
de ejecución optimizada para ejecutar el cálculo En Lla intervalo de celdas especificado.
Como regla general, es una práctica recomendada tratar siempre de simplificar las
expresiones de cálculo moviendo las partes complejas en varias definiciones de ámbito
cuandoNunca Posible.
NOTA que en esta asignación de ámbito, Lla Descendientes Función representa los
servicios de análisis 2000 aproximación Para Usando Mdx Funciones Para Navegar Un
Dimensión Jerarquía. Un enfoque alternativo en servicios de análisis 2005 es
simplemente usar Alcance con Lla jerarquías de atributos. Así En lugar de Usando SCope
(Descendientes ([Sales Territory]. [Pacífico])), puede utilizar Alcance ([Sales
Territory]. [Pacífico]).
To mejorar el rendimiento, siempre que sea posible, Uso Lla shacer frente a la definición
de subcubo Estrecho Definir Lla espacio de cálculo. Aunque este es el escenario ideal,
hay Situaciones Donde es no es posible. Lla Más escenario común es cuando Te hace
falta Para Definir un cálculo en un arbitrario Colección de las células ([Medidas]. [Monto
de ventas de revendedor] > 500). Este tipo de expresión no está permitido en el
ssubcube d de la Copeefinition desde la definición debe ser estático. En este escenario,
la solución es definir un espacio de cálculo más amplio En Lla Alcance Definición Y
Entonces utilizar el sexpresión MDX Cope (la parte derecha del SCOPE asignación) para
reducir el espacio del cubo utilizando el IIF declaración. El siguiente es un ejemplo de
cómo esta declaración puede ser Estructurad para aplicar una FAC de ponderaciónTor a
las ventas norteamericanas:

SCOPE ([Measures]. [ Cantidad de ventas],


[Sales Territory]. [Sales Territory]. [Grupo]. & [North America])
THIS =
Mii ([Measures]. [ Cantidad de ventas] > 1000, [medidas]. [Importe de
ventas],
[Medidas]. [Importe de ventas] * 1.2);
ALCANCE final

Desde una perspectiva de rendimiento, Mdx sCope las asignaciones proporcionan un


eficiente Alternativa Para Usando Iif Para aplicar reglas de negocio exclusivas a
determinadas celdas de un cubo. Siempre que necesites aplicar los cálculos
condicionalmente, deberías considerar este enfoque.

Quitar tuplas vacías


Cuando que Escriba instrucciones MDX que Uso Un Set (función) Como Crossjoin,
Descendientes, O Miembros, el comportamiento predeterminado Dela Función Es Para
Volver Ambos Vacío y no vacío Tuplas. Desde una perspectiva de rendimiento, empty
tuplas Cna No Sólo Aumentar el número De Filas y/o columnas en el conjunto de
resultados, pero ellos pueden También aumentar el tiempo de respuesta de consultas.
Análisis de servicios 2005 guía de rendimiento 51

En muchos escenarios de negocios, tuplas vacías puede ser eliminado De Un Establecer


sin sacrificar las capacidades de análisis. Analysis Services proporciona una variedad de
técnicas para eliminar tuplas vacías dependiendo de su escenario de diseño.
Servicios de análisis reglas básicas Para interpretación de valores nulos
Antes de describir estas técnicas, es importante establecer algunas reglas básicas sobre
Cómo Vacío Valores Son interpretado en varios escenarios de diseño.
 Falta Hecho Mesa Registros—Antes en el blanco Papel se indicó que sólo los
registros que están presentes en la tabla de hechos relacionales se almacenan en la
partición. Por ejemplo, una venta tabla de hechos sólo tiendas registros para esos
clientes Con ventas para un producto en particular. Si un cliente nunca compró un
producto, no existirá un registro de tabla de hechos para ese cliente y la combinación
de productos. Lo mismo se aplica a la Servicios de análisis Partición. Si un tabla de
hechos registro no Existen para una combinación particular de dimensión
MiembrosLla Cubo Células para estas dimensiones Miembros se consideran vacíos.
 Valores NULL En Medidas—Para cada tabla de hechos medida que se carga en la
partición, Usted puede decidir cómo Analysis Services interpreta nvalores ULL.
Considere el siguiente ejemplo. Su tabla de datos de ventas contiene un registro que
tiene una cantidad de ventas de 1000 y una cantidad de descuento de Null. Cuando
se carga el descuento en el cubo, por defecto se interpreta como un cero, lo que
significa que no se considera vacío. Cómo unalysis Services interpreta null los
valores son controlados por una propiedad llamada NullProcessing. Lla
NullProcessing Propiedad se establece en un medida-por-Mida la base. De forma
predeterminada, se establece en unutomatic, lo que significa que Analysis Services
convierte la Null valores a cero. Si desea preservar el Null valor del sistema de
origen, como en el ejemplo de la medida de descuento, configure el
NullProcessingProperty de esa medida a Preservar En lugar de Automático.
 Valores NULL en calculations—En Cálculos es importante para entender cómo los
valores NULL son Evaluado. Por ejemplo, 1 Menos Null Iguales 1, No Null. En este
Ejemplo el valor nulo se trata como un cero con fines de cálculo. que puede o no
puede ser lo que quieres Uso. Para explicitly probar si una tupla es NullUso la función
ISEmpty Dentro una declaración de Condicional manejar tuplas vacías.
 Vacío Miembros—Al escribir cálculos que hacen referencia a miembros de
dimensión, es posible que tenga que manejar escenarios en los que los miembros no
existen, como el padre del todo. En este escenario, Lla ISEmpty función no es
apropiado como prueba de celdas vacías. Más bien, en este escenario desea utilizar
el operador IS para comprobar si el miembro Es Null.
Análisis de servicios 2005 guía de rendimiento 52

General Técnicas Para eliminar tuplas vacías


Tel siguiente describe las técnicas más generales para eliminación de tuplas vacías:
 No vacío Palabra clave—Cuando desee quitar Vacío filas o columnas desde los ejes
de una consulta MDX, puede utilizar el NO vacío Palabra clave. La mayoría de las
aplicaciones cliente utilizan la palabra clave no vacía para Quitar celdas vacías en
conjuntos de resultados de consulta. Lla NO vacío Palabra clave se aplica a un eje y
toma efecto después de determinar el conjunto de resultados de la consulta, es
decir,, después de la Motor de ejecución de consultas completa la Eje tuplas con los
miembros actuales tomados de la filas, eje, columnas Eje y donde cláusula (así como
Lla miembros predeterminados de las jerarquías de atributos sin referencia En la
consulta).
Considere las siguientes Example se muestra en la figura 18. Tenga en cuenta que
sólo se muestra un subconjunto de los resultados de la consulta.

Figura 18 – Consulta sin palabra clave no vacía

En Figura 18, el eje de filas devuelve una lista completa de revendedores,


independientemente de si o no tienen ventas en 2003. Para cada revendedor, el eje
de columnas muestra las ventas 2003 del revendedor. Si el revendedor no tenía
ventas en 2003, el revendedor todavía se devuelve en la lista, es Sólo regresó con
un null Valor.
Para eliminar revendedores que no tienen ventas en 2003, usted puede Utilice el NO
vacío Palabra clave Como se muestra en la figura 19. Tenga en cuenta que sólo se
muestra un subconjunto de los resultados de la consulta.
Análisis de servicios 2005 guía de rendimiento 53

Figura 19 – consulta con una palabra clave no vacía

En Figura 19, Lla NO vacío Palabra clave quita el Revendedors Que No have ventas,
es decir,, Null Ventas Para 2003. Para aplicar el NO vacío Palabra clave Lla Motor de
ejecución de consultas debe evaluar completamente todas las celdas de la consulta
antes de que pueda quitar las tuplas vacías.
Si la consulta hace referencia a un miembro calculado, Lla Motor de ejecución de
consultas Debe Evaluar el miembro calculado para todas las celdas de la consulta y
luego quitar las celdas vacías. Considere el ejemplo se muestra en la figura 20.
Tenga en cuenta que sólo se muestra un subconjunto de los resultados de la
consulta. En este ejemplo, you ha modificado la consulta de revendedor, reemplazo
del monto de ventas del revendedor CálculoADO Medida Variación del año anterior.
Para producir el conjunto de resultados de la consulta, Analysis Services obtiene
primero un conjunto completo de Revendedores Y Entonces Quita los revendedores
que tienen un vacío variación del año anterior.

Figura 20 – Consulta con No vacío Palabra clave y Calculado Medida


Análisis de servicios 2005 guía de rendimiento 54

Dadas las reglas básicas sobre la interpretación nula, es necesario señalar cuando la
varianza del año anterior va a ser Null.
 Ventas aceptables & Servicio Hsa no hay ventas en 2003 pero tiene Ventas De
$838,92 En 2002. THge Variación del año anterior Cálculo Es Null Menos $838,92
que evalúa$838,92. Dado que el valor no es null, el revendedor se devuelve en el
conjunto de resultados.
 Accesorios de red tiene $729,36 ventas en 2003 pero sin ventas en 2002. El
cálculo de varianza del año anterior Es $729,36 Menos nOjo que evalúa a
$729,36. Dado que el valor no es null, el revendedor se devuelve en el conjunto
de resultados.
 Si un distribuidor no tiene ventas en 2003 o 2002, el cálculo Es Null Menos Null,
Que evalúa a Null. Tel revendedor es eliminado del conjunto de resultados.
 NoFunción vacía—Lla NonVacío Función, No vacío (), es similar a la NO vacío
Palabra clave Pero que proporciona Adicional Flexibilidad y un control más granular.
Mientras que el NO vacío Palabra clave sólo se puede aplicar a un ejeLla NoVacío
Función puede aplicarse a un Establecer. Esto es especialmente útil cuando está
escribiendo cálculos MDX.
Como beneficio adicional, Lla NoVacío Función Permite que Uso Un Expresión MDX
Para Evalúe el vacío Condición contra una regla de negocio. La regla de negocio
puede hacer referencia a cualquier tupla, incluidos los miembros calculados. Tenga
en cuenta que si no especifica la expresión MDX en el Vacío función, el NoVacío
función se componen al igual que el NO vacío Palabra clave, y la condición vacía es
Evaluado según el contexto de la consulta.
Continuando con los ejemplos anteriores con respecto a los revendedores, ySí Quiero
Cambiar Lla consultas anteriores para aplicar su propia regla de negocio que decida
si un revendedor es o no devueltos en la consulta. La regla del negocio es la
siguiente. Quieres una lista de todos los revendedores que tenía una venta en 2002.
Para cada uno de estos revendedores, que Sólo desea mostrar sus ventas para 2003.
Para satisfacer este requisito, se utiliza la consulta se muestra en la figura 21. Tenga
en cuenta que sólo se muestra un subconjunto de los resultados de la consulta.

Figura 21 Consulta con Función no vacía


Análisis de servicios 2005 guía de rendimiento 55

En esta consulta, el Vacío Función Volvers esos revendedores que hA la sal en 2002.
Para cada uno de estos revendedores, sus 2003 Ventas se muestran. Tenga en
cuenta que la consulta produce una lista diferente de revendedores que los
revendedores devueltos en el NO vacío ejemplo de palabra clave. El revendedor de la
red de accesorios ha sido eliminado porque Sólo tiene ventas en 2003 sin ventas en
2002.
Tenga en cuenta que una forma alternativa de escribir Esta consulta es utilizar el
Filtro expresión, como la siguiente:

Seleccione filtro ([reseller]. [ Revendedor]. [Revendedor]. Miembros

NOT ISEmpty ([medidas]. [ Monto de ventas de revendedor],

[Fecha]. [Año calendario]. & [2002]))) en filas,

[Medidas]. [Monto de ventas de revendedor] en columnas

DE [Adventure Works]

DONDE [Date]. [Año calendario]. & [2003]

En esta consulta, Filtro se utiliza para volver Sólo los revendedores que tenían una
venta en 2002. Filtro era COMMsólo se utiliza en versiones anteriores de Analysis
Services. Para expresiones sencillas como la que se muestra en el ejemplo anterior,
Analysis ServicEs CURAlly vuelve a escribir la consulta detrás de laEscenas utilizando
el Vacío Función. Para otros más complicada expresiones, es recomendable Utilice el
Vacío Función en lugar de la Filtro Expresión. En Analysis Services 2005, el Vacío la
función proporciona una alternativa más optimizada al uso Expresión de filtro para
comprobar si hay celdas vacías.
Como usted utiliza NO vacío palabra clave y Vacío función para quitar tuplas vacías,
tenga en cuenta las siguientes pautas:
 Lla Vacío función y NO vacío la palabra clave tendrá aproximadamente el mismo
rendimiento cuando los parámetros pasados a Vacío la función coincide con los
ejes de consulta de una NEN vacío Palabra clave Consulta.
 En escenarios comunes, No vacío se utiliza normalmente en lugar de No vacío
() en el nivel superior de Seleccione ejes de consulta.
 En cálculos o sub-expresiones de consulta, No vacío () es el approa
recomendadoCH para lograr una semántica similar. Cuando Usando No vacío (),
Preste atención adicional a asegurarse de que el contexto de celda actual
utilizado por No vacío () es la que se pretende, posiblemente especificando
conjuntos y miembros adicionales como el segundo Parameter de la función.
 Non_Empty_Comportamiento NEB—Si una expresión se resuelve o no a NULL es
importante por dos razones principales. En primer lugar, la mayoría de las
aplicaciones cliente utilizan NO vacío palabra clave en una consulta. Si usted puede
decir a la Motor de ejecución de consultas que sabe que una expresión se evaluará
como null, no necesita ser calculado y puede ser eliminado de los resultados de la
consulta antes de que se evalúe la expresión. Segundo, el Ejecución de consultas
Engine puede utilizar el conocimiento de un cálculo Non_Empty_Behavior (Nebraska)
incluso cuando el NO vacío Palabra clave Es no se utiliza. Si la expresión de una
Análisis de servicios 2005 guía de rendimiento 56

celda se evalúa como nula, que no Tengo que calcularse durante la evaluación de la
consulta.
Tenga en cuenta que la distinción actual entre Motor de ejecución de consultas utiliza
una expresión NEB es realmente un artefacto de la Motor de ejecución de consultas
Diseño. Este Distinción indica si una o ambas optimizaciones Son Utilizado
dependiendo de la NEB cálculo (propiedad) se define. La primera Optimización se
llama Optimización no vacía y la segunda Optimización se llama Ejecución de
consultas Optimización del motor.
Cuando una expresión NEB se define, el autor está garantizando Que el resultado es
nulo cuando el NEB es NULL y Por consiguiente el conjunto de resultados se no NULL
cuando NEB no es Null. Esta información se utiliza internamente Ejecución de
consultas Engine para crear el plan de consulta.
TLla Uso NEB para un cálculo determinado, que Proporcionar una expresión Que
Definirs las condiciones bajo el cual Lla cálculo es garantizado para ser Vacío. La
razón por la que NEB es un ajuste avanzado es porque Lo es a menudo difícil de
Correctamente identificar las condiciones en las que Lla Cálculo está garantizado
para Ser Vacío. Si incorrectamente Establecer NEB, ya se recibir resultados de
cálculo erróneos. Como tal, Lla Primaria Consideración de usar NEB Es para
garantizar primero y paraemost que ha definido Lla Correcto Expresión, antes de
tener en cuenta los objetivos de rendimiento.
Lla NEB Expresión puede ser un tabla de hechos medida, una lista de dos o más
tabla de hechos medidas, una tupla, o un conjunto de una sola medida. Para
ayudarle a Mejor Entender Que Optimizaciones Son Utilizado para cada expresión
considere las pautas En TCapaz 2.
Tabla 2 NEB guidelines

Tipo de NEB Compatibilid Soporte de Ejemplo


cálculo Expresiones ad con la optimización
optimización no vacía
de la
ejecución de
consultas

Medida Medida Sí Sí Con las medidas de los


calculada constante miembros. DollarSales
como medidas.
ventas/medidas.
ExchangeRate,

NEB = Measures. sales

Medida (Lista de dos o No Sí Con las medidas de los


calculada mreferencias miembros. ganancias
constantes del como medidas. ventas –
mineral de la medidas. costo,
medida)
Análisis de servicios 2005 guía de rendimiento 57

NEB = {Measures. sales,


Measures. cost}

Cualquier Referencia de Sí No Ámbito [medidas]. [coste


(miembro tupla constante de la tienda];
calculado,
Conjunto de una This = mii ([Measures]. [
asignación
sola medida Tipo de cambio] > 0,
de
constante [medidas]. [Coste de la
secuencias
tienda]/[medidas]. [Tipo
de
de cambio], nulo);
comandos,
celda Non_Empty_Behavior
calculada) (this) = [medidas]. [Coste
de la tienda];

Alcance del extremo;

Además de entender las pautas para el NEB Expresión es importante considerar cómo la
expresión se aplica fo varios tipos de cálculo Operaciones.
 Escenario 1—Suma o resta: Ejemplo Medidas. M1 + o – medidas. M2. Las
siguientes pautas se aplican para la suma y resta:
 En general, usted DEBE especificar ambas medidas en Lla NEB Expresión por
razones de corrección.
 En particular, si ambas medidas pertenecen al mismo grupo de medida, puede
ser posible Especifique sólo uno de ellos en NEB Expresión Si los datos lo
soportan. Este Podría resultado en un mejor rendimiento.
 Escenario 2—Multiplicación. Ejemplo Measures. M1 * Measures. M2. Las
siguientes pautas se aplican para la multiplicación:
 En general, que NO se puede especificar ninguna NEB Expresión para este
Cálculo.
 En particular, si se garantiza que una de las medidas nunca es nula (p. ej., un
tipo de cambio de divisa), que PUEDE especificar la otra medida en NEB
Expresión.
 En particular, si Es garantiza que, para una celda determinada, ambas medidas
son nulas o ambas no son nulas (por ejemplo, pertenecen al mismo grupo de
medida), que PUEDE especificar ambas medidas en Lla NEB Expresión, O
especifique una sola medida.
 Escenario 3—División. Ejemplo - Measures. M1/Measures. M2. En este escenario,
debe especificar la primera medida (el numerador, M1) en el NEBULIZAdor.
Evaluar vacío mediante Un Grupo de medida
En algunos escenarios de diseño, es posible que pueda optimizar la removal de tuplas
vacías Por evaluar la condición vacía contra todo un grupo de medidas. En otras
palabras, Si una tupla corresponde a un registro de datos de Fact en el grupo de
medida, se incluye la tupla. Si la tupla no tiene un registro de datos de facto, Es
Excluidos. Para aplicar esta sintaxis, puede utilizar una versión especial del Existe
Función Existe (fije,, "grupo de la medida"). Tenga en cuenta que esta versión
Análisis de servicios 2005 guía de rendimiento 58

especial de Lla Existe Función realmente se componen muy diferentesTaza de la regular


Existe función e incluye un tercer parámetro de tipo Cadena donde puede especificar el
nombre del grupo de medida deseado.
Aunque este enfoque puede ser muy poderoso en la eliminación de tuplas vacías, debe
evaluar si genera el conjunto de resultados correcto. Considere las siguientes Ejemplo.
Tél ventas tabla de hechos contiene una Registro correspondiente a la compra de un
revendedor. En este registro, Monto de ventas tiene un valor de 500 mientras Descuento
Cantidad es null. TLla Escriba una consulta en la que sólo ver los revendedores Con
Descuentos, que cUnNo Utilice este enfoque desde el Revendedor Todavía existe en
Grupo de medida Si o no el revendedores Descuento La cantidad es nula. Para satisfacer
esta consulta, deberá utilizar el NO vacío palabra clave o Vacío Función siempre que
haya configurado correctamente el Procesamiento nulo Propiedad Para las medidas en
eso Grupo de la medida.
Cuando tiene escenarios en los que puede aplicar Lla Existe Función, tenga en cuenta
que Lla Existe Función omite todos los miembros calculados. Además, tenga en cuenta
que el Existe función utilizada con una especificación de grupo de medida Reemplaza el
deprecADO NonEmptyCrossJoin Función, que se utilizó en versiones anteriores de
Analysis Services para lograr una funcionalidad similar.
Quitar combinaciones de miembros vacías
Analysis Services 2005 proporciona una rica arquitectura de atributos que le permite
analizar datos a través de múltiples atributos en un momento dado. Cuando escribes
consultas que implican múltiples atributos, hay algunas optimizaciones que debe ser
consciente de Para Asegúrese de que las consultas sean evaluadas eficientemente.
 Autoexiste—Autoexiste se aplica detrás Lla escenas cada vez que Utilice el
Crossjoin función para cruzar Unirse dos jerarquías de atributos de la misma
dimensión o, más ampliamente hablando, cada vez que Crossjoin conjuntos con
común Dimensionalidad. Autoexiste Conserva Sólo los miembros que existen entre
sí para que no veas combinaciones de miembros vacías que nunca ocurren como
(Seattle, Scotland). En algunos escenarios de diseño, usted puede tener la opción de
si usted Crear dos atributos en una dimensión dada o modelarlos como dos
dimensiones separadas. Por ejemplo, en una dimensión de empleado puede
considerar si debe incluir el Departamento en esa dimensión o agregar el
Departamento como otra dimensión. Si incluye el Departamento en la misma
dimensión, puede aprovechar los autoexistentes para eliminar combinaciones vacías
de empleados y departamentos.
 Existe Función—Utilizando el Existe función en forma de Existe (Set1,
Conjunto2), puede quitar tuplas de un conjunto que no existen en otro conjunto
aprovechando CocheExiste. Por ejemplo, Existe (Customer. Customer.
Members, Client. gender. Male) sólo devuelve Hombre Clientes.
 Operador existente—Lla Existente el operador es similar al Existe Función Pero
utiliza como conjunto de filtros, la coordenada actual especificada en la consulta
MDX. Puesto que utiliza la coordenada actual, refleja todo lo que está rebanando en
su consulta.
En Figura 22, una medida calculada Cuenta un conjunto de customers definido por Lla
Existente Operador y la Cláusula WHERE de las divisiones de consulta en Clientes
varones. El conjunto de resultados de esta consulta es un conteo total de clientes
varones.
Análisis de servicios 2005 guía de rendimiento 59

Figura 22 medida calculada utilizando el operador existente

Resumiendo Datos Con Mdx


Servicios de análisis agregado naturals medidas a través de los atributos de cada
dimensión. Mientras que las medidas proporcionan un tremendo valor analítico, que
Puede escenarios de encuentro cuando desea realizar Adicional Agregaciones de datos,
sea AgregadoIng Cálculos MDX o agregadoIng subconjuntos del cubo que satisfacen
Específico reglas de negocio.
Considere las siguientes Ejemplos donde es posible que necesite agregar datos en MDX:
 Realizar Análisis de series temporales—Te hace falta a sPara Revendedor
Beneficio para todos hora Períodos en este año hasta e incluir el período de tiempo
actual.
 Agregación sets personalizados—Necesitas unDespreciadoY año tras año Ventas
Varianza a través de todos los revendedores en el USA que vendió más de
10.000 Unidades.
 Agregación Cálculos En hojas de la dimensión—You necesidad de agregar las
horas trabajado por Cada Empleado multiplicado por el empleado Horaria Tasa.
Mientras uso de MDX medidas calculadas con funciones como Suma, PromedioY
Agregado es un enfoque válido para Resumiendo datos en estos escenarios, de un
perspectiva de rendimiento, Resumiendo los datos a través de MDX no un tritarea vial y
puede Potencialmente resultado en un rendimiento lento en cubos de gran escala o
cubos con muchos cálculos MDX anidados. Si usted experimentae problemas de
rendimiento que resumen los datos en MDX, es posible que desee considerar los
siguientes Diseño Alternativas:
Crear Un cálculo con nombre En datos sOurce Vista
Dependiendo del escenario, primero debe considerar si necesita realizar agregaciones
adicionales en MDX o si puede aprovechar la agregación natural del cubo. Considerar el
margen de ganancia Cálculo. El beneficio se define por ingresos Menos Costo.
Asumiendo Que Estos dos medidas se almacenan en la misma tabla de hechos,vez de
definir un miembro calculado que se calcula sobre la marcha, puede mover el cálculo de
ganancias a una medida. En la vista origen de datos puede crear un cálculo con nombre
en la tabla de hechos que define Beneficio como Ingresos Menos Costo. Entonces, ySí
puede Agregar el cálculo con nombre como medida en tu cubo Para se agregan al igual
que cualquier otra medida.
Generally hablando, cada vez que have un miembro calculado que realiza suma y resta
desde columnas de la misma tabla de hechos, puede mover el cálculo a Medida. Si lo
Análisis de servicios 2005 guía de rendimiento 60

hace, tenga en cuenta que las operaciones SQL en datos NULL no son idénticas a MDX.
Además, even aunque puedes agregar el cálculo a la tabla de hechos, que también debe
Evaluar el impacto de las medidas adicionales en el cubo. Cada vez que se consulta un
grupo de medida, aunque sólo se solicite una medida, todas las medidas en eso Grupo
de la medida se recuperan de la Storage Engine y cargado en la dcaché ATA. Cuantas
más medidas tenga, cuanto mayor sea la demanda de recursos. Por lo tanto, es
importante evaluar los beneficios de rendimiento sobre una base caso por caso.
Nose Expresiones de medida
Las expresiones de medida son cálculos que El motor de almacenaje puede funcionar.
Usando Medida expressions, puedes multiplicar o dividir datos de dos grupos de medida
diferentes en Lla Grupo de medida Hojas Y Entonces agregar los datos como parte del
procesamiento normal del cubo. El ejemplo clásico de este es cuando usted tiene un
factor de ponderación almacenado en un grupo de medida, como las tasas de cambio, y
desea aplicar eso a otro grupo de medida como las ventas. En lugar de crear unn Mdx
cálculo que agrega Lla Multiplicación de estos dos medidas en las hojas del grupo de la
medida, puede utilizar Expresiones de medida Como una solución optimizada. Este tipo
de cálculo es perfecto para una medida Expresión Desde es algo Más difícil de lograr En
vista origen de datos gIven que el las medidas son de diversas tablas del hecho de la
fuente y probablemente tienen diferentes granularidad. TLla realizar el cálculo En vista
origen de datos, que puede utilizar una consulta con nombre a join las tablas; sin
embargo, la expresión de la medida Típicamente proporciona una solución más eficiente.
Mientras que la medida elas xpressings pueden resultar muy útiles, Nota Que Cuando se
Utilice un expresión de la medida, el motor de almacenamiento Evalúa la expresión
aislada Dela Ejecución de consultas Motor. If cualquiera de las medidas implicadas en la
expresión de la medida Dependen En Mdx Cálculos Lla Motor de almacenamiento
Evaluars la expresión de medidas sin tener en cuenta el cálculo MDXs, produciendo un
conjunto de resultados incorrecto. En este Caso, en lugar de usar una expresión de
medida, que Cna Utilice un miembro calculado o una asignación de ámbito.
Utilizar sEmiadditive Medidas Y operadores unario
En lugar de Escritura Complejo MDX calculations para manejar medidas semiaditivas,
puede utilizar el funciones agregadas semiaditivas como FirstChild, LastChildYTc.
Tenga en cuenta que slas funciones de emiadditive son una característica de SQL Server
Empresa Edición. Además Para Usando medidas semiaditivas, en aplicaciones
financieras, en lugar de escribir expresiones MDX complicadas que aplicar lógica de
agregación personalizada a Individuales Cuentas, puede utilizar operadores unario con
jerarquías padre-hijo Para aplicar una costumbre enrollar operador para cada cuenta.
Tenga en cuenta que Mientras padre-hijo Jerarquías están restringidos en su diseño de
agregación, pueden ser más rápidas y menos COMPlex que MDX personalizado. Para
obtener más información sobre las jerarquías padre-hijo, Ver Jerarquías padre-hijo En
Este libro blanco.
Mover Numérico atributos de las medidas
Puedes convertir atributos numéricos en medidas cada vez que tener un atributo como
la población o Salario que necesitas agregar. Mevez de la escritura Mdx Expresiones
para agregar estos valores, considere definir un grupo de medida independiente en el
Dimensión Mesa conTaining el atributo y Entonces definición de una medida en la
columna atributo. Así, por ejemplo, puede reemplazar suma (Customer. City. Members,
Client. Population. MemberValue) agregando un nuevo grupo de medida en el tabla de
dimensiones con una medida de la suma en la columna de la población.
Análisis de servicios 2005 guía de rendimiento 61

Subconjuntos agregados de datos


En muchos escenarios, desea agregar subconjuntos de datos que cumplen reglas
específicas del negocio. Bntes escribe una declaración de filtro compleja para identificar
el Deseado Establecer, Evaluar Si puede sustituir una expresión de filtro por Usando
Crossjoin O Existe Con miembros específicos de Su jerarquías de atributos.
Considere los siguientes ejemplos.
 Si quieres un Establecer De resellers con 81 Para 100 Enlas tácticas Y tiene el
número de empleados almacenados en un atributo separado, Puedes satisfaga
fácilmente esta solicitud con la siguiente sintaxis:
Exists ([reseller]. [ Revendedor]. miembros,
[Revendedor]. [Número de empleados]. [81]:
[Revendedor]. [Número de empleados]. [100])
En este ejemplo, Uso Existe Con un rango para el Número de empleados
jerarquía de atributos para filtrar revendedores en el 81–100 rango de
empleados. El valor de este enfoque es que se puede arbitrarLlay configure los
intervalos según las solicitudes de los usuarios.
 Si su dimensión de revendedor es grande y los intervalos que necesita calcular
son fijos y comúnmente utilizado en todos los usuarios, puede crear previamente
un atributo que agrupa los revendedores según rangos de tamaño del empleado.
Con este nuevo atributo, el Anterior la Declaración podría escribirse de la
siguiente manera:
Exists ([reseller]. [ Revendedor]. miembros,
[Revendedor]. [Employee Size Range]. [81 a 100])
 Ahora meF Quieres Lla suma de el beneficio bruto Para Revendedores Con 81
Para 100 empleados, puede satisfacer esta solicitud con los siguientes
Soluciones.
Para la gama de valores, puede utilizar la sintaxis siguiente.
Suma([Revendedor]. [Número de empleados]. [81]:
[Revendedor]. [Número de empleados]. [100],
[Medidas]. [Revendedor Ganancia bruta])
Para la Personalizado Gama Atributo, puede utilizar la siguiente sintaxis.
([Revendedor]. [Número de empleados]. [81-100],
[Medidas]. [Beneficio bruto del revendedor])
Tenga en cuenta que en ambos Soluciones, el conjunto de revendedores
es No Necesario.
Uso de una jerarquía de atributos para cortar datos sets proporciona una solución
superior a agregación de un conjunto filtrado en mvalores de propiedad de brasa,
que era una práctica común en versiones anteriores de Analysis Services.
Recuperación de un miembro propiedades se pueden lento desde cada miembro
Necesidades para ser recuperado así como su valor de la propiedad. Con jerarquías
de atributos, puede Aprovechar la agregación normal del cubo.
Análisis de servicios 2005 guía de rendimiento 62

Tomando Ventaja Dela Motor de ejecución de


consultas Caché
Durante la ejecución de una consulta MDX, el Motor de ejecución de consultas almacena
los resultados de cálculo en el Motor de ejecución de consultas Caché. Los principales
beneficios de la caché son optimizar la evaluación de los cálculos y apoyar la
reutilización de los resultados de los cálculos entre los usuarios. Para entender cómo el
Motor de ejecución de consultas utiliza el cálculo en caché durante la ejecución de la
consulta, considere el ejemplo siguiente. Usted tiene un miembro calculado llamado
margen de ganancia. Cuando una consulta MDX solicita margen de ganancia Sales
TerritoryLla Motor de ejecución de consultas almacena los valores de margen de
ganancia para cada Sales Territory, asumiendo que el Sales Territory tiene un margen
de ganancia no vacío. Para administrar el reutilización de los resultados almacenados en
caché entre los usuarios, Motor de ejecución de consultas utiliza ámbitos. Tenga en
cuenta que los ámbitos de ejecución de consultas no deben confundirse con la palabra
clave SCOPE en una secuencia de comandos MDX. Cada Motor de ejecución de consultas
Scope mantiene su propia caché y tiene las siguientes características.
 Consulta Alcance—El ámbito de consulta contiene los cálculos creados en una
consulta mediante la palabra clave WITH. El ámbito de la consulta se crea a petición
y finaliza cuando la consulta se ha terminado. Por lo tanto, la caché del ámbito de la
consulta no se comparte en consultas en una sesión.
 Sesión Alcance—El ámbito de sesión contiene los cálculos creados en una sesión
determinada mediante la instrucción CREATE. La caché del ámbito de la sesión se
reutiliza de la solicitud de solicitud en la misma sesión, pero no se comparte entre
sesiones.
 Alcance global—El ámbito global contiene el script MDX, operadores unario, y
paquete acumulativo personalizados para un conjunto determinado de permisos de
seguridad. La caché del ámbito global se puede compartir entre sesiones si las
sesiones comparten los mismos roles de seguridad.
Los ámbitos están en niveles en términos de su nivel de reutilización. El ámbito de la
consulta se considera que se el alcance más bajo, porque no tiene potencial para
reutilizarlo. El ámbito global se considera que se el alcance más alto, porque tiene el
GREAtest potencial de reutilización.
Durante la ejecución, cada consulta MDX Debe hacer referencia a los tres ámbitos para
identificar todos los cálculos potenciales y las condiciones de seguridad que pueden
impactar la evaluación del Consulta. Por ejemplo, si tiene una consulta que contiene un
miembro calculado de la consulta, para resolver la consulta, el Motor de ejecución de
consultas crea un ámbito de consulta para resolver el miembro calculado de la consulta,
crea un ámbito de sesión para evaluar los cálculos de la sesión y crea un alcance global
para evaluar el script MDX y recuperar los permisos de seguridad del usuario que envió
la consulta. Tenga en cuenta que estass Son CreadoY Sólo Si no están ya construidos.
ONCE se construyen para una sesión, Son por lo general sólo se reutiliza para las
consultas posteriores a ese cubo.
Aunque una consulta hace referencia a los tres ámbitos, sólo puede utilizar la caché de
un único ámbito. Esto significa que en un Parabase de consultas, el Motor de ejecución
de consultas debe seleccionar qué caché utilizar. Lla Motor de ejecución de consultas
siempre intenta utilizar la caché del mayor alcance posible dependiendo de si el Motor de
ejecución de consultas detecta la presencia de cálculos en un ámbito inferior.
Análisis de servicios 2005 guía de rendimiento 63

Si el Motor de ejecución de consultas detecta los cálculos que se crean en el ámbito de


la consulta, siempre utiliza la caché de ámbito de consulta, incluso si una consulta hace
referencia a cálculos desde el ámbito global. Si no hay consultalos cálculos de alcance,
pero hay sesióncálculos de alcance, el Motor de ejecución de consultas utiliza la caché
del ámbito de sesión. No importa si los cálculos de la sesión se utilizan realmente en una
consulta. Lla Motor de ejecución de consultas selecciona la caché basándose en la
presencia de cualquier cálculo en el ámbito. Este comportamiento es especialmente
relevante para los usuarios con generación MDX frenteherramientas finales. Si el
frenteherramienta final crea cualquier cálculo de ámbito de sesión, la caché global no se
utiliza, incluso si no utiliza específicamente el cálculo de sesión en una consulta
determinada.
Hay otro cálculo escenarios que impactan Cómo el motor de ejecución de consultas
Cachés cálculos. Cuando se llama a un procedimiento almacenado desde un cálculo
MDX, el motor siempre utiliza la caché de consultas. Tel suyo es Kuz los procedimientos
almacenados son no deterministas. Esto significa que no hay garantía de lo que el
procedimiento almacenado regresará. Como resultado, nada se almacenará en caché
globalmente o en la caché de sesión. Algo, los cálculos sólo se almacenará en la caché
de consultas. Además, el Siguientes Escenarios Determinar Cómo la Motor de ejecución
de consultas cálculo de cachés Resultados:
 Si habilita totales visuales para la sesión estableciendo el Predeterminado Mdx
Visual Modo propiedad de los servicios de análisis cadena de conexión a 1, el motor
de ejecución de consultas utiliza el Consulta caché para todas las consultas emitidas
en esa sesión.
 Si usted ENABLY totales visuales para una consulta Por uso del MDX VisualTotals
función, el motor de ejecución de consultas utiliza la caché de consultas.
 Las consultas que utilizan la sintaxis de Subselección (seleccione de SELECT) o se
basan en un subcubo de sesión (crear subCUBO) pueden hacer que se utilice la
caché de consultas.
 Aforma rbitrary Establece sólo puede utilizar la caché de consultas Cuando se utilizan
en una subselección, en el Donde cláusula, o en un miembro calculado Agregado
expresión referenciada en el Donde Cláusula. Un ejemplo de conjunto de formas
arbitrarias es un conjunto de Múltiples miembros de diferentes niveles de una
jerarquía padre-hijo.
Basándose en este comportamiento, cuando la carga de trabajo de consulta puede
beneficiarse de la reutilización de datos entre los usuarios, es una buena práctica definir
cálculos en el ámbito global. Un ejemplo de esto Escenario es una carga de trabajo de
informes estructurada en la que tiene algunos roles de seguridad. Por el contrario, si
tiene una carga de trabajo que requiere conjuntos de datos individuales para cada
usuario, como en un cubo de HR en el que tiene una gran cantidad de funciones de
seguridad o está utilizando la seguridad dinámica, la oportunidad de reutilizar los
resultados de cálculo a través de los usuarios se reduce y la beneficios de rendimiento
asociados con la re-utilización de la Motor de ejecución de consultas la caché no es tan
alta.

Aplicar mejores prácticas de cálculo


Mientras Muchos Recomendaciones MDX debe evaluarse en el contexto de un escenario
de diseño, Lla siguientes prácticas recomendadas son técnicas de optimización Que
aplicar a la mayoría Mdx Cálculos independientemente del escenario.
Análisis de servicios 2005 guía de rendimiento 64

Utilice la cadena de formato property


En lugar de aplicar la lógica condicional para devolver valores personalizados si la celda
está vacía o 0, utilice el Cadena de formato Propiedad. Lla Cadena de formato la
propiedad proporciona un mecanismo para formatear el valor de una celda. Puede
especificar una expresión de formato definida por el usuario para valores positivos,
valores negativos, ceros y nulos. Lla Cadena de formato la propiedad display tiene
considerablemente menos sobrecarga que escribir un cálculo o una asignación que debe
invocar el Motor de ejecución de consultas. Tenga en cuenta que su frentela herramienta
end debe admitir esta propiedad.
Evitar Tarde-funciones de enlace
Al escribir MDX Cálculos contra grandes conjuntos de datos que implican iteraciones
múltiples, Evite hacer referencia a las funciones de enlace tardío Quiénlos metadatos se
puedenno se debe evaluar hasta el tiempo de ejecución. Examenples de estas funciones
incluyen: LinkMember, StrToSet, StrToMember, StrToValue, Y LookupCube.
Porque son evaluado en ejecución hora Lla Motor de ejecución de consultas Cnano
seleccionar el más eficiente Ruta de ejecución.
Eliminar Redundancia
Cuando se Uso una función Que tiene argumentos predeterminados como Time.
CurrentMember, puede experimentar beneficios de rendimiento si no redundantey
especifique el argumento predeterminado. Para Ejemplo Uso PeriodsToDate ([Date]. [
Calendario]. [Calendar año]) en lugar de PeriodsToDate ([Date]. [ Calendario]. [Año
calendario], [Fecha]. Calendar. CurrentMember). To aproveche este beneficio, debe
asegurarse de que sólo tiene una jerarquía de tiempo predeterminada En su solicitud.
De lo contrario, debe explicitly especificar el miembro en el cálculo.
Ordenar eXpression arguments
Al escribir expresiones de cálculo como "expr1 * expr2", asegúrese de que la expresión
que barre el área/volumen más grande en el espacio del cubo Y Tener los valores más
vacíos (NULL) está en el lado izquierdo. Por ejemplo, escriba "sales * ExchangeRate" en
lugar de "ExchangeRate * sales", y "sales * 1,15" en lugar de "1,15 * sales". Esto se
debe a que el Motor de ejecución de consultas itera la primera expresión OVER la
segunda expresión. Lla más pequeño el área En la segunda expresión, menos iteraciones
Lla Motor de ejecución de consultas necesita realizarse, y cuanto más rápido sea el
rendimiento.
Uso es
Cuando necesite comprobar el valor de un miembro, utilice el [cliente] de MII. Empresa
ES [Microsoft] y no [cliente] de MII. [Compañía]. Name = "Microsoft". La razón por la
que es más rápido es porque el Motor de ejecución de consultas no necesita dedicar
tiempo extra a traducir miembros en cadenas.
Análisis de servicios 2005 guía de rendimiento 65

Ajuste del rendimiento de procesamiento


El procesamiento es la operación general que carga datos de uno o más Datos fuentes
en uno o más objetos de Analysis Services. Mientras Los sistemas OLAP no son
Generalmente Juzgado por lo rápido que procesan Datos, Procesamiento Rendimiento
Impactos la rapidez con la que los nuevos datos está disponible para la consulta.
Mientras que emuy aplicación tiene diferentes requisitos de actualización de datos,
Desde actualizaciones mensuales hasta actualización de datos "casi en tiempo real"Tmás
rápido el rendimiento de procesamiento, los usuarios más pronto Cna consulta datos
refrescados.
Tenga en cuenta que el procesamiento de datos "casi en tiempo real" se considera que
se un escenario de diseño especial que tiene su propio conjunto de técnicas de ajuste de
rendimiento. Para más información sobre este tema, Ver Casi en tiempo real
actualizaciones de datos.
Para ayudarle a satisfacer eficazmente Su los requisitos de actualización de datos, a
continuación se ofrece una visión general del procesando temas de performance que se
discuten en esta sección:
Descripción de la arquitectura de procesamiento – Para los lectores que no estén
familiarizados con la arquitectura de procesamiento de Analysis Services, esta sección
proporciona una visión general de los trabajos de procesamiento y cómo se aplican a las
dimensiones y las particiones. Optimización del rendimiento de procesamiento Requiere
EntenderIng Cómo Estos Trabajos se crean, Utilizado, y administrado durante la
actualización de Análisis de objetos de servicios.
ReFrescando dimensiones eficientemente – El rendimiento objetivo de Dimensión
Procesamiento es que actualizar datos de cota en an eficiente manera que No
Negativamente impactar el Consulta actuación de Dependiente Particiones. Tél que sigue
Técnicas para lograr este objetivo se discuten en este Sección: Optimizar Sql Fuente
Consultas, reducir la sobrecarga de atributos, Y Preparando Cada Dimensión Atributo
Para Eficientemente Manejar inserts, actualizaciones, eliminaciones según sea necesario.
ReFrescar particiones eficientemente – Lla Rendimiento Objetivo de procesamiento de
particiones Es para actualizar datos de hechos y agregaciones en unn eficiente manera
que satisface Su General Datos Actualizar Requisitos. Tél siguiendo las técnicas para
lograr este objetivo se discuten en este Sección: optimización del origen de SQL
Consultas usando múltiples particiones, Eficazmente hdatos andling inserciones,
actualizaciones y eliminaciones, Y Evaluar el uso de agregaciones rígidas versus
flexibles.

Entender la arquitectura de procesamiento


Processing se describe típicamente en Lla Simple Términos de carga datos de uno o más
orígenes de datos en uno o más objetos de Analysis Services. Si bien esto es
generalmente cierto, Servicios de análisis proporciona la capacidad de realizar Un Amplio
Gama de operaciones de procesamiento para satisfacer los requerimientos de
actualización de datos de varios entornos de servidor y configuraciones de datos.

Procesamiento visión general del trabajo


Para administrar las operaciones de procesamiento, Análisis Servicios Utiliza
Centralmente Controlado Trabajos. Un Procesamiento Job es una unidad genérica de
trabajo generada por una solicitud de procesamiento. Tenga en cuenta que aunque los
Análisis de servicios 2005 guía de rendimiento 66

trabajos son un componente básico de la arquitectura de procesamiento, los trabajos no


sólo se utilizan durante el procesamiento. Para obtener más información sobre cómo se
utilizan los trabajos durante la consultaVer Arquitectura de trabajo.
Desde una perspectiva arquitectónica, un trabajo puede ser dividido en trabajos de
padres y trabajos de niños. Para un objeto determinado, puede tener varios niveles de
trabajos anidados dependiendo del lugar en el que se encuentre el objeto en la jerarquía
de la base de datos. El número y tipo de trabajo de los padres y de los hijos depende de
1 el objeto que Son procesamiento como una cota, un cubo, un grupo de medida o una
partición, Y 2 la operación de procesamiento que está solicitando, como un ProcessFull,
ProcessUpdateO ProcessIndexes. Por ejemplo, cuando se emite un ProcessFull
Fora Grupo de medida, se crea un trabajo padre para el Grupo de medida con los
trabajos secundarios creados para cada partición. Para cada partición, se generan una
serie de trabajos infantiles para llevar a cabo la ProcessFull Dela datos de hechos y
agregaciones. Además, Analysis Services implementa dependencias entre Trabajos. FO
Ejemplo los trabajos de cubo dependen trabajos de dimensión.
Los más significativos oportunidades para afinar el rendimiento Implican Lla
Procesamiento trabajos para el Núcleo Procesamiento objects: dimensiones y tabiques.

Dimensión procesamiento de trabajos


Durante Lla processing De Dimensiones MOLAP, los trabajos se utilizan para Extracto,
índice, Y datos persistentes En una serie de dimensiones Tiendas. Para obtener más
información sobre la estructura y el contenido de los almacenes de dimensiones, Ver
Recuperación de datos: dimensiones. Para crear estos almacenes de dimensiones, Lla
Motor de almacenamiento Utiliza Lla serie de trabajos mostrados en Figura 23.

Figura 23 Dimensión processing jObs


Crear almacenes de atributos
Para cada atributo en Un Dimensión se crea una instancia de un trabajo para Extracto Y
Persisten Lla Atributo Miembros en un atributo Tienda. Como se indicó anteriormente, el
almacén de atributos Principalmente consiste en el almacén dominante, el almacén
conocido, y el almacén de la relación. Mientras que Analysis Services es capaz de
procesar múltiples atributos en paralelo, requiere que an se debe mantener el orden de
las operaciones. El orden de las operaciones está determinado por las relaciones de
Análisis de servicios 2005 guía de rendimiento 67

atributo de la cota. La rtienda de júbilo define la relaciones del atributo con otros
atributos. Para que esta tienda ser construidos Correctamente para un atributo
determinado, Todos Dependiente Atributos ya debe ser procesado Antes Su el almacén
de relaciones está construido. Para proporcionar el flujo de trabajo correcto, el motor de
almacenamiento analiza las relaciones de atributos en el dimensión, evalúa las
dependencias entre Lla Atributos, y luego crea una árbol de ejecución que indica la
orden en WHlos atributos ICH pueden procesarse, incluyendo esos atributos que se
pueden procesar en Paralelo.
Figura 24 Muestra un ejemplo árbol de ejecución para Un Dimensión de tiempo. Las
flechas sólidas representan las relaciones de atributo en la cota. Las flechas discontinua
representan la relación implícita de cada atributo con el atributo ALL. Tenga en cuenta
que la dimensión se ha configurado utilizando relaciones de atributos en cascada que es
una práctica recomendada para todos los diseños de dimensiones.

Figura 24 Ejecución tRee ewww.xample.ch


En este Ejemplo, el atributo All procede primero, Dado que no tiene dependencias a otro
atributo, seguido por el año fiscal y el año calendario Atributos, que puede ser procesado
en paralelo. Los otros atributos proceden de acuerdo con las dependencias del árbol de
ejecución con el atributo de clave principal siempre Ser procesado último ya que siempre
ha al menos un Atributo Relación, excepto cuando es el único atributo en la dimensión.
El tiempo que se tarda en procesar un atributo es Generalmente dependiente en 1) el
número de miembros y 2) el número de Atributo Relaciones. Si bien no puede controlar
el número de miembros de un atributo dado, puede Mejore el rendimiento del
procesamiento utilizando relaciones de atributos en cascada. Esto es Especialmente
crítico para el atributo key ya que tiene la mayoría de los miembros y todos los demás
trabajos (jerarquía, descodificación, índices de mapa de bits) lo están esperando para
completar. Para obtener más información acerca de la importancia de utilizar relaciones
de atributos en cascada, consulte Identificación de attriburelaciones te.
Crear almacenes de decodificación
Se utilizan almacenes decodificadores extensivamente por el SPararabia Engine. Durante
la consulta, se utilizan para recuperar datos de la cota. Durante el proceso, se utilizan
para construir Lla de la dimensión índices de mapa de bits.
Análisis de servicios 2005 guía de rendimiento 68

Crear almacenes de jerarquía


Un almacén de jerarquías es una representación persistente de la estructura del árbol.
Para cada jerarquía natural de la dimensión, se crea una instancia de un trabajo para
crear los almacenes de jerarquía. Para obtener más información sobre los almacenes de
jerarquía, Ver Recuperación de datos: dimensiones.
Generar índices de mapa de bits
Para localizar de forma eficiente los datos de los atributos relación sarrancó en tiempo
de consulta, el motor de almacenamiento crea índices de mapa de bits en el tiempo de
procesamiento. Para los atributos con un número muy grande de DataIDs, los índices de
mapa de bits pueden tardar algún tiempo en procesarse. En la mayoría de los
escenarios, los índices de mapa de bits proporcionan beneficios de consulta
significativos; Sin embargo Cuando tienes altos atributos de cardinalidad, el beneficio de
consulta que proporciona el índice de mapa de bits Puede no supere el costo de
procesamiento de crear el índice de mapa de bits. Para obtener más información sobre
este escenario de diseño, Ver Reducir sobrecarga de atributos.

Dimensión-procesar comandos
Cuando necesite realizar una Proceso operación en un dimensión, se emite Dimensión
Procesamiento Comandos. Cada comando de procesamiento Crea uno o más trabajos
para realizar las operaciones necesarias.
Desde una perspectiva de rendimiento, los siguientes Dimensión procesar comandos son
los más importantes:
 Un ProcessFull Comando Descartes Todos contenido de almacenamiento de la
Dimensión y los reconstruye. Detrás de las escenas, ProcessFull Ejecuta todos los
trabajos de procesamiento de cotas y realiza una ProcessClear para descartar el
contenido de almacenamiento de todas las particiones dependientes. Esto significa
que cada vez que realice un ProcessFull de una dimensión, es necesario realizar
una ProcessFull en particiones dependientes para volver a poner el cubo en línea.
 ProcessData Descartes Todos contenido de almacenamiento de la Dimensión y
reconstruye Sólo Lla almacenes de atributos y jerarquías. ProcessData es un
componente de Lla ProcessFull Operación. ProcessData también borra particiones.
 ProcessIndexes requiere que un Dimensión Ya tiene almacenes de atributos y
jerarquías construidos. ProcessIndexes preserva los datos en estas tiendas Y
Entonces reconstruye los índices de mapa de bits. ProcessIndexes es un
componente de la ProcessFull Operación.
 ProcessUpdate no descarta el contenido de almacenamiento de cotasDesemejante
ProcessFull. Algo, se aplica Actualizaciones inteligentemente para preservar las
particiones dependientes. Más específicamente, ProcessUpdate envía consultas SQL
para leer toda la Dimensión tabla y Entonces aplica cambios a los almacenes de la
dimensión. Un ProcessUpdate puede manejar Insertos Actualizaciones Y
Canceladuras dependiendo de la tipo de relación de atributoss (rígido versus flexible)
En la dimensión. Tenga en cuenta que ProcessUpdate caerá No válido Agregaciones
Y Índices Requerir que tome acción para reconstruir las agregaciones para mantener
el rendimiento de las consultas. Para más información sobre Aplicar
ProcessUpdate, Ver Evaluación de agregados rígidos versus flexibles.
 ProcessAdd Optimiza ProcessUpdate en escenarios en los que sólo es necesario
insertar nuevas mBrasas. ProcessAdd no elimina ni actualizar los miembros
Análisis de servicios 2005 guía de rendimiento 69

existentes. Lla beneficio del rendimiento de ProcesoAñadir es que usted puede


utilizar una tabla de origen diferente o vista origen de datos consulta con nombre
Que restringir el filas de la tabla de dimensiones de origen sólo para volver las
nuevas filas. Esto elimina la necesidad de leer todos los datos de origen. Además
ProcessAdd también conserva agregaciones flexibles.
Para una más amplia lista de comandos de procesamiento, Ver Lla Analysis Services
2005 arquitectura de procesamiento libro blanco ubicado en la red de desarrolladores de
Microsoft (Msdn).

Partición-trabajos de procesamiento
Durante Partición procesamiento, los datos de origen se extraen y se almacenan en
disco uso de la serie de trabajos mostrados en la figura 25.

Figura 25 Partición processing jObs


Proceso fdatos de Act
Datos de hechos Es procesado con tres subprocesos simultáneos que realizan las
siguientes tareas:
 Enviar Instrucción SQLs para extraer Datos De Datos Fuentes.
 Mira up dllaves IMENSIÓN en la dimensión almacena y rellena el búfer de
procesamiento.
 Cuando el búfer de procesamiento está lleno, escriba el búfer al disco.
Durante Lla Procesamiento de datos de hecho, un potencial Embotellamiento Quizás Lla
Fuente Sql Declaración. Para las técnicas de optimizar la instrucción SQL de origen, Ver
Optimización de la consulta de origen.
Construir aggregations Y bitmap indexes
Las agregaciones se construyen en memoria durante el procesamiento. Si bien pocas
agregaciones pueden tener poco impacto en el rendimiento de las consultas, las
agregaciones excesivas pueden aumentar el tiempo de procesamiento sin mucho valor
agregado en el performance de las consultas. Como resultado, se debe tener cuidado de
asegurar que su diseño de agregación admita la ventana de procesamiento requerida.
Para obtener más información sobre cómo decidir qué agregaciones construir, Ver
Adopción de una estrategia de diseño de agregación.
Si las agregaciones no caben en la memoria, los trozos se escriben Para archivos
temporales y se fusionó al final del proceso. Los índices de mapa de bits se construyen
sobre los datos de hecho y de agregación y se escriben en disco en un segmento por
segmento.
Análisis de servicios 2005 guía de rendimiento 70

Partición-comandos de procesamiento
Cuando se necesita realizar una operación de proceso en una partición, se emite
Partición procesando comandos. Cada comando de procesamiento crea uno o más
trabajos para realizar las operaciones necesarias.
Desde una perspectiva de rendimiento, los siguientes Partición los comandos de
procesamiento son los más importantes:
 ProcessFull descarta el contenido de almacenamiento de la partición y los
reconstruye. Detrás de las escenas, Un ProcessFull Ejecuta ProcesoDatos Y
ProcesoÍndices Trabajos.
 ProcessData descarta el contenido de almacenamiento del objeto y reconstruye
sólo el datos de hechos.
 ProcessIndexes requiere que un la partición ya tiene sus datos construidos.
ProcessIndexes preserva los datos y cualquier agregación existente y Bits índices y
Crea Cualquier Falta Agregacións o bíndices itmap.
 ProcessAdd internamente crea una partición temporal, la procesa con el destino
datos de hechos, y luego lo fusiona con el existente Partición. Tenga en cuenta que
ProcessAdd Es el nombre De el comando XMLA. Este comando es Expuesto en
estudio de desarrollo de inteligencia de negocios y SQL Server Management Studio
Como ProcessIncremental.
Para una lista más completa de comandos de procesamiento, Ver Analysis Services 2005
arquitectura de procesamiento libro blanco en MSDN.

Ejecutar procesamiento de trabajos


Para administrar dependencias entre puestos de trabajo, el análisis Server de servicios
organiza trabajos en un programa de procesamiento. Las dimensiones, por ejemplo,
siempre deben ser procesadas primero, dada la dependencia inherente de las particiones
en las dimensiones.
Los trabajos sin dependencias se pueden ejecutar en paralelo siempre que existan
recursos del sistema disponibles para realizar los trabajos. Por ejemplo, se pueden
procesar varias dimensiones en paralelo, se pueden procesar varios grupos de medida
en paralelo y se pueden procesar en paralelo varias particiones dentro de un grupo de
medida. Analysis Services realiza tantas operaciones como sea posible en paralelo
basándose en los recursos disponibles y los valores de las tres propiedades siguientes:
el CoordinatorExecutionMode propiedad del servidor y el MaxParallel comando de
procesamientoY Lla Threadpool\Process\MaxThreads Server (propiedad). Para
obtener más información sobre estas propiedades, Ver Maximizar el paralelismo durante
el procesamiento En este blanco Papel.
Además, antes de ejecutar Un Procesamiento Trabajo, Servicios de análisis Verifica la
memoria disponible. Eel trabajo ACH solicita una cantidad específica de memoria del
gobernador de memoria de Analysis Services. Si no hay suficiente memoria disponible
para cumplir la solicitud de memoria, el gobernador de memoria puede bloquear el
trabajo. Este Comportamiento puede ser especialmente Relevante en entornos con
limitaciones de memoria cuando Problema una solicitud de procesamiento que realiza
múltiples operaciones intensivas, como un ProcessFull en una partición grande que
contiene un diseño de agregación compleja. Para más información sobre Optimizar Este
escenario, Ver Memoria de afinación para el proceso de partición.
Análisis de servicios 2005 guía de rendimiento 71

En Situaciones donde realiza las operaciones de consulta y procesamiento al mismo


tiempo, largola consulta en ejecución puede bloquear una operación de procesamiento y
hacer que falle. Cuando te encuentras con esto, el operación de procesamiento cancela
de forma inesperada, devolver un mensaje de error genérico. Durante la ejecución de un
Consulta Análisis Servicios toma una lectura Base confirmar bloqueo. Durante
Procesamiento Análisis Servicios requiere un Escribir commit de base de datos
Cerradura. Lla ForceCommitTimeout Server (propiedad) Identifica la cantidad de
tiempo que espera una operación de procesos bntes matando bloqueos de lectura de
bloqueo. Vez Lla umbral de tiempo de espera se ha alcanzado, todas las transacciones
que sostienen la cerradura fallarán. El valor predeterminado de esta propiedad es
30,000 milisegundos (30 segundos). Tenga en cuenta que este propiedad puede ser
Modificado en el archivo de configuración msmdsrv. ini; sin embargo, es generalmente
No Recomienda que te Modify este ajuste. Rpadre, Lo es Simplemente importante
entender el impacto de largoejecutar consultas En Concurrente Procesamiento para
ayudarle a Solucionar problemas cualquier fallo de procesamiento inesperado.

Rdimensiones efreshing Eficientemente


Como se indicó anteriormente, el objetivo de rendimiento del procesamiento de
dimensiones es actualizar los datos de cota de una manera eficiente que no impacte
negativamente en el rendimiento de la consulta de las particiones dependientes. Para
lograr Este, puede realizar las siguientes técnicas: Optimizar Consultas de origen SQL,
Reducir sobrecarga de atributos y Preparar cada atributo de dimensión para gestionar de
forma eficiente insertos, actualizaciones, eliminaciones, según sea necesario.

Optimizar el consulta de origen


Durante el procesamiento, puede optimizar la extracción de Dimensión datos de origen
mediante las siguientes técnicas:
Utilizar proveedores OLE DB a través de proveedores de datos .NET
Dado que el Runtime de Analysis Services está escrito en código nativo, los proveedores
OLE DB ofrecen beneficios de rendimiento Proveedores de datos .NET. Cuando se utiliza
Proveedores de datos .NET, los datos deben calcularse entre el espacio de memoria
administrado de .NET y el espacio de memoria nativo. Dado que los proveedores OLE DB
ya están en código nativo, proporcionan un benefi cio de rendimiento significativots
over.NET los proveedores de datos y deben ser utilizados siempre que sea posible.
Uso relaciones de atributos para optimizar el procesamiento de atributos en
múltiples orígenes de datos
Cuando una cota proviene de múltiples orígenes de datos, utilizando Cascada las
relaciones de atributos permiten al sistema segmentar atributos durante el
procesamiento según el origen de datos. Si Un Atributoes las relaciones clave, nombre y
atributo provienen de la misma base de datos, el sistema puede optimizar la consulta
SQL para ese atributo consultando Sólo una base de datos. Sin relaciones de atributos
en cascada, el servidor SQL Server Openrowset Función se utiliza para fusionar las
secuencias de datos. Lla Openrowset Función proporciona un mecanismo para Acceso
datos de múltiples orígenes de datos. Para eOh attribute, un separado
OPENROWSETtabla derivada se utiliza. En esta situación, el procesamiento del atributo
de clave Es extremadamente lento desde debe tener acceso a varias tablas derivadas de
OPENROWSET.
Análisis de servicios 2005 guía de rendimiento 72

Melodía la propiedad del grupo de procesamiento


Cuando se procesa una cota, el comportamiento predeterminado es emitir una
instrucción SQL separada que recupera un conjunto distinto de miembross Para cada
atributo. Este comportamiento es controlado por el Grupo de procesamiento
Propiedad, que se establece automáticamente en ByAttribute. En Más Escenarios
ByAttribute proporciona el mejor funcionamiento de proceso; Sin embargo hay algunos
escenarios de nicho donde es puede ser útil para cambiar esta propiedad a ByTable. En
ByTable, Analysis Services emite un instrucción SQL única En Un Parabase de la tabla
para extraer una clara conjunto de Todos Dimensión Atributos. Este Es Potencialmente
beneficioso en escenarios en los que necesidad de procesar muchos atributos de alta
cardinalidad y usted está esperando un largo tiempo para el selecto distinto a completar
para cada atributo. Tenga en cuenta que cuando ByTable se utiliza, el servidor cambia
su comportamiento de procesamiento para utilizar un algoritmo de paso múltiple. UN
algoritmo similar también se utiliza para dimensiones muy grandes cuando las tablas
hash de todos los atributos relacionados no caben en la memoria. El algoritmo puede ser
muy costoso en algunos escenarios porque Servicios de análisis Debe leer y almacenar
en disco todos los datos de la tabla en múltiples almacenes de datos, y luego iterar
sobre él para cada atributo. Por Lo beneficio de rendimiento que gana para Rápidamente
evaluar la La instrucción SQL podría ser contrarrestada por los otros pasos de
procesamiento. Así Mientras ByTable tiene el potencial de ser rápidoHge, sólo es
apropiado en escenarios donde usted cree que la emisión de un SQL sTate funciona
significativamente mejor que emitir varias sentencias SQL más pequeñas. Además,
nOTA que Si utiliza ByTable, ya se Ver mensajes de miembro duplicados al procesar la
dimensión Si usted have configurado el KeyDuplicate Propiedad Para
ReportAndContinue O ReportAndStop. En este escenario, estos Duplicado los
mensajes de error son falsos positivos resultantes del hecho de que la instrucción SQL
ya no devuelve un conjunto distinto de miembros para Cada Atributo. Para entender
mejor cómo ocurren estos duplicados, cInsider el siguiente ejemplo. You tiene una
dimensión de cliente Mesa que ha Tres Atributos: clave de cliente, nombre de cliente, y
el género. Si establece el Processing Group propiedad a ByTable, un SQL sTate se
utiliza para extraer todos tres atributos. Dada la granularidad de la instrucción SQL,n
Este escenario, se vea mensajes de error duplicados para el atributo de género si ha
establecido el KeyDuplicate propiedad para elevar Un Error. Otra vez, These mensajes
de error son Probable falsos positivos; sin embargo, debe Todavía Examinar los
mensajes para asegurar que no Son no duplicado inesperado Valores en sus datos.

Reducir sobrecarga de atributos


Cada atributo que se incluye en una cota impacta el tamaño del cubo, el tamaño de la
dimensión, el diseño de la agregación y el rendimiento de procesamiento. Siempre que
identifique un atributo que no usarán los usuarios finales, elimine el atributo
completamente de la dimensión. Una vez que haya eliminado los atributos extraños,
puede aplicar una serie de técnicas para optimizar la Procesamiento De atributos
restantes.
Use el KeyColumns y el NameColumn Propiedades Eficazmente
Cuando se agrega un nuevo atributo a una cota, se utilizan dos propiedades para definir
el atributo. Lla KeyColumns propiedad especifica uno o más campos de origen que
identifican de forma única cada instancia del atributo y la NameColumn propiedad
especifica el campo de origen que se mostrará a los usuarios finales. Si no especifica un
Análisis de servicios 2005 guía de rendimiento 73

valor de Lla NameColumn Propiedad, se se establece automáticamente en el valor de la


KeyColumns Propiedad.
Analysis Services proporciona la capacidad de Fuente Lla KeyColumns Y NameColumn
propiedades de distintas columnas de origen. Esto es útil cuando se tiene una sola
entidad como un producto que se identifica con dos atributos diferentes: una clave
sustituta y un nombre descriptivo del producto. Cuando los usuarios desean cortar datos
por productos, pueden encontrar que la clave sustituta carece de relevancia comercial y
optará por utilizar el nombre del producto en su lugar.
Desde una perspectiva de procesamiento, es una práctica recomendada asignar un
campo de origen numérico a la KeyColumns propiedad en lugar de una propiedad
String. No solo puede esto reduzca el tiempo de procesamiento, en algunos escenarios
es Cna también reducen el tamaño de la cota. Esto es especialmente cierto para los
atributos que tienen un gran número de miembros, es decir,, mayor que 1 millones de
miembros.
En lugar de utilizar un atributo separado para almacenar un nombre descriptivo, puede
utilizar Lla NameColumn propiedad para mostrar un campo descriptivo a los usuarios
finales. En el ejemplo del producto, esto significa que puede asignar la clave sustituta
Para Lla KeyColumns propiedad y utilice el nombre del producto Para Lla
NameColumn Propiedad. Esto elimina la necesidad del atributo name ajeno, haciendo
su diseño más eficiente a la consulta y al proceso.
Quitar índices de mapa de bits
Durante el procesamiento del atributo de clave principal, los índices de mapa de bits se
crean para cada atributo relacionado. Creación de los índices de mapa de bits para el
primario Clave puede tomar hora Si tiene uno o más atributos relacionados con alta
cardinalidad. En el momento de la consulta, los índices de mapa de bits de estos
atributos Son no es útil para acelerar la recuperación ya que el motor de
almacenamiento todavía Debe tamizar a través de un gran número de Distintas Valores.
Por ejemplo, la clave principal de la dimensión del cliente identifica de manera exclusiva
a cada cliente por número de cuenta; Sin embargo Usuarios También desea rebanar y
dados los datos Por el número de seguro social del cliente. Cada número de cuenta de
cliente tiene un uno-a-una relación con un número de seguro social del cliente. Para
evitar pasar tiempo construyendo índices de mapa de bits innecesarios para Lla
seguridad social Número atributo, es posible desactivar Su índices de mapa de bits
estableciendo el AttributeHierarchyOptimizedState propiedad a No optimizado.
Gire apagado Lla jerarquía de atributos y utilizar propiedades de miembro
Como alternativa a las jerarquías de atributos, mbrasa propiedades Proporcionar un
diferente mecanismo para eXpose información de dimensión. Para un atributo dado, las
propiedades de miembro se crean automáticamente para cada relación de atributos.
Para el atributo de clave principal, esto significa que cada atributo que está directamente
relacionado con la clave principal está disponible como una propiedad miembro del
atributo de clave principal.
Si usted Sólo desea acceder a un atributo como Miembro Propiedad una vez que verificar
que el correcto Relación Es en su lugar, puede deshabilitar la jerarquía del atributo
estableciendo el AttributeHierarchyEnabled propiedad a Falso. Desde una
perspectiva de procesamiento, la desactivación de la jerarquía de atributos puede
mejorar el rendimiento y disminuir el tamaño del cubo porque el atributo ya no se
indizará ni se agregará. Esto puede ser especialmente útil para los atributos de alta
Análisis de servicios 2005 guía de rendimiento 74

cardinalidad que tienen un REL uno-a-unoationship con la clave principal. Atributos de


alta cardinalidad como números de teléfono y Direcciones típicamente no requieren
rebanar-y-dice analysis. Al deshabilitar la jerarquías para estos atributos y el acceso a
ellos a través de propiedades de miembro, puede guardar el tiempo de procesamiento y
reducir el tamaño del cubo.
Decidir Si desea deshabilitar la jerarquía del atributo requiere Que que cInsider Ambos
los impactos de la consulta y el procesamiento del uso de propiedades de miembro.
Propiedades de miembro No colocarse en un eje de consulta de la misma manera que
las jerarquías de atributos y jerarquías de usuarios. Para consultar una propiedad de
miembro, debe consultar las propiedades del atributo que contiene la propiedad
Member. Por ejemplo, si Requieren el número de teléfono de trabajo de un cliente, debe
consultar las propiedades del cliente. Como conveniencia, la mayoría frenteherramientas
finales Fácilmente Mostrar Propiedades de miembro en sus interfaces de usuario.
En general, la consulta de propiedades de miembro puede ser más lenta que consultar
jerarquías de atributos porque las propiedades del miembro no se indizan y no
participan en agregaciones. El impacto real del rendimiento de la consulta depende de
cómo vaya a utilizar el atributo. Si ustedlos usuarios de r quieren Para rebanada y dados
datos por Ambos número de cuenta y descripción de la cuenta, desde una perspectiva
de consulta Quizás mejor tener la jerarquía de atributosVenir en su lugar y la
eliminación de los índices de mapa de bits Si Procesamiento Rendimiento es un
problema. Sin embargo, si simplemente está mostrando el número de teléfono de
trabajo en una base única para un cliente en particular y está gastando grandes
cantidades de tiempo en el procesamiento, la inhabilitación de la jerarquía de atributos y
el uso de una propiedad de miembro proporciona una buena alternativa.

Optimizar insertos de dimensión, ActualizacionesY


Elimina
Las actualizaciones de datos de dimensión se pueden manejar generalmente vía Tres
Procesamiento Operaciones:
 ProcessFull—Erases y reconstruye THe datos y estructura de la dimensión.
 ProcessUpdate—Implements inserta, actualiza y elimina basándose en los tipos de
relaciones de atributos de la cota. Información sobre el Diverso Tipos de la relación
de atributoss se incluye más adelante en esta sección.
 ProcesoAñadir—Proporciona una versión optimizada de ProcesoActualización
Para Sólo gestionar inserciones de datos.
As usted planea Un Dimensión Actualizar Además de seleccionar un proceso Operación
usted debe También evaluar cómo eOh atributo y Atributo Relación se espera que
cambie con el tiempo. Más específicamente, eMuy la relación de atributos tiene un Tipo
propiedad que Determina Cómo la relación de atributos debe responder a los datos
Cambios. Lla Tipo propiedad puede IETsu puesto en flexible o rigid Donde flexible es la
configuración predeterminada para Cada Atributo Relación.
Usar relaciones flexibles
Relaciones flexibles Permiso que hagas una variedad de cambios de datos sin requerir
que usted Utilice un ProcessFull Para Completamente Reconstruya la dimensión cada
vez que realice un cambio. Recuerde que tan pronto como implemente un ProcessFull
en una dimensión, el cubo es tomados offline y usted debe realizar una ProcessFull En
cada partición dependiente con el fin de restaurar la capacidad de consultar el cubo.
Análisis de servicios 2005 guía de rendimiento 75

Para los atributos con relaciones flexibles, insertos, actualizaciones y eliminaciones se


pueden manejar Por Usando Lla ProcessUpdate Comando. Lla ProcessUpdate
comando permite para mantener el cubo "en línea" mientras que los cambios de datos
se hacen. Por defecto, cada Atributo rla euforia se establece en flexible, aunque puede
no ser siempre la mejor opción en cada escenario de diseño. Usando frelación lexibles Es
Apropiado Cuando que espera un atributo para tener cambios de datos frecuentes y no
quiere experimentar la Impactos de realizar Un ProcessFull en la dimensión y el cubo.
Por ejemplo, si espera que los productos Frecuentemente Cambiar De una categoría a
otra, usted puede decidir mantener la relación flexible entre producto y categoría para
que sólo tenga que realizar un ProcessUpdate Para implementar el cambio de datos.
El compromiso con el uso de relaciones flexibles es su impacto en las agregaciones de
datos. Para obtener más información sobre las agregaciones flexibles, Ver Evaluación de
agregados rígidos versus flexibles.
Tenga en cuenta que en Algunos Procesamiento Escenarios las relaciones flexibles
pueden “hRespecto datos no válidos Cambios en tu Dimensión. Como se indicó En
Identificar relaciones de atributos Sección, siempre que utilice relaciones de atributos,
debe verificar que cada atributo KeyColumns la propiedad identifica de forma única a
cada miembro de atributo. Si el KeyColumns la propiedad no identifica de forma
exclusiva a cada miembro, los duplicados encontrados durante el procesamiento se
omiten de forma predeterminada, lo que resulta en resúmenes de datos incorrectos. Más
específicamente, Cuando Servicios de análisis encuentra un miembro duplicado, escoge
un arbitrario Miembro dependiendo de la técnica de procesamiento que ha seleccionado.
Si realiza un ProcesoCompleto, selecciona el primer miembro que encuentra. Si realiza
un ProcessUpdate, selecciona el último miembro que encuentra. Para evitar este
escenario, siga las mejores prácticas De Siempre Asignar Lla KeyColumns propiedad
con una columna o combinación de columnas que Unique identifica Lla Atributo. Si usted
sigue esta práctica, no se encontrará con este Problema. Además es una buena práctica
cambiar la configuración de error predeterminada para que ya no ignore los duplicados.
Para lograr esto, configure el KeyDuplicate propiedad de IgnoreError Para
ReportAndContinue O ReportAndStop. Con este cambio, se le puede alertar de
cualquier situación en la que se detecten duplicados. Sin embargo, esta opción puede
darle falsos positivos en algunos casos (p.ej., Procesamiento de ByTable). Para más
información, Ver Optimización de la consulta de origen.
Uso relaciones rígidas
Para los atributos con relaciones rígidas, se pueden manipular insertos Por usando un
ProcessAdd O ProcessUpdate a la dimensión; sin embargo, las actualizaciones y
eliminaciones requieren un ProcessFull de la dimensión y, en consecuencia, requerir un
ProcessFull Dela Dependiente Particiones. Como tales, las relaciones rígidas son Más
apropiado para atributos que han cero o infrecuentes actualizaciones o eliminaciones.
Por ejemplo, en una dimensión de tiempo Usted puede Asignar una relación rígida entre
el mes y el trimestre Desde los meses que pertenecen a un trimestre dado No Cambiar.
If desea asignar una relación como rígida (Recuerde que las relaciones son flexible por
defecto), debe asegurarse de que Lla Fuente datos sla relación rígida, es decir,, sin
cambios puede ser Detectado Cuando se realiza una ProcessAdd O ProcessUpdate. Si
Servicios de análisis Detectars un cambio, el proceso de la dimensión fallas y debe
realizar una ProcessFull. Además, si usas relaciones rígidas, los miembros duplicados
nunca son tolerados para un atributo dado, a diferencia de las relaciones flexibles donde
Análisis de servicios 2005 guía de rendimiento 76

se selecciona un miembro arbitrario durante el procesamiento. Por, también debe


asegurarse de que su KeyColumns la propiedad está correctamente configurada.
Similar a las relaciones flexibles, Cuando que defina Rígido Relaciones, también debe
entender su impacto en las agregaciones de datos. Para más información sobre
agregaciones rígidas, Ver Evaluación de agregados rígidos versus flexibles.

Rparticiones efreshing Eficientemente


El objetivo de rendimiento del procesamiento de particiones es actualizar datos de
hechos y agregaciones de una manera eficiente que satisfaga sus requerimientos
generales de actualización de datos. Para ayudarle a refrescar sus particiones, en este
tema se discuten las siguientes técnicas: optimización de las consultas de origen SQL,
usando múltiples particiones, manejo efectivo de insertos, actualizaciones y
eliminaciones de datos, Y evaluando el uso de agregaciones rígidas versus flexibles.

Optimizar el consulta de origen


Para mejorar el procesamiento de particiones, hay dos mejores prácticas generales que
puede aplicar para optimizar la consulta de origen que extrae datos de hechos de la
base de datos de origen.
Utilizar proveedores OLE DB a través de proveedores de datos .NET
Esta es la misma recomendación proporcionada para el procesamiento de dimensiones.
Dado que el Runtime de Analysis Services está escrito en código nativo, los proveedores
OLE DB ofrecen beneficios de rendimiento over.NET proveedores de datos. Cuando se
utiliza Proveedores de datos .NET, los datos deben calcularse entre el espacio de
memoria administrado de .NET y el espacio de memoria nativo. Dado que los
proveedores OLE DB ya están en código nativo, proporcionan beneficios significativos en
cuanto a performance en los proveedores de datos de .NET.
Uso enlaces de consulta Para partitions
UNA partición puede enlazarse a una tabla de origen o a una consulta de origen. Cuando
se enlaza a una consulta de origen, siempre y cuando devuelva el Correcto número de
columnas esperadas en la partición, puede Crear una amplia gama de Instrucciones SQL
para extraer datos de origen. El uso de enlaces de consulta de origen proporciona una
mayor flexibilidad que el uso de un consulta con nombre En vista origen de datos. Por
ejemplo, Usando enlace de consulta, puede Punto a un origen de datos diferente
utilizando cuatrodenominación de parte Y realizar otras Une según sea necesario.

Usando Particiones Para mejorar el rendimiento de


procesamiento
De la misma manera que el uso de múltiples particiones puede reducir la cantidad de
datos que se deben escanear durante la recuperación de datos (como se discute en
Cómo se utilizan las particiones en la consulta), el uso de particiones múltiples puede
mejorar el rendimiento de procesamiento al proporcionarle la capacidad de procesar
componentes de datos más pequeños de un grupo de medida en paralelo.
Ser capaz de procesar múltiples particiones en paralelo es útil en una variedad de
escenarios; sin embargo, hay algunas pautas que usted debe seguir. Al crear un cubo
inicialmente, debe realizar un ProcessFull en todos los grupos de medida en ese cubo.
Análisis de servicios 2005 guía de rendimiento 77

Si procesa particiones de diferentes sesiones de cliente, tenga en cuenta que Cuando


procesa un grupo de medidas que no tiene particiones procesadas, Analysis Services
debe inicializar la estructura del cubo para ese grupo de medida. Para ello, se necesita
un bloqueo exclusivo que impida el procesamiento en paralelo de las particiones. Si este
es el caso, debe asegurarse de que tiene al menos una partición procesada por grupo de
medida antes de iniciar operaciones paralelas. Si no tiene una partición procesada,
puede realizar un ProcessStructure en el cubo para construir su estructura inicial y
luego proceder a procesar particiones de grupo de medida en paralelo. En la mayoría de
los escenarios, que no encontrará esta limitación Si usted procesa particiones en el
mismo sesión del cliente Y Utilice el MaxParalelo Xmla elemento a controlar el nivel de
Paralelismo. Para más información sobre Usando MaxParallel, Ver Maximizar el
paralelismo durante el procesamiento.
Después de cargar inicialmente el cubo, varias particiones son útiles Cuando necesite
realizar actualizaciones de datos específicas. Considere el siguiente ejemplo. Si tiene un
cubo de ventas con una sola partición, cada vez que añada nuevos datos como el valor
de ventas de un nuevo día, no sólo debe Actualizar los datos de hecho, pero también
debe actualizar las agregaciones para reflejar los nuevos totales de datos. Esto puede
ser costoso y lento dependiendo de la cantidad de datos que tenga en la partición, el
diseño de la agregación para el cubo y el tipo de procesamiento que realice.
Con varias particiones, puede aislar sus operaciones de actualización de datos a
particiones específicas. Por ejemplo, cuando necesite insertar nuevos datos de hechos,
una técnica eficaz implica crear una nueva partición que contenga los nuevos datos y, a
continuación, realizar una ProcessFull en la nueva partición. Usando esta técnica,
puede evitar impactar las otras particiones existentes. Tenga en cuenta que es posible
Utilice secuencias de comandos XMLA para Automatizar la creación de una nueva
partición Durante la actualización de su almacén de datos relacional.

Optimizar insertos de datos, ActualizacionesY


Elimina
Este la sección proporciona orientación sobre cómo actualizar eficazmente la partición
datos a Handle inserciones, actualizaciones y eliminaciones.
Insertos
Si tiene un cubo navegable Y que Necesita para agregar nuevos datos a un Grupo de
medida partición, puede Aplicar una de las siguientes técnicas:
 ProcessFull—Realizar Un ProcessFull Para Lla Existente Partición. Durante la
ProcessFull operación, el cubo permanece disponible para navegar con los datos
existentes mientras se crea un conjunto separado de archivos de datos para
contener los nuevos datos. Cuando se complete el proceso, el nuevo datos de
partición está disponible para Navegación. Tenga en cuenta que un ProcessFull
técnicamente no es necesario dado que sólo está haciendo Insertos. Para optimizar
Procesamiento para operaciones de inserción, puede utilizar un ProcessAdd.
 ProcessAdd—Uso Esta operación Para Anexar datos a los archivos de partición
existentes. Si con frecuencia realiza un ProcessAdd, se recomienda realizar
periódicamente un ProcessFull con el fin de Reconstruir Y reComprimir la partición
archivos de datos. ProcessAdd crea internamente una partición temporal y la
fusiona. Esto da como resultado la fragmentati de datoscon el tiempo y la necesidad
de realizar periódicamente un ProcessFull.
Análisis de servicios 2005 guía de rendimiento 78

Si su grupo de medida contiene múltiples particiones, como Descrito en la sección


anterior, se enfoque eficaz es crear una nueva partición que contiene los nuevos datos y
luego realizar un ProcessFull en esa partición. Esta técnica permite añadir nuevos
datos sin afectar a las particiones existentes. Cuando la nueva partición ha completado
el procesamiento, está disponible para la consulta.
Actualizaciones
Cuando necesite realizar Datos updates, usted Cna realizar una ProcessFull. Por
supuesto, es útil si puede dirigirse a las actualizaciones de una partición específica por lo
que sólo tiene que procesar una sola partición. En lugar de actualizar datos hechos
directamente, Un una mejor práctica es utilizar un mecanismo de "registro" para
implementar cambios de datos. En este escenario, una actualización en una inserción
que corrige que Existente Datos. Con Este enfoque, puede simplemente seguir
agregando nuevos datos a la partición Por usando un ProcessAdd. Que Cna también
tiene una pista de auditoría de los cambios que ha realizado.
Deletes
Para las canceladuras, Múltiples las particiones proporcionan un gran mecanismo para
que usted Desenrolle los datos vencidos. Considere el siguiente ejemplo. Que
Actualmente have 13 meses de datos en un Grupo de medida, un mes por Partición.
Usted quiere rodar hacia fuera el mes más antiguo del cubo. Para hacer esto,
simplemente puede borrar la partición sin afectar a ninguno de los otros Particiones. Si
hay algún miembro de la dimensión antigua que sólo apareció en el mes expirado,
Puedes Quitar Estos usando un ProcesoActualización De la dimensión (siempre que
contiene relatos flexiblesoNSHIPS). Para eliminar miembros del atributo
key/granularidad de una dimensión, ya Debe establecer la dimensión
UnknownMember Propiedad Para Oculto O Visible. Esto se debe a que el servidor no
sabe si hay un registro de datos asignado al miembro eliminado. Con esta propiedad
establecida apropiadamente, se asociará al miembro desconocido en el momento de la
consulta.

Evaluar agregaciones rígidas versus flexibles


Flexible y rígido Atributo Relaciones no solo Impacto Cómo se procesan las cotas, Pero
también impactan cómo se actualizan las agregaciones en una partición. Las adiciones
pueden ser categoriaZed como rígido o flexible dependiendo Lla Relaciones De los
atributos que participan en la agregación. Para más información sobre el impacto de
Rígido Y relaciones flexibles, Ver Optimización de insertos, actualizaciones y
eliminaciones de cotas.
Rígido Agregaciones
Una agregación es Rígido Cuando todos los atributos que participan en la agregación
tienen relaciones directas o indirectas rígidas con el Granularidad Atributo de un grupo
de medida. Para todos los atributos de la agregación, se realiza una comprobación para
comprobar que todas las relaciones son rígidas. Si alguno es flexible, la agregación es
flexible.
Flexible Agregaciones
Una agregación es Flexible Cuando uno o más de los atributos que participan en la
agregación tienen relaciones directas o indirectas flexibles con el atributo de clave.
Si se realiza una ProcessUpdate en una dimensión que participa en Flexible
Agregacións, siempre que se detecten supresiones o actualizaciones para un atributo
Análisis de servicios 2005 guía de rendimiento 79

dado, Lla Agregacións Para Que Atributo así como como cualquier los atributos
relacionados en la cadena de atributos son automáticamente Cayó. Las agregaciones no
se recrean automáticamente a menos que realice una de las siguientes tareas:
 Realizar una ProcessFull en el cubo, el grupo de medida o la partición. Este es el
estándar ProcessFull operación que caens y re-Crears Lla Hecho Datos Y Todos
agregaciones en la partición.
 Realizar una ProcessIndexes sobre el cubo, grupo de medida o partición. Al realizar
ProcessIndexes, sólo se construirá cualquier agregación o indexes que necesitan
ser re-construidas.
 Configurar el procesamiento perezoso para el Cuser, grupo de medida, o partición. Si
configura el procesamiento perezoso, las agregaciones eliminadas se recalculan
como una tarea de fondo. Mientras que las agregaciones flexibles están siendo
recalculadas, los usuarios pueden continuar consultando el cubo (sin el beneficio de
las agregaciones flexibles). Mientras que las agregaciones flexibles se están
recalculando, las consultas que se beneficiarían de las agregaciones flexibles se
ejecutarán más despacio porque Analysis Services resuelve estas consultas
escaneando Lla Hecho Datos y, a continuación, resumir los datos en tiempo de
consulta. A medida que se recalculan las agregaciones flexibles, éstas se encuentran
disponibles de manera incremental partiendo por partición. Para un cubo dado, El
procesamiento perezoso no está habilitado de forma predeterminada. YSí Cna
Configure para un cubo, un grupo de medida o una partición cambiando el
ProcessingMode propiedad de Regular Para LazyAggregations. Para Administrar
Procesamiento perezoso, hay una serie de propiedades del servidor como el
LazyProcessing \ MaxObjectsInParallel Ajuste, que controla el número de
objetos que pueden ser procesados perezosamente en un momento dado. De forma
predeterminada, se establece en 2. Al aumentar este número, se aumenta el número
de objetos procesados en paralelo; sin embargo, esto también impactas el
rendimiento de la consulta y por lo tanto debe ser manejado con cuidado.
 Proceso objetos afectados. Cuando se realiza una ProcessUpdate en una
dimensión, puede elegir si desea o no Procesar objetos afectados. Si usted
Seleccione esta opción, puede Gatillo Lla Actualización De particiones dependientes
dentro de la misma Operación.
Tenga en cuenta que si no sigue uno de lo anterior técnicas, y usted realizar una
ProcessUpdate De una dimensión que resulta en un Canceladura O Actualización, las
agregaciones flexibles para ese atributo y todos los atributos relacionados de la cadena
de atributos Son eliminado automáticamente y no re-Creado, Resultante en los pobres
Consulta Rendimiento. Esto es especialmente importante para Nota porque por defecto
Cada la agregación es Flexible Dado que cada tipo de relación de atributo se establece
en Flexible.
Como resultado, gran cuidado para asegurarse de que su estrategia de actualización
configura el Apropiado relaciones de atributos para sus datos Cambiars Y Eficazmente
reconstruye cualquier Agregacións de manera continua.
Análisis de servicios 2005 guía de rendimiento 80

Optimización de escenarios de diseño


especiales
A lo largo de este libro, técnicas específicas y mejores prácticas Son Identificado para
mejorar el procesamiento y la consulta performance de servicios de análisis Bases de
datos OLAP. Además de estos Técnicas, Existen escenarios de diseño específicos que
requieren rendimiento especial Sintonización Prácticas. A continuación se resumen las
escenarios de diseño que se abordan en esta sección:
Funciones agregadas especiales – Funciones agregadas especiales le permiten
Implementar cuenta distinta y semiaditivo resúmenes de datos. Dada la naturaleza
única de estas funciones agregadas, ajuste especial del funcionamiento técnicas son
Obligatorio para asegurar que se implementen de la manera más eficiente.
Jerarquías padre-hijo – Padre-hijo Jerarquías have Un Diverso Agregación esquema que
atributo y usuario JerarquíasRequerir Que usted considera su impacto en rendimiento de
la consulta en gran escala Dimensiones.
Relaciones de dimensión complejas – Las relaciones de dimensión compleja incluyen
relaciones de muchos a muchos y relaciones de referencia. Mientras Estas relaciones
permite manejar una variedad de diseños de esquemas, crelaciones de dimensión
omplex También requieren que Evaluar Cómo Lla Esquema la complejidad va a impactar
Procesamiento yO Consulta Rendimiento.
Casi en tiempo real actualizaciones de datos - En algunos escenarios de diseño, “Cerca
en tiempo real " las actualizaciones de datos son un requisito necesario. Cada vez que
implementar un “Cerca en tiempo real " Solución requiriendo niveles bajos de latencia
de datos, debe considerar cómo va a equilibrar Lla Obligatorio latencia con consulta y
procesamiento Rendimiento.

Especial funciones agregadas


Las funciones agregadas son el mecanismo más común para resumir los datos.
Funciones agregadas Son Uniformemente Aplicado En Todos Atributos en una dimensión
Y puede ser utilizado Foradditive, semiaditivo y no aditivo Medidas. Agregado las
funciones se pueden categorizar en dos generales Grupos: funciones agregadas
tradicionales y funciones agregadas especiales.
 Funciones agregadas tradicionales consisten en un grupo de funciones que siguen las
recomendaciones generales de afinación del rendimiento descritas en otras secciones
de este blanco Papel. Las funciones agregadas tradicionales incluyen Suma, Count,
MinY MAx.
 Sfunciones agregadas de pecial Requieren Único rendimientoSintonización Técnicas.
Que Incluyen DistinctCount y un Colección de Semiadditive Agregado Funciones.
Las funciones semiaditivas incluyen: FirstChild, LastChild, FirstNonVacío,
LastNonVacío, ByAccount, Y PromedioeOfChildren.

Optimizar recuento distinto


DistintasCount es un no aditivo función de agregado Que cuenta el instancias únicas
de una entidad en un Grupo de medida. Mientras recuento distinto es una herramienta
analítica muy potente, puede tener importantes Impacto sobre el procesamiento y la
consulta de rendimiento debido a su impacto explosivo en el tamaño de la agregación.
Análisis de servicios 2005 guía de rendimiento 81

Cuando se utiliza Un función agregada de la cuenta distinta, es Aumenta Lla Tamaño De


Un Agregación por el número de Único Instancias que se cuentan claramente.
Para entender mejor cómo recuento distinto tamaño de la agregación de impactos,
cInsider el siguiente ejemplo. Que tener un Grupo de medida partición con una
agregación que resume monto de ventas Por Categoría de producto y el año. Usted hAve
Diez Producto Categorías con las ventas Para Diez AñosProducir un total de 100 valores
en la agregación. Cuando se Agregar un cuenta distinta del clientes Para Lla Grupo de
medida, la agregación de los cambios de partición para incluir la clave de cliente de cada
cliente que Hsa Ventas Para Un Específico Categoría de producto y Yera. Si hay
1,000 clientes, el Número De Potencial valores en el agregación increases desde 100 a
100000 valores, dado que cada cliente tiene ventas para cada categoría de producto en
cada año. (Tenga en cuenta que Lla número real de values sería menos de 100.000
debido a datos naturales dispersión. En todo caso, el valor es probable que sea un
número mucho mayor que 100.) Si bien este Adicional el nivel de detalle es necesario
Para Eficientemente calcular el recuento distinto de los clientes, se Introduce
Significativo Rendimiento overheaD Cuando Usuarios Petición Resúmenes de ventas
aMonte por categoría de producto y año.
Con el explosivo Impacto de distintos conteos en agregaciones, Lo es una mejor práctica
Para Separado Cada recuento distinto Medida En su propia Grupo de medida con la
misma dimensionalidad que la Grupo de medida inicial. Usando esta técnica, que Cna
aislar el recuento distinto Agregaciones Y mantener un diseño de agregación para No-
Distintas medidas de conteo.
Tenga en cuenta que Cuando que Utilice el estudio de desarrollo de Business Intelligence
para Crear una nueva Medida, si especifica el recuento distinto función de agregado en
el momento de la creación de la medida, Lla Servicios de análisis Diseñador de cubos
Automáticamente Crears Un separar grupo de medida para la medida de conteo distinta.
Sin embargo, si cambia la función de agregado para una medida existente a la cuenta
distinta, debe manualmente Reorganice la medida diferenciada de la cuenta en su propio
grupo de la medida.
Cuando usted está Claramente contando gran cantidad de datos, usted puede encontrar
que las agregaciones para el grupo de medida de conteo distinto no están
proporcionando un valor significativo, Desde Lla Hecho los datos deben Típicamente ser
preguntado para calcular los conteos distintos. Para un grupo de medida de conteo
distinto, debe considerar particionar el grupo de medida utilizando intervalos de datos
del campo de conteo distinto. Por ejemplo, si está realizando un conteo distinto de
clientes utilizando el cliente Id, considere particionar el grupo de medida de conteo
distinto por cliente Id Gamas. En este escenario, la partición 1 puede contener al cliente
Identificadores entre 1 y 1000. Partición 2 puede contener al cliente Ids entre 1001 y
2000. Partición 3 puede contener al cliente Identificadores entre 2001 y 3000, etc. Este
esquema de particionamiento mejora el paralelismo de consultas ya que el servidor no
tiene que coordinar datos entre particiones para satisfacer la consulta.
Para particiones más grandes, para seguir mejorar el rendimiento, puede ser ventajoso
considerar an Enhanced partitioning Estrategia Donde que Partición el grupo de medida
de conteo distinto Ambos el campo de conteo distinto así como su Normal Partición
atributo, es decir,, yOído, MesEtc. Como usted Considerar su estrategia de
particionamiento para el conteo distintoMantener en cuenta Que al particionar por varios
Dimensiones, puede descubrir rápidamente que tienen demasiados Particiones. Con
demasiadas particiones, en algunos escenarios en realidad puede impactar
Análisis de servicios 2005 guía de rendimiento 82

negativamente el rendimiento de la consulta Si Servicios de análisis necesita escanear y


juntar datos de múltiples particiones en el momento de la consulta. Por ejemplo, Si la
partición por territorio de ventas y día, cuando los usuarios quieren el recuento distinto
de los clientes por territorio de ventas por Yera, todos los Diario particiones en un
Específico Yera debe ser accesado y asimilado para devolver el Correcto Valor. Aunque
esto ocurrirá de forma natural en paralelo, puede Potencialmente resultar en Adicional
Consulta Arriba. Para ayudarle a determinar el tamaño y el alcance de sus particiones,
Ver Lla orientación general del dimensionamiento en el Diseño de particiones Sección.
Desde una perspectiva de procesamiento, siempre que que Procese una partición que
contenga Un cuenta distinta, notará un aumento en el tiempo de procesamiento sobre
las otras particiones de la misma dimensionalidad. Es tarda más en procesarse debido a
la mayor tamaño de los datos y agregaciones del hecho. El más grande la cantidad de
datos que requiere procesamiento, cuanto más tiempo se tarda en procesar, y el mayor
potencial que los servicios de análisis pueden encontrar restricciones de memoria Y se
necesidad de Uso archivos temporales para completar el procesamiento de la
agregación. Por lo tanto, debe evaluar si su el diseño de agregación le proporciona las
agregaciones más beneficiosas. Para ayudarle a determinar esto, puede utilizar Lla
UsoOptimización basada Asistente Para Personalizar su aggrdiseño egation Para
beneficiar a su carga de trabajo de consultas. Si desea más control sobre el diseño de la
agregación, puede considerar la posibilidad de crear agregaciones personalizadas Por
uso de la utilidad de agregación descrita en Apéndice C. Además, debe asegurarse de
que el sistema tiene recursos suficientes para procesar las agregaciones. Para más
información sobre este tema, Ver Afinar recursos del servidor.
La otra razón que el tiempo de procesamiento puede ser más lento debido al hecho de
que un ORDENAR por Cláusula Es Automáticamente añadido a la de la partición fuente
SQL Declaración. Para optimizar la actuación de la orden por En instrucción SQL de
origen, Puedes colocar un índice agrupado en Lla tabla de origen Columna Es decir ser
claramente contado. Tenga en cuenta que Esto sólo es aplicable en el escenario en el
que Una cuenta distinta por tabla de hechos. Si usted tienen múltiples conteos distintos
fuera de una sola tabla de hechos, Necesita Para Evaluar que cuenta distinta se
beneficiará más del índice agrupado. Por ejemplo, puede elegir para aplicar el índice
agrupado Para el más granular recuento distinto Campo.

Optimizar Semiadditive Medidas


Semiaditivo Agregado funciones incluyen ByAccount, AverageOfChildren, FirstChild,
LastChild, FirstNonEmptyY LastNonEmpty. Para devolver los valores de datos
correctos, sfunciones emiadditive Debe Siempre recuperar datos eso includEs atributo de
granularidad de la dimensión de tiempo. Desde las funciones semiaditivas requieren
datos más detallados y recursos de servidor adicionales, para mejorar el rendimiento, no
se deben utilizar medidas semiaditivas en un cubo que contenga dimensiones ROLAP O
dimensiones vinculadas. ROLAP y dimensiones vinculadas También Requieren
sobrecarga de consultas adicionales y recursos del servidor. THgerefore, el Combinación
de medidas semiaditivas Con Rolap Y/o dimensiones vinculadas Cna Resultado En Pobre
rendimiento de la consulta y debe evitarse cuando sea posible.
Aggregations Contiene el atributo de granularidad de Lla hora Dimensión Son
Extremadamente Beneficioso Para eficientemente satisfactoria solicitudes de consulta
para semiaditivo Medidas. Aggregations Contiene Otros los atributos de tiempo nunca se
utilizan para cumplir la solicitud de una medida semiaditiva.
Análisis de servicios 2005 guía de rendimiento 83

Para explicar aún más cómo se utilizan las agregaciones para satisfacer las solicitudes
de consulta de medidas semiaditivas, consideR los siguientes Ejemplo. En Un Inventario
Aplicación, Cuando que Petición de un producto cantidad disponible para un mes
determinado, Lla saldo de inventario para el mes es Realmente el saldo del inventario
para Lla final Día En Que Mes. Para devolver este valor, el El motor de almacenamiento
debe tener acceso Partición datos al día Nivel. Si hay un Apropiado agregación que
incluye el atributo Day, el motor de almacenamiento intentará utilizar ese agregación
para satisfacer la consulta. Llatherwise la consulta debe ser satisfecha por la partición
datos de hechos. Agregaciones en el mes y año No Ser Utilizado.
Tenga en cuenta quef su Cubo Contiene Sólo medidas semiaditivas, usted se Nunca
reciba beneficios de rendimiento de las agregaciones creadas para los atributos de
tiempo de no granularidad. En este escenario, puede influir en el diseñador de
agregaciones para crear agregaciones Sólo para el atributo de granularidad de la
dimensión de tiempo (y el atributo All) estableciendo el Uso de agregación Para
Ninguno para los atributos de no granularidad de la dimensión de tiempo. Tenga en
cuenta que el Uso de agregación Ajuste Automáticamente se aplica a todos los grupos
de medida del cubo, Si Lla Cubo Contienens Sólo medidas semiaditivas, como en las
aplicaciones de inventarioLla Uso de agregación Ajuste se puede aplicar
uniformemente en todos los grupos de medida.
Si usted tiene una combinación mixta de medidas semiaditivas y otras medidas a través
de grupos de medida, puede adoptar la siguiente técnica para aplicar Único uso de
agregación Configuración a determinados Grupo de medidas. Primera, ajustar el
Agregación Uso configuración de una cota para Que se ajustan a las necesidades de un
determinado grupo de medidas Y Entonces Diseño Agregaciones para eso Grupo de la
medida Sólo. Próxima, cambiar el Uso de agregación ajustes para ajustar el NEEDS del
grupo siguiente de la medida Y Entonces agregaciones de diseño para Que Grupo de
medida Sólo. Con este enfoque, puede diseñarregations Medida Grupo porGrupo de
medida, e incluso partición porPartición Si lo desea.
Además de esta técnica, Puedes También optimizar el diseño de la agregación Usando
Lla UsoOptimización basada Asistente para crear Sólo Ésos agregaciones que
proporcionan el mayor valor para sus patrones de consulta. Si que quiere más contrOL
sobre el diseño de la agregación, es posible que desee considerar la creación de
Agregaciones mediante la agregación Utilidad descritas en Apéndice C.

Padrejerarquías de niños
Padre-hijo Jerarquías son jerarquías Con un número variable de niveles, según lo
determinado por una recursiva Relacionescadera entre un atributo secundario y un
atributo padre. Las jerarquías padre-hijo se utilizan típicamente para representar Un
esquema financiero de cuentas O Un Organizaciónal Gráfico. En padre-hijo jerarquías, se
crean agregaciones Sólo para la Clave Atributo y la parte superior atributo, es decir,, el
atributo All a menos que esté deshabilitado. Como tal, abstenerse de Usando padre-hijo
Jerarquías que contienen gran número de Miembros En Intermedio Niveles De la
jerarquía. Además debe limitar el número de jerarquías padre-hijo en el cubo.
Si usted está en un Diseño Escenario con una Grande padre-hijo Jerarquía (mayor que
250.000 miembros, es posible que desee considerar alterar la Fuente Esquema Para
volver a organizar parte o todos Lla Jerarquía en una jerarquía de usuario con un
número fijo de niveles. Vez los datos se han reorganizado en la jerarquía de usuarios,
Análisis de servicios 2005 guía de rendimiento 84

puede utilizar el Ocultar Miembro si Propiedad de cada nivel para ocultar los miembros
redundantes o desaparecidos.

Complejo relaciones de cota


La flexibilidad de Servicios de análisis le permite construir cubos desde un variedad de
Fuente Esquemas. Para más Complicado Esquemas Servicios de análisis Suministros
muchos a muchos Relaciones y relaciones de referencia para ayudarle a modelar
Complejo Asociacións entre las tablas de dimensiones y las tablas de hechos. Mientras
Estas relaciones proporcionar una gran oferta de flexibilidad, Para utilizarlos
eficazmente, usted debe Evaluar Su Impacto En ProcesoIng y rendimiento de la
consulta.

Muchos-a-Muchos Relaciones
En servicios de análisis, mlas relaciones de cualquiera a muchas le permiten Fácilmente
Modelo fuente compleja Esquemas. Para usar las relaciones muchas a muchas de
manera efectiva, usted debe estar familiarizado con el Negocio escenarios donde Estos
las relaciones son relevantes.
Información de antecedentes sobre las relaciones entre muchos y muchos
En escenarios de diseño típicos, tablas de hechos se unen a tablas de dimensiones a
través de muchos a uno Relaciones. Más específicamente, Cada tabla de hechos Registro
puede unirse a sólo un registro de tabla de dimensiones Y cada registro de tabla de
cotas puede unirse a varios registros de tablas de hechos. Usando Este muchos a uno
diseño, usted puede Fácilmente Enviar consultas que Agregado Datos por cualquier
atributo de dimensión.
Muchos-a-muchos Diseño Escenarios ocurren cuando Un Hecho Mesa Registro Cna
Potencialmente unirse a Múltiples Dimensión Mesa Registros. Cuando este Situación
Ocurre es más difícil Correctamente consulta y agrega datos desde la dimensión
contiene múltiples instancias De una entidad de dimensión y la tabla de hechos No
Distinguir entre los Ejemplos.
Para Mejor comprender la relación entre muchas y muchas Impacto Análisis de datos,
considere el siguiente ejemplo. Que have una dimensión de revendedor Donde la clave
principal es el individuo Revendedor. Para mejorar su análisis, desea agregar Lla
especial para consumidoresatributo Ty a los Revendedor Dimensión. Al examinarIng
datos, usted Tenga en cuenta que cada distribuidor puede tener varios consumidores
Especialidades. Por ejemplo, UNA tienda de bicicletas Hsa Dos especialidades de
consumo: Entusiasta de la bici y bici profesional. YNuestro Ventas tabla de hechos, sin
embargo, Sólo Pistas Ventas Por Revendedor, no por el revendedor y la especialidad del
consumidor. En otras palabras, los datos de ventas no Distinguir Entre Un Tienda de
bicicletas con una Entusiasta de la bici Especialidad Y Un Tienda de bicicletas con una
Bici profesional Especialidad. En la ausencia de algún tipo de factor de ponderación para
asignar las ventas por especialidad de consumo, es una práctica común repetir la valores
de ventas para cada revendedor/especialidad de consumo Combinación. Este enfoque
funciona muy bien cuando se está viendo los datos por la especialidad de consumo y
revendedor; sin embargo, plantea un desafío cuando se desea examinar los totales de
datos así como cuando desea analizar datos por otros atributos.
Continuando con THy Reseller ejemplo, si agrega el Nuevo especialidad de consumo
Atributo Para Lla reseller tabla de dimensiones, Cuando la tabla de hechos se une a la
Análisis de servicios 2005 guía de rendimiento 85

tabla de cotas a través del individuo Revendedor, Lla número de registros en el conjunto
de resultados Es Multiplicado por el número de combinaciones de revendedor y
especialidad de consumo. Cuando Lla Datos de este conjunto de resultados se agrega,
se inflará. En el ejemplo de Un Tienda de bicicletas, Ventas datos de la tabla de hechos
será dobleContado independientemente de Que Revendedor Atributo se agrupan por.
Esta doble cuenta ocurre Kuz Un Tienda de bicicletas aparece dos veces en la tabla con
dos especialidades de consumo. TIhs la repetición de datos es Bien Cuando usted está
viendo el desglose de las ventas por especialidad de consumo y revendedor; sin
embargo, cualquier total de ventas o consultas que no incluyan la especialidad del
consumidor será incorrectamente Inflado.
Para Evitar IncorrectaTaza Inflar sus datos, relación de muchos a muchoss son
típicamente Modelado en el esquema de origen uso de varias tablas como se muestra en
la figura 26.
 Un Principal tabla de dimensiones Contienens una lista única de clave principal Valors
Y Otros Atributos que tienen un uno-a-uno Relación a la clave principal. Para habilitar
el tabla de dimensiones para Mantener una relación de uno a muchos con el Hecho
mesa, el atributo multivalor no está incluido en esta dimensión. En Revendedor
Ejemplo se muestra en la figura 26, Revendedor DIM es la dimensión principal Mesa,
Almacenar un registro por reseller. Lla atributo multivalor, consumidor specialty no
está incluido en esta tabla.
 UN segundo tabla de dimensiones Contienens una lista única de valores para el
atributo multivalor. En Revendedor Ejemplo Lla Dim especialidad de consumo
Dimensión Mesa almacena el Distintas lista de consumidor specialties.
 Un Intermedio Hecho Mesa mapea la relación bntre las dos tablas de dimensiones.
En el ejemplo del revendedor, La especialidad de revendedor de hechos es un
Intermedio tabla de hechos Que seguimiento de las especialidades de consumo de
cada Revendedor.
 Lla Datos ftabla Act Tiendas una referencia de clave extranjera a la clave principal
Dela tabla de dimensiones principales. En el revendedor Example, el Ventas de
hechos Mesa almacena los datos de ventas numéricos y tiene una gran cantidad-a-
uno Relación con Dim Reseller a través de la tecla reseller.
Análisis de servicios 2005 guía de rendimiento 86

Figura 26 Muchos-a-mCualquier rla euforia


Usando Este diseño, usted tiene Mantenido Lla relación de muchos a uno entre las
ventas de hecho y el revendedor DIM. Esto significa que si you ignorar DIM especialidad
de consumo y hecho Revendedor especialTy, tú Cna Fácilmente consulta y Agregado
Datos de las ventas de hecho por cualquier atributo en Lla DEn la tabla de revendedores
Sin Incorrectamente inflar valores. Sin embargo Este diseño no resuelve completamente
el problema, ya que Lo es Todavía difícil analizar las ventas por un atributo en DIM Cel
consumidor Specialty. Recuerde que usted Todavía no tienen ventas broKen Down por
especialidad de consumo; I.e., las ventas sólo son almacenadas por el revendedor y
repite para cada revendedor/consumidor scombinación pecialty. Para consultas Que
resumir las ventas por especialidad del consumidor, Lla Datos Totales Son Todavía
HinchadoY a menos que pueda aplicar un suma distinta.
Para ayudarle a lograr este suma distinta, AServicios nalysis Proporciona soporte
incorporado para muchos a muchos Relaciones. Una vez que se define una relación de
muchos a muchos, el análisis Servicios puede aplicar suma distintas para correctamente
agregado Datos cuando sea necesario. Para obtener Este beneficio en el ejemplo del
revendedor, primero crear las ventas Grupo de medida que incluye la dimensión de
revendedor DIM y medidas de venta de la tabla de ventas de Fact. Próxima, Puedes
Utilice una relación de muchos a muchos para relacionar la Ventas Mida el grupo al
consumidor Specialty muchos a muchos DimensionesIon. Para configurar Este Relación,
debes Identificar Un Grupo intermedio de medida que se puede utilizar para mapear
SElegido datos a la especialidad del consumidor. En este escenario, el grupo de medida
intermedia se Especialidad de revendedor, origen de la tabla de hechos especialidad
revendedor.
Rendimiento cconsideraciones
Dprocesamiento de urante, los datos e intermedios Grupo de medidas Son procesado de
forma independiente. Datos de hechos y unggregations para el Grupo de mediciones de
datos De no incluir cualquier atributo de Lla mAny-to-Muchos Dimensión. Cuando
consulta el Grupo de medida de datos por la dimensión de muchos a muchos, Un
Ejecutar-hora se realiza "join" entre los dos grupos de la medida Usando el atributo de
Análisis de servicios 2005 guía de rendimiento 87

granularidads de cada Dimensión que los grupos de medida han en común. En el


ejemplo de la figura 26, Cuando los usuarios desean consultar Ventas datos por
Especialidad de consumo, una carrera-el tiempo de Unión se realiza entre los Grupo de
medida de ventas y especialidad de revendedores Grupo de medida uso de la clave de
revendedor de Lla Revendedor Dimensión. Desde una perspectiva de rendimiento, la
ejecución-tiempo de Unión Hsa Lla Pesadotest Impacto en el rendimiento de la consulta.
Más específicamente, si Lla Intermedio Grupo de medida Es más grande que el Datos
Grupo de medida o si los muchos a muchos dimensión es Generalmente grandeal menos
1 millón Miembros), Usted puede experimentar Consulta problema de rendimientos
debido a la cantidad de datos que se deben unir en ejecución hora. Para optimizar la
ejecución-tiempo de Unión, revise el diseño de agregación para el grupo de medida
intermedia para verificar que Agregaciones Incluyen atributos de la dimensión muchos a
muchos. En el ejemplo de la figura 26Agregaciones para el grupo de medida intermedia
debe incluir atributos de la dimensión de especialidad del consumidor como el atributo
Description. Mientras que muchas de muchas relaciones son muy poderosas, Para Evitar
rendimiento de la consulta Cuestiones, en general debe limitar su Uso de muchos a
muchos Relaciones Para Menor Intermedio mida los grupos y las dimensiones.

Referencia Relaciones
En Tradicional Dimensión escenarios de diseño, Todos tablas de cotas join directamente
a la tabla de hechos por medio de Su clave principals. En diseños de dimensiones de
copo de nieve, Múltiples diMesas Mension están encadenados juntos, con las
dimensiones encadenadas Unirse indirectamente a la tabla del hecho por medio de una
llave en otra tabla de la dimensión. Estas dimensiones encadenadas a menudo se
denominan tablas de dimensiones de copo de nieve. Figura 27 muestra un ejemplo de
tablas de cotas de copo de nieve. Cada tabla del copo de nieve está vinculada a una
tabla posterior mediante una referencia de clave externa.

Figura 27 Snowflake dIMENSIÓN tAbles


En la figura 27, la tabla de revendedores DIM tiene una relación de copo de nieve Lla
Geografía tenue Mesa. Además, la tabla de clientes DIM tiene una relación de copo de
nieve con Lla Geografía tenue Mesa. Desde un punto de vista relacional, si desea
analizar Cliente ventas por geography, que Debe Únete a DIM Geography a hecho
Cliente Ventas a través de DIM Client. Si quieres Analizar Revendedor ventas por
Geografía, ya Debe Únete a DIM geografía a Fact Revendedor Ventas a través de
revendedor DIM.
Dentro de los servicios de análisis, las cotas se "unen" para medir los grupos
especificando la dimensión tipo de relación. La mayoría de las dimensiones Regular
relaciones en las que se Joi una tabla de dimensionesNed directamente a la mesa de
hechos. Sin embargo, para la tabla de dimensiones copo de nieve Escenarios como tque
Análisis de servicios 2005 guía de rendimiento 88

uno representado en la figura 27, hay dos técnicas generales del diseño que usted
puede adoptar como se describe en esta sección.
Opción 1 - Combinar atributos
Para cada entidad de dimensión que se une a la tabla de hechos, creatY una sola
dimensión OLAP Que Combina atributos de Todos Dela Snowflake Dimensión tablas, y
Entonces unir cada dimensión para medir el grupo utilizando un Regular tipo de relación.
Si tiene varias entidades de dimensión que se refierenlas mismas tablas de copo de
nieveAtributos de las tablas de copos de nieve compartida se repiten en Lla Dimensiones
OLAP.
Para aplicar Esta técnica a la Figura 27 ejemplo, cree Dos Olap Dimensiones: 1) Un
Revendedor Dimensión Que Contiene atributos de Ambos El DIM Reseller y Tablas de
geografía tenues, Y 2 Un Cliente Dimensión que contiene atributos de DIM Client y
Geografía tenue. Tenga en cuenta que los atributos de la geografía DIM se repiten en las
dimensiones del cliente y del revendedor.
Fo las ventas de revendedores Grupo de medida, utilice una relación regular para la
dimensión de revendedor. Para el grupo de medida de ventas del cliente, utilice un
Regular Relación Dimensión del cliente. Recuerde que tHge relación entre una dimensión
y un grupo de medida dEFines cómo se "unen" los datos de cota a los datos de Fact.
UNA relación regular significa que ha definido un Directa relación entre uno o más
columnas de cota y uno o más columna de grupo de medidas.
Con este diseño, fO Cada Olap Dimensión, todos los Snowflake Dimensión las tablas se
unen en el tiempo de procesamiento y la dimensión OLAP se materializa en el disco. Al
igual que con cualquier otra operación de procesamiento, puede controlar si el
procesamiento debe eliminar las claves que faltan o utilizar el unknown mGente para
cualquier registro que se unan a todas las tablas.
Desde una perspectiva de rendimiento, el Ventaja de este enfoque Es la capacidad de
Crear jerarquías naturales y Utilice agregaciones. Desde cada dimensión tiene un
Regular relación con el grupo de medida, para mejorar el rendimiento de las consultas,
aggregations se puede diseñar para los atributos en cada dimensión, dada la
configuración adecuada de relaciones de atributos. Además, durante la consulta, puede
aprovechar Autoexiste optimizaciones que se producen naturalmente entre atributos
dentro de una dimensión. Para más información sobre Autoexiste, Ver Removituplas
vacías ng.
Si usted Uso Este enfoque, también debe Considerar el impacto de aumentar el número
de atributos que el diseño de la agregación Algoritmo debe considerar. Repitiendo
Atributos En Múltiples dimensiones, usted es crear más trabajo para el diseño de
agregación Algoritmo Que podría afectar negativamente los tiempos de procesamiento.
Opción 2- Uso Un reference rla euforia
Un enfoque de diseño alternativo para combinar atributos implica relaciones de
referencia. Las relaciones de referencia le permiten relacionan indirectamente
Dimensiones OLAP a un grupo de medida usando una dimensión intermedia. La
dimensión intermedia crea una a path que el grupo de medida puede utilizar para
relacionar sus datos con Cada dimensión de referencia.
Para aplicar esta técnica al ejemplo de la figura 27, crear tres dimensiones OLAP
separadas para el cliente, el revendedor y la geografía. A continuación se describe cómo
se pueden relacionados con cada grupo de medida (Ventas de revendedores y ventas de
clientes):
Análisis de servicios 2005 guía de rendimiento 89

 Lla Ventas de clientes Grupo de medida contiene una Regular relación con Lla Cliente
Dimensión y contiene una Referencia relación con el Geography Dimensión. Lla
Referencia usos de la relación Customer como una dimensión intermedia Para
Asignar ventas a geografías específicas.
 El revendedor SAles grupo de medida contiene un Regular relación con el Reseller
dimensión y CONTAINS a Referencia relación a la dimensión de la geografía. Lla
Referencia usos de la relación Reseller como una dimensión intermedia asignar
ventas a geografías específicas.
Para utilizar esta técnica Eficazmente, debe considerar los impactos de las relaciones de
referencia en Procesamiento y consulta Rendimiento. Durante el procesamiento, Cada la
dimensión se procesa independientemente. No atributos de Lla dimensión de referencia
se consideran automáticamente para la agregación. Durante la consulta, Grupo de
medida los datos se unen a los Referencia Dimensión según sea necesario por medio de
el intermedio Dimensión. Por ejemplo, si Consulta Cliente Ventas Datos por geografía,
una carrera-el tiempo de Unión debe ocurrir Ventas de clientes Mida el grupo a
Geografía Via Lla Cliente Dimensión. Este proceso puede ser un poco lento para grandes
dimensiones. Además aNY Missing Attribute (miembros) que se encuentran durante la
consulta Son Automáticamente asignado a la unknown Miembro en orden para preservar
totales de datos.
Para mejorar Lla Consulta Rendimiento de las relaciones de referenciaPuedes optar por
materializar elm. Tenga en cuenta que, de forma predeterminada, las relaciones de
referencia no se materializan. Cuando se materializa una relación de referencia, Lla
Unirse a través de dimensiones se realiza Durante Procesamiento en lugar de consultar.
Además, tÉl atribuye En Materializado dimensión de referencias siga las Agregación
Reglas De dimensiones estándar. Para más información sobre estas reglas, Ver Lla
aGgrOtIon uSabio rNormas. Desde la Unión se realiza durante el procesamiento y las
agregaciones son posibles, Materializado las relaciones de referencia pueden mejorar
significativamente el rendimiento de las consultas en comparación con las relaciones no
materializadas.
Algunas consideraciones adicionales se aplican a relaciones de referencia materializadas.
Durante el procesamiento, la cota de referencia se procesa independientemente. En este
momento, si cualquier fila en el grupo de medida no Unirse a la cota de referenciaLla
Registro se retira desde el Partición. Tenga en cuenta que este comportamiento es
diferente de la relación de referencia no materializada en la que los miembros perdidos
se asignan a la miembro desconocido.
Para Mejor comprender cómo se manejan los miembros desaparecidos para las
relaciones materializadas, considere los siguientes Ejemplo. Mef usted tiene Un orden de
venta en el Ventas de clientes tabla de hechos Que se asigna a un Específico cliente,
pero que el cliente Hsa un desaparecido Geografía el registro No unirse a Lla Geography
Mesa y es rechazado de la partición. Por, Si tiene problemas de integridad referencial en
sus datos de origen, materializando el Referencia Relación Cna los datos que faltan de la
partición para los registros de hechos que no unirse a la dimensión de referencia. Para
contrarrestar este comportamiento y controlar los valores que faltan, puede crear su
propia registro de cota desconocida en Lla Referencia tabla de dimensiones y Entonces
asignar ese valor a todos los registros que faltan Referencia Valores durante su
extractoIonTransformaración, y la cargaIng Procesos (ETL). Con lo desconocido Registro
en su lugar para los valores perdidosEn tiempo de procesamiento, todos los registros de
clientes Cna unirse con éxito a la dimensión de referencia.
Análisis de servicios 2005 guía de rendimiento 90

Opción Comparación - Combinar atributos versus usar relaciones de referencia


Cuando se compara else dos alternativas de diseño, es importante evaluar los impactos
globales en el procesamiento y el rendimiento de las consultas. Al combinar atributos, ya
puede beneficiarse de Crear jerarquías naturales y Usando agregaciones para mejorar el
rendimiento de las consultas. Cuando se utilizan relaciones de referencia, Un rdimensión
eference Cna Sólo participar en Agregaciones Si se Es Materializado. Estos Agregaciones
se no tener en cuenta Cualquier Jerarquías a través de dimensiones, Dado que la
dimensión de referencia se analiza por separado de las otras dimensiones. A la luz de
esta información, las siguientes pautas pueden ayudarle a decidir qué enfoque adoptar:
 Si su dimensión es preguntado con frecuencia y puede beneficiarse de jerarquías
naturales y aggregations usted debe Combine atributos de tablas de dimensiones de
copo de nieve en su diseño de dimensión normal.
 Si la dimensión Es No Frecuentemente queried y se utiliza solamente para el análisis
de la uno-apagado, que puede utilizar relaciones de referencia no materializadas
para exponer la dimensión para la navegación Sin la sobrecarga de crear
Agregaciones Para Dimensión atributos que son No Comúnmente Consulta. If el
Intermedio dimensiones son Grande para optimizar el rendimiento de la consulta se
puede materializar Lla Referencia Relación.
Como una consideración adicional del diseño, Note That Lla ejemplo en la figura 27
Incluye Mesas de copo de nieve con dos tablas de hechos /Measure grupos. Cuando
haya tablas de copo de nieve que se unen Un sola tabla del hecho/grupo de la medida,
como se representa en la figura 28, la única opción de diseño disponible es para
combinar atributos.

Figura 28 Una measure group


Las relaciones de referencia son No aplicable a Este escenario de diseño porque los
servicios de análisis sólo permiten una relación de referencia por dimensión por Grupo
de medida. En el ejemplo de la figura 28, esto significa que Cuando defines la geografía
tenue como una dimensión de referencia para las ventas de revendedores, usted debe o
Seleccione DIM revendedor o DIM Employee Como el Interdimensión media. Esta
selección o bien no es probable que va a satisfacer su autobúsrequisitos de Iness. Como
resultado, en este escenario, que puede utilizar Diseño Opción 1Combinar Atributos,
Para Modelo las tablas de dimensiones de copo de nieve.

Cerca Real-actualización de datos de tiempo


Siempre que tenga una aplicación Que requiere un bajo nivel de latencia, como en Cerca
tiempo real actualizar datos, debe tener en cuenta un conjunto especial de técnicas de
ajuste de rendimiento que Cna ayudarle a equilibrar bajos niveles de Datos latencia con
Óptima Procesamiento Y Consulta Rendimiento.
Generalmente hablando, niveles bajos de latencia de datos incluyen cada hora, Minuto Y
Segundo intervalos de actualización. Cuando necesites tener acceso a los datos
Análisis de servicios 2005 guía de rendimiento 91

refrescados en una base horaria, por ejemplo, su primer instinto puede ser procesar
todos los Su dimensiones y grupos de medida cada hora. Sin embargo, si toma
30 minutos para procesar Todos Base Objetos, para cumplir el requisito por hora, Usted
necesitaría reprocesar cada 30 Minutos. Para complicar aún más Este, también
necesitaría evaluar la Rendimiento impacto de cualquier operación de consulta
concurrente Que están compitiendo para recursos de servidor.
Ivez de procesar todos los grupos y dimensiones de la medida para cumplir con un
requisito de baja latencia, para mejorar el rendimiento y mejorar la capacidad de
administración, Puedes Utilice particiones para aislar el baja latencia Datos del resto
Dela Datos. Normalmente, esto significa que Crear uno o más Cerca tiempo real
particiones que se actualizan constantemente con datos actualizados. El aislamiento de
los datos de baja latencia sigue las mejores prácticas normales para particionar para que
pueda procesar y actualizar el Cerca tiempo real particiones sin afectar a las otras
particiones. Usando Esta solución, puede También reducir la cantidad de Datos Que
NoDs Para ser procesado en cerca tiempo real.
Con las particiones en su lugar, el siguiente paso es para decidir sobre Cómo vas a
Actualizar los datos en Su Cerca tiempo real Particións. Recuerde que las particiones
requieren que procese Ellos para actualizar los datos. Dependiendo el size de tu Cerca
tiempo real Particións Y la frecuencia requerida de los datos Actualizaciones, que puede
programar la actualización de Un Partición periódicamente o puede permite a los
servicios de análisis administrar la actualización de Un partición usando almacenamiento
en caché proactivo.
Almacenamiento en caché proactivo es una característica en los servicios de análisis que
sincroniza y mantiene de forma transparente a Partición o dimensión Mucho como una
cache. A partición de almacenamiento en caché proactiva o dimensión se conoce
comúnmente como Un cdolor, a pesar de que es todavía considerado que se una
partición o dimensión. Usando el almacenamiento en caché proactivo, Cna Permitir
Servicios de análisis a autoautomáticamente Detectar un cambio de datos en los datos
de origen, Para Incrementalmente actualizar o reconstruir la memoria caché con los
datos refrescados, y exponer trefrescaba los datos a los usuarios finales.
Incluso Aunque el almacenamiento en caché proactivo automatiza Mucho del trabajo de
actualización Para tí, desde una perspectiva de rendimiento, todavía debe considerar el
típico parámetros que impactan el rendimiento de procesamiento como Lla
frecuenciasCY de sistema de origen Actualizaciones, la cantidad de hora que se necesita
para actualizar o Reconstruir Lla Caché Y Lla Nivel de latencia de datos que los usuarios
finales están dispuestos a aceptar.
Desde una perspectiva de rendimiento, hay Tres grupos de Configuración que la consulta
de impacto responderNess y el procesamiento de perfORMANCE para el almacenamiento
en caché proactivo: configuración de notificación, actualizar ajustes, Y Disponibilidad
Configuración.
Notificación Configuración
Configuración de notificación impacto en cómo Analysis Services detecta los cambios de
datos en el sistema de origen. Para satisfacer las necesidades de diferentes
arquitecturas de datos, Analysis Services proporciona Unos pocos Mecanismos que
puede utilizar Para Notificar Servicios de análisis de los cambios de datos. Desde un
perspectiva de rendimiento, Lla Sondeo programado Mecanismo proporciona la mayor
flexibilidad Por Permitiendo que o bien reconstruir o Actualice de forma incremental la
Caché. Ilas actualizaciones de ncremental mejoran proactive caché de rendimiento por
Análisis de servicios 2005 guía de rendimiento 92

reducir la cantidad de datos que se deben procesar. Para las particiones proactivas de
almacenamiento en caché, actualizaciones incrementales Utilice un ProcessAdd Para
Anexar nuevos datos a la Caché. Para las dimensiones proactivas de almacenamiento en
caché, ProcessUpdate se realiza. Si que Uso Sondeo programado Sin actualizaciones
incrementales, la caché Es Siempre Completamente Reconstruido.
Refresh Configuración
Actualizar configuración iMpact Cuando Servicios de análisis Reconstruye o
actualizaciones la caché. Lla Dos actualización más importante Configuración Son
Intervalo de silencio Y Intervalo de anulación del silencio.
 Intervalo de silencio Define Cuánto tiempo tardan los servicios de análisiss desde
el punto en el que detecta un cambio a cuando comienzas Refrescante Lla Caché.
Dado que Analysis Services no sabe oficialmente Cuándo Fuente Datos Cambios
están acabados, el objetivo es que los servicios de análisis actualicen la caché
cuando haya una pausa en la propagación de los cambios de datos de origen. La
calma se define por un período de silence O ninguna actividad que debe expirar
Antes Servicios de análisis Refresca la caché. Considere el ejemplo en el que el
Intervalo de silencio se establece en Diez Segundos Y la caché está configurada
para Completoy Reconstruido durante la actualización. En este escenario, una vez
que Analysis Services detecte un cambio de datos, un contador de tiempo comienza.
Si Diez pasan segundos y no se detectan cambios adicionales, servicios de análisis
Reconstruye Lla Caché. Si Analysis Services detecta cambios adicionales durante ese
período de tiempo, el contador de tiempo se restablece cada vez que se detecta un
cambio.
 Intervalo de anulación del silencio determina la duración de los servicios de
análisiss antes de realizar una actualización forzada de la Caché. Intervalo de
anulación del silencio es útil cuando la base de datos de origen se actualiza con
frecuencia y el Intervalo de silencio Umbral No ser alcanzado, Desde el contador
de tiempo es continuamente Restablecer. En este escenario, puede utilizar el
Intervalo de anulación del silencio a la fuerza una actualización de la caché
después de un cierto período de tiempo, Cinco minutos o Diez Minutos. Por ejemplo,
si establece el Intervalo de anulación del silencio Para Diez minutos, cada Diez
Servicios de análisis de minutos Refresca Lla Caché sólo si se detectó un cambio.
Disponibilidad Configuración
Configuración de disponibilidad permiten controlar Cómo los datos se exponen a los
usuarios finales durante la caché Actualizar. Si su caché tarda varios minutos en
actualizar o reconstruir, es posible que desee considerar la configuración de la Caché
Configuración Para permitir que los usuarios vean una caché anterior hasta que la caché
refrescada esté lista. Por ejemplo, si que configurar una partición para utilizar MOLAP
automático configuraciónIntervalo de silencio = 10 segundos y Intervalo de
anulación del silencio = 10 minutos), durante la actualización de caché, use debe
consultar la caché anterior hasta que la nueva caché esté lista. Si la caché toma Cinco
horas para reconstruir, los usuarios deben esperar Cinco horas para la caché reconstruir
para CompletaY. Si usted siempre quieren Usuarios Para ver datos refrescados, Permitir
Lla Poner en línea inmediatamente Ajuste. Con Poner en línea inmediatamente
Habilitado dUrante actualización de caché todas las consultas se dirigen a la Relacional
base de datos de origen para recuperar los datos más recientes para los usuarios finales.
Si bien esto proporciona a los usuarios datos refrescados, también puede resultar en
rendimiento de consulta reducido Dado que los servicios de análisis deben reconsultas
Análisis de servicios 2005 guía de rendimiento 93

directas a los Relacional base de datos de origen. Si desea un control de grano más fino
sobre usuarios ver datos renovados, que puede utilizar el Latencia Ajuste para definir
un Umbral Que Controls Cuando las consultas son Redirigido a los base de datos de
origen durante una actualización de caché. Por ejemplo, si establece Latencia Para
Cuatro horas y la caché requiere Cinco horas para reconstruir, para Cuatro Horas, las
consultas serán satisfechas por la caché anterior. Después Cuatro horas, consultas Son
redirigido a la base de datos de origen hasta que la caché haya completado su
actualización.
Figura 29 ilustra cómo el almacenamiento en caché proactivo configuración de las
consultas de impacto durante la caché Reconstrucción.
Análisis de servicios 2005 guía de rendimiento 94

Figura 29 Proactivo cDolor ewww.xample.ch


Hablando en general, a Maximizar Consulta Rendimiento Lo es una buena práctica para
Aumentar Latency cuando sea posible Para Consultas puede continuar ejecutando
contra el existente Caché mientras que los datos son leídos y procesados en una nueva
caché siempre que se alcance el intervalo de silencio o anulación del silencio. Si se
establece el Latencia demasiado bajo, el rendimiento de la consulta puede sufrir Como
Consultas Son Continuamente Redirigido Para la fuente relacional. Cambiando de un
lado a otro entre la partición y la fuente relacional puede proporcionar una consulta muy
impredecible tiempos de respuesta para los usuarios. Si espera que las consultas
Constantemente Ser redirigido a la fuente base de datos, para Optimizar rendimiento de
Análisis de servicios 2005 guía de rendimiento 95

la consulta, debe garantizar que los servicios de análisis Entiende Lla Particiónes
rebanada de datos. No es necesario establecer el segmento de datos de una partición
para las particiones tradicionales. Sin embargo Lla Datos Slice debe ser Manualmente
configurado para las particiones de caché proactivas, así como cualquier ROLAP
partition. A la luz de la posible redirección de las consultas a la fuente relacional, el
almacenamiento en caché proactivo es Generalmente no se recomienda en los cubos
que se basan en múltiples orígenes de datoss.
Si usted Permitir almacenamiento en caché proactivo para su Dimensiones para
optimizar el procesamiento, Preste especial atención a Lla Latencia ajuste para cada
dimensión y el impacto general de redirigir las consultas a la base de datos de origen.
Cuando una cota cambia de la caché de cotas a la base de datos relacional, todas las
particiones que utilizan la cota deben reprocesarse completamente. Por cuando sea
posible, es una buena idea asegurarse de que el Latencia el ajuste le permite consultar
la caché antigua hasta que se reconstruya la nueva caché.
Análisis de servicios 2005 guía de rendimiento 96

Sintonización Recursos del servidor


Consulta Respuesta Y Eficiente Procesamiento Requieren Eficaz Uso De Memoria CpuY
Disco Recursos. Para Control el uso de estos recursos, Análisis Servicios 2005 Introduce
a Nuevo Memoria Arquitectura y roscado Modelo que utilizan Innovador técnicas para
Administrar solicitudes de recursos durante la consulta y el procesamiento Operaciones.
Para Optimizar uso de recursos en varios entornos de servidores y cargas de trabajo,
por cada Análisis Servicios Ejemplo Servicios de análisis Expone una colección de
propiedades de configuración del servidor. Para proporcionar facilidad deConfiguración,
durante la instalación de servicios de análisis 2005, malguno de Estas propiedades del
servidor Son Dinámicamente Asignado Basado En Lla del servidor Física memoria y
número de Lógica Procesadores. Dada su naturaleza dinámica, Lla Predeterminado
Valores para muchos de los Servidor Propiedades son suficientes Para Más Servicios de
análisis Implementaciones. Este es un comportamiento diferente al que versiones
anteriores de Analysis Services donde las propiedades del servidor se Típicamente
valores estáticos asignados que requiere Directa Modificación. Mientras que el Servicios
de análisis 2005 los valores predeterminados se aplican a la mayoría de las
implementaciones hay Algunos Implementación escenarios en los que se le puede
requerir Final Afine las propiedades del servidor para optimizar la utilización de recursos.
Independientemente de si Necesita Para alterar la Servidor Configuración propiedades,
se Es Siempre Un mejores prácticas para Familiarícese con Servicios de Analysis Usos
memoria, CPU y disco Recursos para que pueda evaluar Cómo recursos son Ser Utilizado
En su entorno de servidor.
Para cada recurso, este Sección Presenta dos temas: 1 un tema que Describe Cómo
utiliza Analysis Services Sistema recursos durante la consulta y el procesamiento, Y 2 un
tema que Organiza Práctico Dirección sobre el diseñar escenarios y arquitecturas de
datos que puedan requerir la sintonización de propiedades de servidor adicionales.
Comprensión de cómo los servicios de análisis utilizan la memoria – Tomar las mejores
decisiones sobre el desempeño Memoria la utilización requiere entender cómo el análisis
Servicios server gestiona Memoria General así como Cómo maneja el Memoria
Demandas De procesamiento y consulta Operaciones.
Optimizar memOry uSabio – Optimizar el uso de memoria requiere aplicando una serie
de técnicas para detectar si you tienen suficiente Memoria Recursos Y Para Identificar
Ésos propiedades de configuración Que Impacto Memoria utilización de recursos y
rendimiento general.
Comprensión hOW análisisis servicios uses Cpu reSources -Tomar las mejores decisiones
sobre el desempeño Cpu la utilización requiere entender cómo el análisis Servicios
server Usos Recursos de CPU General así como Cómo maneja el Cpu Demandas De
procesamiento y consulta Operaciones.
OptimizariNG CPU uSabio - Optimizar Cpu el uso requiere aplicando una serie de
técnicas para detectar si tiene suficiente Procesador recursos e identificar Ésos
propiedades de configuración Que Impacto Cpu utilización de recursos y rendimiento
general.
Comprensión hOW unnServicios alysis uSu dIsk reSources -Tomar las mejores
decisiones de rendimiento sobre la utilización de recursos de disco requiere entender
cómo el análisis Server de servicios uSu disco recursos en general así como Cómo
maneja el recurso de disco demandas de procesamiento y consulta de operaciones.
Análisis de servicios 2005 guía de rendimiento 97

Optimizar dIsk usaDar – La optimización del uso del disco requiere aplicando una serie
de técnicas para detecte si tiene suficiente Disco recursos y para identificar Ésos
propiedades de configuración Que Impacto recurso de disco utilización y rendimiento
general.

Comprensión hServicios de análisis de ow utiliza la


memoria
Servicios de análisis 2005 presenta una nueva arquitectura de memoria que asigna y
administra la memoria de una manera más eficiente que las versiones anteriores de
Analysis Services donde la gestión de la memoria de las dimensiones y otros objetos
límites colocados En consulta y procesamiento de rendimiento. El objetivo principal de
mgerencia de Emory en el servicio de análisis 2005 es que Eficazmente Utilizar memoria
disponible mientras Equilibrio las demandas competitivas de procesamiento y consulta
de operaciones.
Para ayudarle a obtener cierta familiaridad con la Distintas las exigencias de memoria de
estos Dos Operaciones Siguientes Es un alto nivel Descripción general de cómo Analysis
Services 2005 utiliza la memoria durante el procesamiento y la consulta:
 Consulta—Durante la consulta, la memoria se utiliza en varias etapas de la
ejecución de la consulta para Satisfacer Consulta Solicitudes. Para promover la
rápida recuperación de datos, el Motor de almacenamiento Caché se utiliza para
almacenar mida los datos del grupo. Para promover el cálculo rápido evaluación, la
Motor de ejecución de consultas Caché se utiliza para almacenar resultados del
cálculo. Para Eficientemente Recuperar Dimensións, los datos de cota se paginan en
la memoria según sea necesario por consultas, en lugar de ser cargado en la
memoria en el inicio del servidor, Como en versiones anteriores de Analysis Services.
Para Mejorar Consulta Rendimiento, es esencial tener suficiente memoria disponible
para cachear los resultados de los datos, los resultados del cálculo y los datos de
dimensión necesarios.
 Procesamiento—Durante el procesamiento, la memoria se utiliza para almacenar
temporalmente, índice y agregado datos antes de escribir en el disco. Cada trabajo
de procesamiento solicita una cantidad específica de memoria del gobernador de
memoria de Analysis Services. Si memoria suficiente no es disponible para realizar el
trabajo, el trabajo está bloqueado. Para asegurar que el procesamiento proceda de
manera eficiente, es importante verificar que hay suficiente memoria disponible para
completar satisfactoriamente todos los trabajos de procesamiento y optimizar el
cálculo de las agregaciones en la memoria.
Dados los distintos Memoria demandas de consulta y procesamiento, es importante no
sólo entender cómo cada operación impacta el uso de la memoria, Pero también es
importante entender cómo el análisis Server de servicios administra la memoria en
todos los servidores Operaciones. Lla secciones que siguen describir las técnicas de
gestión de memoria de Lla Análisis Server de servicios así como Cómo maneja el
demandas específicas de la consulta y del proceso

Memoria Gestión
A eficazly entender los servicios de análisis de memoria técnicas de gestión, primero
debe considerar el Máximo cantidad de memoria que los servicios de análisis Cna
Dirección. Analysis ServiCES se basa en Microsoft Windows virtual mEmory para su pool
Análisis de servicios 2005 guía de rendimiento 98

de páginas de memoria. La cantidad de memoria que puede abordar depende de la


versión de SQL Servidor que están utilizando:
 Para SQL Server 2005 (32-bit), la cantidad máxima de memoria virtual que puede
abordar un proceso de análisis de servicios es 3 gigabytes (GB). De forma
predeterminada, los servicios de análisis el proceso sólo puede dirigirse a 2 GB Sin
embargo es posible Permitir Análisis Servicios a la dirección 3 Gb. Para Directrices
sobre cómo para optimizar la memoria direccionable de Analysis Services, Ver
InArrugando aVailable mEmory.
 SQL Server 2005 (64-bit) no está limitado por un límite de espacio de direcciones
virtuales de 3 GB, lo que permite que la versión de los servicios de análisis de 64 bits
utilice tanto espacio de direcciones como sea necesario. Esto se aplica tanto a las
arquitecturas IA64 como X64.
Para realizar operaciones de servidor, Analysis Services solicita asignaciones de memoria
desde el sistema operativo Windows, y Entonces devuelve esa memoria al sistema
operativo Windows Cuando la memoria asignada ya no es necesaria. Servicios de
análisis Gestiona la cantidad de memoria asignada a el servidor Por Usando Un Memoria
Gama Es decir definidas por dos propiedades de servidor: Memory\TotalMemoryLimit
Y Memory\LowMemoryLimit.
 Memory\TotalMemoryLimit representa la límite superior de la memoria que el
servidor utiliza para administrar Todos Análisis de operaciones de servicios. Si
Memory\TotalMemoryLimit se establece en un valor entre 0 y 100, se Es
Interpretado como porcentaje de la memoria física total. Si la propiedad está
establecida en un valor superior a 100, Analysis Services lo interpreta como un valor
de memoria absoluto en bytes. El valor predeterminado para
Memory\TotalMemoryLimit es 80, que traduce a 80% de la cantidad de memoria
del servidor. Tenga en cuenta que esta propiedad no define un límite duro en la
cantidad de memoria que utiliza Analysis Services. Algo, es un límite suave que se
utiliza para identificar situaciones en las que el servidor está experimentando
memory la presión. Para algunas operacionesComo procesamiento, si los servicios de
análisis requiere memoria adicional más allá del valor de
MemoriaTotalMemoryLimit, Lla Análisis Server de servicios Intentos para reservar
esa memoria independientemente del valor de la propiedad.
 MemoriaBajaMemoryLimit representa el límite inferior de memoria que utiliza el
servidor para administrar todos Análisis de operaciones de servicios. Como el
Memory\TotalMemoryLimit Propiedad se interpreta un valor entre 0 y 100 como
porcentaje de la memoria física total. Si la propiedad está establecida en un valor
superior a 100, Analysis Services lo interpreta como un valor de memoria absoluto
en bytes. El valor predeterminado para el Memory\LowMemoryLimit la propiedad
es 75, lo que se traduce en 75% de la cantidad de memoria física en el análisis
Server de servicios.
Analysis Services utiliza estos ajustes de intervalo de memoria Para Administrar Cómo
es la memoria asignado y utilizado en varios niveles de memoria Presión. Cuando el
servidor experimenta niveles elevados de la presión de la memoria, Servicios de análisis
Utiliza un conjunto de roscas más limpias, un hilo limpiador por procesador lógico, para
controlar la cantidad de memoria asignada a varias operaciones. Dependiendo la
cantidad de presión de la memoria, Lla Limpiador Hilos Son Activado en paralelo Para
shrink Memoria según sea necesario. El hilo limpiadors memoria limpia según a tres
niveles generales de presión de la memoria:
Análisis de servicios 2005 guía de rendimiento 99

 Sin presión de memoria—Si la memoria utilizada por Analysis Services es Abajo el


valor establecido en el MemoriaLowMemoryLimit propiedad, el limpiador no hace
nada.
 Cierta presión de memoria—Si la memoria utilizada por Analysis Services Es entre
los valores establecidos en el MemoriaLowMemoryLimit y la
MemoriaTotalMemoryLimit propiedades, el limpiador comienza a limpiar Memoria
uso de un costo/beneficio Algoritmo. Para más información sobre cómo el limpiador
Encoge Memoria Ver Retráctil vs. noNoshrinkable mEmory.
 Alta presión de memoria—Si la memoria utilizada por Analysis Services está por
encima del valor establecido en la MemoriaTotalMemoryLimit propiedad, el
limpiador limpia hasta que la memoria utilizada por Analysis Services llegue a la
Memory\TotalMemoryLimit. Cuando la memoria utilizada por Analysis Services
excede Lla MemoriaTotalMemoryLimit, el servidor entra en unn modo agresivo
donde se limpia todo que pueda. Si la memoria utilizada es en su mayoría no-
Retráctil (más información sobre no retráctil Memoria está encluded En la siguiente
sección), Y Cnano ser purgado, Servicios de análisis Detectars Que el limpiador fue
incapaz de limpiar mucho. Mef está en esta agresiva Modo de limpieza, es Trata para
cancelar solicitudes activas. Cuando se alcanza este punto, es posible que se vea un
rendimiento de consulta deficiente, fuera de los errores de memoria en el registro de
sucesos y lento Conexión Veces.

Retráctil vs. No-shrinkable Memoria


Analysis Services divide la memoria en dos categorías primarias: me retráctilMory y
memoria no retráctil como se muestra en la figura 30.

Figura 30 Retráctil vs. nEn-shrinkable mEmory


Cuando se activa la limpiadora, comienza a desalojar elementos de memoria retráctil,
basándose en un algoritmo de costo/beneficio que tiene en cuenta una variedad de
factores, incluyendo la frecuencia con la que se utiliza la entrada, la cantidad de
recursos necesarios para resolver las entradas, y ¿Cuánto espacio es consumidas por
entradas relacionadas. Memoria encogible Elementos Incluyen lo siguiente:
 Resultados almacenados en caché—Los resultados almacenados en caché
incluyen el motor de almacenamiento caché de datos y el motor de ejecución de
consultas caché de cálculo. Como se indicó anteriormente en este documento, el
Análisis de servicios 2005 guía de rendimiento 100

Motor de almacenamiento caché de datos contiene datos de grupo de medida y la La


caché del motor de cálculo de ejecución de consultas contiene Cálculo Resultados.
Mientras que ambos Cachés Cna Ayuda mejorar los tiempos de respuesta de
consultas, Lla caché de datos proporciona la mayor beneficio para consultar
Rendimiento Por sTorre datos que se han almacenado en caché desde el disco. IN
situaciones de presión de la memoria, el limpiador Encogimientos la memoria
utilizada para resultados almacenados en caché. Con esto en mente, es una buena
práctica monitorear el uso de la memoria para que puede minimizar los escenarios
en los que niveles elevados de presión de memoria forzar la eliminación de
resultados almacenados en caché. Para más información sobre cómo supervisar la
presión de la memoria, Ver Monitoreo mEmory management.
 Paginado en datos de dimensión—Los datos de cota se paginan desde los
almacenes de cotas según sea necesario. Lla paginadoen los datos se mantiene en la
memoria hasta que el limpiador Es bajo presión de memoria para quitarlo. Tenga en
cuenta que este comportamiento es diferente a las versiones anteriores de servicios
de análisis Donde todos los datos de dimensión se residente in memoria.
 Expirado Sesiones—Cliente ocioso Sesións que han excedió una longevidadDebe
Son eliminado por Lla Limpiador basado en el nivel de presión de la memoria.
Spropiedades del servidor everal trabajar juntos para gestionar la longevidad de
Inactivo Sesións. Para obtener más información sobre cómo evaluar estas
propiedades, Ver Monitorizando el timeout de sesiones ociosas.
Memoria no encogible Elementos Son no impactado por el Servicios de análisis
Limpiador. Memoria no encogible incluye los siguientes componentes:
 Metadatos Para Cada Servicios de análisis base de datos, los metadatos inicializado
y cargado en la memoria a pedido. Los metaDatos incluyen la definición de todos los
objetos de la base de datos (no los elementos de información). Cuantos más objetos
de la base de datos (incluidos los cubos, los grupos de medida, las particiones y las
dimensiones) y cuantas más bases de datos tenga en un servidor determinadoLla
más grande el Metadatos Arriba en la memoria. Tenga en cuenta que esta
sobrecarga generalmente no es Grande para la mayoría de las implementaciones.
Sin embargo que Cna Experiencia gastos generales significativos Si yosu análisis
Server de servicios Contiene Cientos de bases de datos con decenas o cientos de
objetos por base de datos, como en las soluciones hospedadas. Para obtener más
información sobre cómo supervisar los metadatos escuchados, Ver Minimizar
metadata overhead.
 Sesiones activas—Para cada sesión activa, los miembros calculados, conjuntos con
nombre, conexiones y otra información de sesión asociada se conservan como
memoria no retráctil.
 Memoria de consulta y memoria de proceso—Servicios de análisis reservas
Específico Áreas de la memoria Para Temporal uso durante consulta y
procesamiento. Durante la ejecución de una consulta, por ejemplo, Memoria Quizás
Utilizado Para materializar conjuntos de datos como durante la Cruz Unirse De Datos.
Dprocesamiento de uranteMemoria se utiliza para Temporalmente almacenar,
indexar y agregar datos Antes es se escriben en el disco. Estos los elementos de
memoria no se pueden reducir porque son Sólo necesario para completar un
Específico Servidor Operación. Tan pronto como el la operación ha terminado, estos
elementos se quitan de la memoria.
Análisis de servicios 2005 guía de rendimiento 101

Memoria Demandas Durante Consulta


Durante consulta, la memoria se utiliza principalmente para almacenar los resultados
almacenados en caché en los datos y calculation caches. Como se indicó anteriormente,
De las dos cachés, la que proporciona más el beneficio de rendimiento significativo es
los datos cDolor. Cuando los servicios de análisis FIRcomienzo del St, Lla Datos caché es
Vacío. Hasta que el Datos Caché Es cargado con datos de consultas, Analysis Services
debe resolver consultas de usuario Por usando los datos almacenados en el disco, ya sea
escaneando el datos de hechos o mediante agregaciones. Una vez que estas consultas
se cargan en el Datos caché, permanecen allí hasta que el hilo limpiador Los elimina o la
caché se descarga durante Grupo de medida O proceso de partición.
A menudo puede aumentar la capacidad de respuesta de la consulta precargando datos
en el caché de datos ejecutando un conjunto generalizado de consultas de usuario
representativas. Este process se llama caché de calentamiento. Mientras que el
calentamiento en caché puede ser una técnica útil, el calentamiento de la caché no debe
utilizarse como sustituto del diseño y cálculo de un conjunto apropiado de agregaciones.
Para más información sobre el calentamiento de la caché, Ver TH que se calientae dAta
cacHge.

Memoria Demandas Durante Procesamiento


Durante el procesamiento, se requiere memoria para almacenar temporalmente datos
de hechos Y agregaciones antes de escribirlas en disco.
Procesamiento Datos de hechos
El procesamiento utiliza un esquema de doble búfer para leer y proceso de hecho
registros de la base de datos de origen. Analysis Services rellena un buffe inicialr desde
la base de datos relacional, Y entonces rellena un segundo búfer desde el búfer inicial
donde se ordenan los datos, se indizanY Escrito al archivo de partición en segmentos.
Cada segmento consiste en 65.536 filas el número de bytes de cada segmento varía
según el tamaño de cada fila.
THge OLAP\Process\BufferMemoryLimit Propiedad controla la cantidad de memoria
que se utiliza por trabajo de procesamiento para almacenar Y datos de caché
procedentes de Un origen de datos relacional. Este Ajuste junto con
OLAP\Process\BufferRecordLímite determina el número de filas que se pueden
procesar en Lla Búfers. Lla OLAP\Process\BufferMemoryLimit Ajuste Es
Interpretado como porcentaje del total Física Memoria Si el valor es menor que 100, o
un valor absoluto de bytes si el valor es mayor que 100. El valor por defecto es 60, lo
que indica que se puede utilizar un máximo de 60% de la memoria física total. Para la
mayoría despliegues, el valor predeterminado De OLAP\Process\BufferMemoryLimit
Proporcionars procesos suficientescanta la actuación. Para más información sobre
escenarios en los que puede ser apropiado cambiar el valor de esta propiedad, Ver
Sintonización mEmory para partition processing.
Construcción de agregados
Servicios de análisis utiliza la memoria Durante la construcción de Agregaciones. Cada
partición tiene su propio límite de espacio del búfer de agregación. Tlas propiedades WO
controlan el tamaño del búfer de agregación:
 OLAP\Process\AggregationMemoryLimitMax es una propiedad de servidor que
controla la cantidad máxima de memoria que se puede utilizar para el procesamiento
de agregaciones Para trabajo de procesamiento de partición. Este valor es
Análisis de servicios 2005 guía de rendimiento 102

Interpretado como porcentaje de la memoria total si el valor es menor que 100, o un


valor absoluto de bytes si el valor es mayor que 100. El valor predeterminado es 80,
lo que indica que se puede utilizar un máximo de 80% de la memoria física total para
el procesamiento de agregados.
 OLAP\Process\AggregationMemoryLimitMin es una propiedad de servidor que
controla la cantidad mínima de memoria que puede ser utilizado para el
procesamiento de agregación por trabajo de procesamiento de partición. Este valor
es Interpretado como porcentaje de la memoria total si el valor es menor que 100, o
un valor absoluto de bytes si el valor es mayor que 100. El valor predeterminado es
10, lo que indica que se usará un mínimo del 10% de la memoria física total para el
procesamiento de agregación
Para una partición determinada, todos Agregaciones se calculan a la vez. Como una
mejor práctica general, es una buena idea para verificar que todos Agregaciones Cna
encajar en la memoria durante la creación; otherwise archivos temporales Son Utilizado,
que puede ralentizar abajo procesando Aunque el impacto En el rendimiento no es tan
significativo como En Prior versiones de Analysis Services. Para obtener más información
sobre cómo supervisar el uso de archivos temporales, Ver Sintonización mEmory para
partition processing.

Optimizar mEmory Uso


Optimización del uso de memoria para consulta y procesamiento las operaciones
requieren el suministro del servidor con la memoria adecuada y la comprobación de que
las propiedades de administración de memoria están configuradas correctamente para el
servidor Ambiente. Este Sección Contiene un resumen de la Directrices Que Cna
ayudarle a optimizar el uso de la memoria de Servicios de análisis.

Aumento memoria disponible


Si tiene uno o más cubos grandes o complejos y está utilizando SQL Servidor 2005 (32-
bit), utiliza Windows Advanced Server® o Datacenter Server con SQL Servidor 2005
Enterprise Edition (o SQL Servidor 2005 Developer Edition) para permitir a los servicios
de análisis abordar hasta 3 GB de memoria. De lo contrario, la cantidad máxima de
memoria que pueden abordar los servicios de análisis es 2 Gb.
Para permitir que los servicios de análisis se dirijan a más de 2 GB de memoria física con
cualquiera de estas ediciones, habilite la función de afinación de la memoria de la
aplicación Windows. Para lograr esto, utilice el /3GB Cambie el archivo boot. ini si
establece el /3GB Switch en el archivo boot. ini, el servidor debe tener al menos 4 GB
de memoria para garantizar que el sistema operativo Windows también tenga suficiente
memoria para los servicios del sistema. Si ejecuta otras aplicaciones en el servidor,
también debe factorizar sus requisitos de memoria.
Si tiene uno o más cubos muy grandes y complejos y sus necesidades de memoria no se
pueden cumplir en el espacio de direcciones de 3 GB, SQL Servidor 2005 (64-bit)
permite al proceso de análisis de servicios acceder a más de 3 GB de memoria. También
es posible que desee considerar SQL Servidor 2005 (64-bit) en Diseño escenarios en los
que tiene muchas particiones que necesita procesar en dimensiones paralelas o grandes
que requieren una gran cantidad de memoria para procesar.
Si no puede Agregar memoria física adicional para aumentar el rendimiento, aumente el
tamaño de los archivos de paginación en el análisis Servicios el servidor puede prevenir
Análisis de servicios 2005 guía de rendimiento 103

errores de memoria cuando la cantidad de memoria virtual asignada excede la cantidad


de memoria física en el análisis Servicios Servidor.

Monitoreo gestión de memoria


Dado que Lla Memory\TotalMemoryLimit Y Memory\LowMemoryLimit las
propiedades son porcentajes por defecto, reflejan dinámicamente la cantidad de
memoria física en el servidor, incluso si se agrega nueva memoria al servidor. Ucante
estos valores por defecto los porcentajes son beneficiosos en las implementaciones
donde Analysis Services es la única aplicación que se ejecuta en el servidor.
If servicios de análisis Es instalado en un entorno de aplicaciones compartida, como, por
ejemplo, si tiene servicios de análisis instalados en el mismo equipo que SQL Servidor,
considere asignar valores estáticos a estas propiedades en lugar de porcentajes con el
fin de restringir los servicios de análisis Memoria Uso. En Shared Aplicación entornos,
también es una buena idea restringir la forma en que otras aplicaciones en el servidor
utilizan la memoria.
Cuando Modificar Llase Propiedades es una buena práctica mantener la diferencia entre
el Memory\LowMemoryLimit Y Memory\TotalMemoryLimit es por lo menos Cinco
Por ciento, de modo que el el limpiador puede suavemente transición a través de
diferentes niveles de presión de memoria.
Puede supervisar la administración de la memoria del análisis Server de servicios Por
uso de los siguientes contadores de rendimiento mostrado en la tabla 3.
Cuadro 3 Memoria Administración performance ccounters
Rendimiento cOunter name Definición

MSAS 2005: Memory\Memory Muestra el Memory\LowMemoryLimit del archivo de


límite bajo KB configuración
MSAS 2005: Memory\Memory Muestra el Memory\TotalMemoryLimit del archivo de
límite alto KB configuración.
MSAS 2005: Memory\Memory Muestra el uso de memoria del proceso del servidor.
uso KB Este es el valor que se compara con
Memory\LowMemoryLimit y Memory\TotalMemoryLimit.
Tenga en cuenta que el valor de este contador de
rendimiento es el mismo que muestra el contador de
rendimiento Process\Private bytes.
MSAS 2005: Memory\Cleaner Muestra cuántas veces se compara el uso de memoria
balance/sec actual con la configuración. El uso de la memoria se
comprueba cada 500ms, así que el contador se
tendencia hacia 2 con ligeras desviaciones cuando el
sistema está bajo alta tensión.
MSAS 2005: memoria Muestra la cantidad de memoria, en KB, no sujeto a
Memory\Cleaner KB no retráctil purga por el limpiador de fondo.

MSAS 2005: KB de memoria Muestra la cantidad de memoria, en KB, sujeta a purga


Memory\Cleaner retráctil por el limpiador de fondo.
Análisis de servicios 2005 guía de rendimiento 104

MSAS 2005: Memory\Cleaner Pantallas Lla cantidad de memoria, en KB, conocida por
Memory KB el limpiador de fondo. (Memoria más limpia encogible
+ memoria más limpia no-retráctil.) Tenga en cuenta
que este contador se calcula a partir de la información
contable interna, por lo que puede haber alguna
pequeña desviación de la memoria reportada por el
funcionamiento Sistema.

Minimizing sobrecarga de metadatos


Para cada base de datos, Metadatos se inicializa y Cargado En No retráctil Memoria. Una
vez cargado en memoria, se no es sujeto a Purga por el hilo limpiador.
Para Monitor Lla Metadatos Arriba Para cada base de datos
1. Reiniciar el servidor Analysis Services.
2. Nota Lla Comenzando valor de la MSAS 2005: Memory\Memory uso KB contador de
rendimiento.
3. Pformulario eral una operación Que Fuerzas inicialización de metadatos de una base
de datos, como iterating sobre la lista de objetos en la aplicación de ejemplo de
navegador AMO, o emitiendo Un comando backup en la base de datos.
4. Una vez finalizada la operación, Nota Lla Final valor de MSAS 2005:
Memory\Memory uso KB. Lla diferencia entre el valor inicial y el valor final
Representa Lla Memoria Arriba De Lla Base.
Para cada base de datos, usted debe Consulte crecimiento de memoria proporcional al
número de bases de datos que inicialice. Si te das cuentae que una gran cantidad de la
memoria del servidor es asociado con la sobrecarga de metadatos, puede querer
considere si puede tomar medidas para Reducir Lla sobrecarga de memoria Llaf una
base de datos determinada. Lla la mejor manera de hacerlo es reExamine el diseño del
cubo. Un excesivo número de dimensiones los atributos o particiones pueden aumentar
la Metadatos Arriba. Cuando sea posible, debe seguir el Diseño mejores prácticas
esbozadas en Optimizar el dEnension dEsign Y Reducir attribute overhead.

Monitoreo Lla Timeout De sesiones ociosas


Las sesiones de cliente se gestionan en memoria. En general, existe una relación uno a
uno entre conexiones y sesiones. Mientras que ela conexión ACH consume
aproximadamente 32 Kb De MemoriaTla cantidad de memoria que consume una sesión
determinada depende de las consultas y cálculos realizados en dicha sesión. Puede
supervisar el número actual de sesiones de usuario y conexiones Por utilizando el MSAS
2005: Connection\Current Conexiones Y MSAS 2005: Connection\Current
sesiones de usuario Contadores de rendimiento para evaluar el conexión y sesión
demandas en su sistema.
Como se indicó anteriormente, las sesiones activas Consumir Nomemoria encogible, Que
Expirado Sesiones Consumir memoria retráctil. TWO propiedades principales disuadirMío
Cuando expira una sesión:
 Lla MinIdleSessionTimeout es el Umbral tiempo de inactividad en segundos tras el
cual el servidor Cna destruya una sesión basándose en el nivel de presión de la
memoria. Lla MinIdleSessionTimeout se establece en 2,700 segundos
(45 minutos). Esto significa que una sesión debe estar inactiva por 45 minutos antes
Análisis de servicios 2005 guía de rendimiento 105

se considera una sesión caducada que el limpiador puede quitar Cuando presión de
memoria se superan los umbrales.
 Lla MaxIdleSessionTimeout es el tiempo en segundos después de que el servidor
destruir por la fuerzas una sesión ociosa sin importar la presión de la memoria. De
forma predeterminada, el MaxIdleSessionTimeout se establece en Cero segundos,
lo que significa que el Inactivo SuSion nunca es eliminada por la fuerza por este
ajuste.
Además de Lla Propiedades que administran las sesiones caducadas, existen
propiedades que gestionan la longevidad de las sesiones que pierden su conexión. UNA
sesión de conexión se denomina sesión huérfana.
 Lla IdleOrphanSessionTimeout es una propiedad de servidor de que controla el
tiempo de espera de las sesiones sin conexión. De forma predeterminada, esta
propiedad se establece en 120 segundosTres minutos), lo que significa que si una
sesión pierde su conexión y Un reconexión es No hecho dentro de 120 Segundos, el
análisis Server de servicios destruir por la fuerzas esta sesión.
 IdleConnectionTimeout controla el tiempo de espera de las conexiones que no se
han utilizado durante un determinado período. De forma predeterminada, esta
propiedad se establece en Cero Segundos. Esto significa que la conexión nunca sale
a la vez. Sin embargo, gIven que la conexión No existen fuera de una sesión,
Cualquier la conexión ociosa se ser limpiado siempre Su Sesión se destruye.
En la mayoría de los escenarios, estas configuraciones predeterminadas proporcionan
una administración adecuada de las sesiones. Sin embargo, puede haber escenarios en
los que desee administrar sesiones de grano más fino. Por ejemplo, es posible que
desee modificar estos ajustes según la cantidad de nivel de Memoria Presión Que Lla
Análisis Server de servicios está experimentando. Durante Ocupado periodos de
Elevado presión de la memoria, you puede querer destruir sesiones ociosas después de
15 Minutos. Unt veces cuando el servidor no está ocupado, desea que las sesiones
ociosas se destruyan después de 45 Minutos. Para lograr esto, configure el
MinIdleSessionTimeout Propiedad Para 900 segundos (15 minutos y la
MaxIdleSessionTimeout a 2,700 Segundos.
Tenga en cuenta que bntes cambiar estas propiedades, es importante entender cómo
su aplicación cliente Gestiona Sesiones y conexiones. Algunas aplicaciones cliente, por
ejemplo, tienen sus propios mecanismos de tiempo de espera para conexiones y
sesiones Que se gestionan independientemente de los servicios de análisis.

Sintonización Memoria Para procesamiento de


particiones
La memoria de afinación para el proceso de partición implica tres técnicas generales:
 Modificar el OLAP\Process\BufferMemoryLimit propiedad según corresponda.
 Verificar que memoria suficiente Es Disponible Para construcción de agregados.
 Partir trabajos de procesamiento en memoria-ctensado Entornos.
Modificar Lla OLAP\Process\BufferMemoryLimit propiedad as Apropiado
OLAP\Process\BufferMemoryLimit determina el tamaño de Lla datos de hechos
Búferes utilizar durante el procesamiento de particiones. Mientras que el valor
predeterminado de la OLAP\Process\BufferMemoryLimit es suficiente para muchas
Análisis de servicios 2005 guía de rendimiento 106

implementaciones, puede encontrar es útil para altere la propiedad en los siguientes


escenarios:
 Si la granularidad de su grupo de medida está más resumida que la tabla de datos
de origen relacional, en general es posible que desee considerar el aumento del
tamaño de los búferes para facilitar la información Agrupación. Por ejemplo, si los
datos de origen tienen una granularidad del día y el grupo de medida tiene una
granularidad del mes, los servicios de análisis deben agrupar los datos diarios por
mes antes de escribir en el disco. Este Agrupación sólo se produce dentro de un
único búfer y se vuelca al disco una vez que está lleno. Al aumentar el tamaño del
búfer, disminuye el número de veces que los búferes se intercambian en el disco y
también disminuye el tamaño de la datos de hechos en el disco, que también puede
mejorar el rendimiento de las consultas.
 Si el grupo de medida OLAP es de la misma granularidad que la tabla Fact relacional
de origen, puede beneficiarse del uso de búferes más pequeños. Cuando la tabla de
datos relacional y el grupo de medida OLAP se encuentran aproximadamente en el
mismo nivel de detalle, no es necesario Grupo los datos, porque todas las filas
permanecen distintas y no se pueden agregar. En este escenario, la asignación de
buffers más pequeños es útil, lo que le permite ejecutar más trabajos de
procesamiento en paralelo.
Verificar que memoria suficiente Es Disponible Para construcción de agregados
Durante el procesamiento, el búfer de agregación determina la cantidad de memoria Es
decir disponible para construir Agregaciones para una partición dada. Si el Agregación el
buffer es demasiado pequeño, los servicios de análisis Agregación buffer con archivos
temporales. Temporary los archivos se crean En TempDir Carpeta Cuando la memoria
está llena y los datos ordenados y escrito en disco. Cuando se crean todos los archivos
necesarios, se combinan juntos al destino final. El uso de archivos temporales puede
Potencialmente resultar en un poco de rendimiento degradación durante el proceso; sin
embargo, el impacto es Generalmente no significativa Dado que la operación es
simplemente un tipo de disco externo. Tenga en cuenta que este comportamiento es
diferente En versiones anteriores de Analysis seservicios.
Para supervisar cualquier archivo temporals utilizado durante el proceso, Revisión Lla
MSAS 2005: proc Agregations \Bytes de archivo temporales escritos/seg. o de
la MSAS 2005: proc Agregations \Filas de archivo temporales escritas/seg.
Rendimiento Contadores.
Además al procesar varias particiones en paralelo o al procesar un cubo entero en una
sola transacción, debe asegurarse de que la memoria total requerida no exceda el
Memory\TotalMemoryLimit Propiedad. Si los servicios de análisis alcanzan el
Memory\TotalMemoryLimit durante el proceso, no No permita que el búfer de
agregación crezca y puede hacer que los archivos temporales se utilicen durante el
procesamiento de agregación. Además, si no tiene suficiente espacio de dirección virtual
para estas operaciones simultáneas, puede que reciba errores de memoria. Si no tiene
suficiente memoria física, se producirá la localización de la memoria. Si se procesa en
paralelo y Usted ha limitado Recursos, considere hacer menos en paralelo.
Partir trabajos de procesamiento en memoria-ctensado Entornos
Durante el proceso de partición en memoriaentornos limitados, puede encontrar un
escenario en el que ProcessFull operación en un grupo de medida o partición No
proceda debido a los recursos de memoria limitados. Lo que está sucediendo en este
escenario es que el trabajo de proceso solicita una cantidad estimada de memoria para
Análisis de servicios 2005 guía de rendimiento 107

completar el total ProcessFull Operación. Si los servicios de análisis Gobernador de


memoria No asegurar suficiente memoria para el trabajo, el trabajo Cna sea falle o
bloquee otros trabajos ya que espera a que se disponga de más memoria. Como
alternativa a la realización de un ProcessFull, puede dividir la operación de
procesamiento en dos pasos realizando dos operaciones en serie: ProcessData Y
ProcessIndexes. En este escenario, la solicitud de memoria será menor para cada
operación secuencial y es menos probable que exceda los límites de los recursos del
sistema.

Calentando el caché de datos


Durante la consulta, la memoria se utiliza principalmente para almacenar los resultados
almacenados en caché en los cachés de datos y cálculos. Para optimizar los beneficios
De caché, a menudo puede aumentar la capacidad de respuesta de la consulta
precargando datos en el caché de datos ejecutando un conjunto generalizado de
consultas de usuario representativas. Este proceso se llama caché de calentamiento.
Para hacer esto, you puede crear una aplicación que ejecute un conjunto de consultas
generalizadas para simular la actividad típica del usuario con el fin de agilizar el proceso
de rellenar la caché de resultados de la consulta. Por ejemplo, si determina que los
usuarios están consultando por mes y por producto, puede crear un conjunto de
consultas que soliciten datos por producto y por mes. Si ejecuta esta consulta cada vez
que inicia Analysis Services o procesa el grupo de medida o una de sus particiones, se
precargará la caché de resultados de la consulta con los datos utilizados para resolver
estas consultas antes de que los usuarios envíen estos tipos de consulta. Esta técnica
mejora sustancialmentes Análisis de los tiempos de respuesta de los servicios a las
consultas de usuario anticipadas por este conjunto de consultas.
Para determinar un conjunto de consultas generalizadas, puede utilizar el registro de
consulta servicios de análisis para determinar la dimensión Atributos consultado
normalmente por consultas de usuario. Puede utilizar una aplicación, como una macro
de Microsoft Excel o un archivo de secuencias de comandos para calentar la caché
siempre que haya realizado una operación que purgue la caché de resultados de la
consulta. Por ejemplo, esta aplicación se puede ejecutar automáticamente al final del
paso de procesamiento del cubo.
La ejecución de esta aplicación bajo un nombre de usuario identificable permite excluir
ese nombre de usuario del procesamiento del Asistente para optimización basada en el
uso y evitar el diseño de agregaciones para las consultas enviadas por la aplicación de
calentamiento de caché.
Al probar la efectividad de diferentes consultas de calentamiento de caché, debe vaciar
la caché de resultados de la consulta entre cada test para asegurar la validez de su
testIng. Puede vaciar los resultados CAChe usando un comando XMLA simple como el
siguiente:

<Lote Xmlns="http://schemas.Microsoft.com/AnalysisServices/2003/Engine">

<ClearCache>

<Objeto>

<DatabaseID>Trabajos de aventura DW</DatabaseID>


Análisis de servicios 2005 guía de rendimiento 108

</Objeto>

</ClearCache>

</Lote>

Este Ejemplo El comando XMLA borra la caché de la base de datos de Adventure Works
DW. Para ejecutar el ClearCache Statement, puede sea Manualmente ejecutar el Xmla
instrucción en SQL Server Management Studio o Utilice el ASCMD Herramienta
Comando-línea de utilidad para ejecutar cualquier script XMLA.
Análisis de servicios 2005 guía de rendimiento 109

Comprensión Cómo Servicios de análisis Utiliza


Cpu Recursos
Analysis Services utiliza los recursos del procesador tanto para la consulta como para el
procesamiento. Aumentar el número y la velocidad de los procesadores puede mejorar
significativamente el rendimiento de procesamiento y, Para los cubos con un gran
número de usuarios, mejoran también la capacidad de respuesta de las consultas.

Trabajo Arquitectura
Análisis Servicios Utiliza Un Centralizado Trabajo arquitectura para implementar
operaciones de consulta y procesamiento. UN trabajo en sí es una unidad genérica de
procesamiento o consultar Trabajo. UN trabajo puede tener varios niveles de trabajos
infantiles anidados en función de la complejidad de la solicitud.
Durante el procesamiento Operaciones, por ejemplo, Un Trabajo se crea para el objeto
que Unre procesamiento, como una dimensión. Un el trabajo de dimensión puede
Entonces Spawn Several niño Jobs Que procesar los atributos En Lla Dimensión. Durante
la consulta, se utilizan trabajos para recuperar datos de hechos y agregaciones de la
partición para satisfacer las solicitudes de consulta. Por ejemplo, si usted tiene Un
Consulta Que AccesoEs múltiples particiones, se genera un trabajo principal para la
consulta sí mismo a lo largo Con Una o más Niño Trabajos pÉl partición.
Generalmente hablando, Ejecutar más trabajos en paralelo tiene un impacto positivo en
el rendimiento siempre y cuando tenga suficientes recursos de procesador para manejar
eficazmente el operaciones simultáneas así como suficiente memoria y recursos de
disco. Lla Máximo número de puestos de trabajo que puedan Ejecutar en paralelo en
todas las operaciones del servidor (incluyendo procesamiento y consulta) está
determinado por el CoordinatorExecutionMode Propiedad.
 UN valor negativo para CoordinatorExecutionMode Especifica Lla número máximo
de trabajos paralelos Que puede iniciar por procesador.
 UN valor de cero permite al servidor determinar automáticamente el número máximo
de operaciones paralelas, basándose en la carga de trabajo y los recursos del
sistema disponibles.
 UN valor positivo especifica un entumecimiento absolutoER de trabajos paralelos que
puede comenzar por servidor.
El valor predeterminado para el CoordinatorExecutionMode is-4, que indica que
Cuatro los trabajos se iniciarán en paralelo por procesador. Tsu valor es suficiente para
la mayoría entornos de servidor. Si desea aumentar el nivel de paralelismo en su
servidor, puede aumentar el valor de esta propiedad ya sea por aumentar el número de
trabajos por procesador O Por Ajuste la propiedad a un valor absoluto. Si bien este
Globalmente Aumentars el número de puestos de trabajos que pueden ejecutarse en
paralelo, CoordinatorExecutionMode no es la única propiedad que influye en
operaciones paralelas. YSí Debe también considerar el impacto de Otros Global
Configuración como el MaxThreads Servidor propiedades que determinan el número
máximo de Consulta O Procesamiento subprocesos que pueden ejecutarse en paralelo.
Además a un nivel más granular, para una operación de procesamiento determinada,
puede especificar el número máximo de Procesamiento tareas que Cna ejecutar en
paralelo utilizando el MaxParallel Comando. Estos Configuración Son Discutido con más
detalle en las secciones que siguen.
Análisis de servicios 2005 guía de rendimiento 110

Hilo Piscinas
A eficazTaza administrar recursos del procesador Para Ambos consulta y procesamiento
Operaciones, Analysis Services 2005 Utiliza dos grupos de hilos:
 Consulta del grupo de subprocesos—El grupo de subprocesos de consulta
controla el Trabajador hilos utilizados por el Motor de ejecución de consultas para
satisfacer las solicitudes de consulta. Se utiliza un subproceso del grupo de consultas
por consulta concurrente. El número mínimo de subprocesos del grupo de consulta
se determina por el valor de la ThreadPool\Query\MinThreads propiedad su
configuración predeterminada es 1. El número máximo de subprocesos de trabajo
mantenidos en el grupo de subprocesos de consulta se determina por el valor de
ThreadPool\Query\MaxThreads; su configuración predeterminada es 10.
 Procesamiento del grupo de subprocesos—El grupo de subprocesos de
procesamiento controla el Trabajador hilos utilizados por el motor de
almacenamiento durante las operaciones de procesamiento. El grupo de subprocesos
de procesamiento también se utiliza durante la consulta Para Control los subprocesos
utilizados por el motor de almacenamiento para recuperar datos del disco. Lla
ThreadPool\Process\MinThreads la propiedad determina el número mínimo de
subprocesos de procesamiento que se pueden mantener en un momento
determinado. El valor predeterminado de esta propiedad es 1. Lla
ThreadPool\Process\MaxThreads la propiedad determina el número máximo de
subprocesos de procesamiento que se pueden mantener en un momento
determinado. El valor predeterminado de esta propiedad es 64.
Para escenarios en los que se deben cambiar estos valores, Ver Optimizar CPU uSabio.
Antes de que usted Modificar Estos Propiedades, es útil para Examinar Cómo estos hilos
se utilizan Durante consulta y procesamiento.

Procesador Demandas Durante Consulta


Durante la consulta, Para Administrar conexiones de cliente, Analysis Services utiliza un
subproceso de escucha para intermediar solicitudes y crear nuevas conexiones de
servidor según sea necesario. Para satisfacer las solicitudes de consulta, el subproceso
de escucha administra los subprocesos de trabajo en el grupo de subprocesos de
consulta y el grupo de subprocesos de procesamiento, asigna los subprocesos de trabajo
a solicitudes específicas, inicia nuevos subprocesos de trabajo si no hay suficientes
subprocesos activos en una agrupación determinada y termina los subprocesos de
trabajo inactivos según sea necesario.
Para satisfacer una solicitud de consulta, los grupos de subprocesos se utilizan de la
siguiente manera:
1. Los subprocesos de trabajo del grupo de consultas comprueba las cachés de datos y
cálculos Respectivamente Para Cualquier datos y/o cálculos pertinentes a una
solicitud del cliente.
2. Si es necesario, los subprocesos de trabajo del grupo de procesamiento se asignan
para recuperar datos del disco.
3. Una vez recuperados los datos, los subprocesos de trabajo de la agrupación de
consultas almacenan los resultados en la caché de consultas para resolver futuras
consultas.
Análisis de servicios 2005 guía de rendimiento 111

4. Los subprocesos de trabajo del grupo de consulta realizan los cálculos necesarios y
Utilice un caché de cálculo para almacenar los resultados del cálculo.
Cuantos más subprocesos estén disponibles para Satisfacer Consultas, las consultas más
que se pueden ejecutar en paralelo. Esto es especialmente importante en escenarios en
los que hay un gran número de usuarios que emiten consultas. Para obtener más
información sobre cómo Optimizar recursos del procesador durante la consulta, consulte
Maximizar el paralelismo durante la consulta.

Procesador Demandas Durante Procesamiento


Cuando sea posible, Analysis Services realiza de forma natural todas las operaciones de
procesamiento en paralelo. Para cada operación de procesamiento, puede especificar el
paralelismo del objeto Analysis Services Por Usando Lla MaxParallel comando de
procesamiento. De forma predeterminada, el MaxParallel Comando está configurado
para Deje que el servidor decida, que se interpreta como paralelismo ilimitado,
limitado sólo por la carga de trabajo de hardware y servidor. Para obtener más
información sobre cómo puede cambiar esta configuración, Ver Maximizae
pArallelismrIng processing.
De todas las operaciones de procesamientoParticiones Coloque las mayores exigencias
en el procesador Recursos. Cada partición se procesa en dos etapas y eACH ciervoe es
una actividad multihebra.
 Durante la primera etapa de procesamiento de una partición, los servicios de
análisis se pueblan an inicial búfer de la base de datos relacional, rellena un
segundo búfer de la Inicial búfer, y Entonces escribe segmentos en el archivo de
partición. Analysis Services utiliza varios subprocesos para esta etapa, que se
ejecutan de forma asincrónica. Esto significa que mientras se agregan datos a la
Inicial búfer, los datos se mueven desde el Inicial buffer en el Segundo buffer y
ordenados en segmentos. Cuando se completa un segmento, se escribe en el
archivo de partición. El uso del procesador durante esta primera fase depende de
la velocidad de la transferencia de datos desde las tablas relacionales.
Generalmente, esta etapa no es particularmente intensiva en procesadores,
utilizando menos de un procesador. Más bien, tsu escenario es generalmente
limitado por la velocidad de recuperación de datos De la base de datos relacional.
Lla Máximo tamaño de Lla búfer utilizado para almacenar los datos de origen está
determinado por el OLAP\Process\BufferMemoryLimit Y
OLAP\Process\BufferRecordLimit Servidor Propiedades. En algunos
escenarios, puede ser beneficioso modificar estos ajustes para mejorar el
rendimiento de procesamiento. Para obtener más información sobre estas
propiedades, Ver MemoRy demands durante processing.
 Durante la segunda etapa, Analysis Services crea UnND computa agregaciones
para los datos. Analysis Services utiliza varios subprocesos para esta etapa,
ejecutando estas tareas de forma asincrónica. Estos hilos leen el datos de hechos
En an buffer de agregación. Si se asigna suficiente memoria a la Agregación
buffer, estas agregaciones se calculan enteramente en memoria. Como se indicó
anteriormente en el Memoria demands durante processing sección, si Analysis
Services no tiene suficiente memoria para calcular agregaciones, Analysis
Services utiliza archivos temporales para complementar el Agregación Búfer. Esta
etapa puede ser intensiva en procesadores; Los servicios de análisis tomans
ventaja de varios procesadores si están disponibles.
Análisis de servicios 2005 guía de rendimiento 112

Optimizar CPU Uso


Si bien la adición de recursos de procesador adicionales puede mejorar el rendimiento
general de los servicios de análisis, utilice las siguientes pautas para optimizar el uso de
recursos del procesador.

MaximizaY Paralelismo Durante Consulta


Como se indica en el Agrupaciones de hilos Sección Threadpool\Query\MaxThreads
determina el máximo número de subprocesos de trabajo mantenidos en el grupo de
subprocesos de consulta. El valor predeterminado de esta propiedad es 10. Para
servidores que tienen más de un procesador, para aumentar el paralelismo durante la
consulta, considere modificarIng Threadpool\Query\MaxThreads ser un número
dependiente del número de Servidor Procesadores. UNA recomendación general es
establecer el Threadpool\Query\MaxThreads a un valor inferior o igual a 2 veces el
número de procesadores en el Servidor. Por ejemplo, si tiene una ochomáquina del
procesador, la pauta general es Para Establecer Este valor a no más de 16. En términos
prácticos, el aumento de Threadpool\Query\MaxThreads no aumentará
significativamente el rendimiento de una consulta determinada. Más bien, el Ventaja de
aumentar esta propiedad es que puede aumentar el número de consultas que se pueden
reparar simultáneamente.
Dado que la consulta también implicas recuperar datos de la particións, para mejorar la
consulta paralela Operaciones también debe considerar el máximo Hilos Disponible en el
grupo de procesamiento según lo especificado por el
Threadpool\Process\MaxThreads Propiedad. De forma predeterminada, esta
propiedad tiene un valor de 64. Mientras que partitions se preguntan naturalmente en
paralelo, cuando tiene muchas consultas que requieren datos de varias particiones,
Puedes mejorar la recuperación de datos mediante cColgando Lla
Threadpool\Process\MaxThreads Propiedad. Al modificar esta propiedadUn
Recomendación general es establecer el Threadpool\Process\MaxThreads a un valor
inferior o igual a 10 veces el número de procesadores en el equipo. Por ejemplo, si tiene
una ochoProcesador Servidor, la directriz general establece este valor en no más de 80.
Nota Aunque Lla el valor predeterminado es 64, Si tiene menos de Ocho procesadores
en un servidor determinado, no es necesario reducir el valor predeterminado Valor Para
operaciones paralelas del acelerador. Como usted considera los escenarios para cambiar
el Threadpool\Process\MaxThreads propiedad, recuerde que cambiar Esta
configuración afecta al grupo de subprocesos de procesamiento tanto para la consulta
como para el procesamiento. Para más información sobre cómo esta propiedad
Específicamente procesamiento de impactos Operaciones, Ver Maximizar pArallelism
DuAnillo processing.
Al modificar la Threadpool\Process\MaxThreads Y
Threadpool\Query\MaxThreads propiedades pueden Aumentar paralelismo durante
la consulta, también debe tener en cuenta Lla Adicional impacto de la
CoordinatorExecutionMode. Considere el siguiente ejemplo. Si usted tiene un
cuatroProcesador Servidor y acepta la opción predeterminada
CoordinatorExecutionMode ajuste de
-4 Un Total De 16 Trabajos se puede ejecutar de una vez en todas las operaciones del
servidor. Así que si Diez las consultas se ejecutan en paralelo y requieren un total de
20 empleos, sólo 16 los trabajos pueden lanzarse en un momento dado (asumiendo Que
no Procesamiento las operaciones se están realizando en ese momento). Cuando se ha
Análisis de servicios 2005 guía de rendimiento 113

alcanzado el umbral de trabajo, los trabajos posteriores esperan en una cola hasta que
se pueda crear un nuevo trabajo. Por lo tanto, si el número de puestos de trabajo es el
cuello de botella de la operación, aumentando el conteo de subprocesos puede no
necesariamente mejorar el rendimiento general.
En términos prácticos, el equilibrio entre trabajos y subprocesos puede ser complicado.
Si desea aumentar el paralelismo, es importante Evaluar su GREAtest cuello de botella al
paralelismo, Como Lla número de puestos de trabajo simultáneos yor Lla número de
subprocesos simultáneos, o ambas cosas. Para ayudarle a determinar esto, es útil
supervisar los siguientes contadores de rendimiento:
 MSAS 2005: longitud de la cola de trabajos de Threads\Query Pool—Número
de trabajos en la cola del grupo de subprocesos de consulta. UN valor distinto de
cero significa que el número de trabajos de consulta Hsa excedió el número de
subprocesos de consulta disponibles. En este escenario, puede considerar aumentar
el número de subprocesos de consultas. Sin embargo Si la utilización de la CPU ya es
muy alta, aumentando la Número de subprocesos sólo agregará a los switches de
contexto y Degradar PerfORMANCE.
 MSAS 2005: Threads\Query Pool busy threads—Número de subprocesos
ocupados en el grupo de subprocesos de consulta.

 MSAS 2005: Threads\Query de la piscina de rosca ociosa—El número de


Inactivo subprocesos del grupo de subprocesos de consulta.

Maximizar Paralelismo Durante Procesamiento


Para Procesamiento Operaciones, puede utilizar los siguientes mechamecanismos Para
Maximizar Paralelismo:
 CoordinatorExecutionModo—Como se indicó anteriormente, este servidorWide
(propiedad) controla el número de operaciones paralelas en el servidor. Si está
realizando el procesamiento al mismo tiempo que la consulta, es una buena práctica
para aumentar este valor.
 Threadpool\Process\MaxThreads—También discutido anteriormente en esta
sección, este servidor la propiedad aumenta el número de subprocesos que se
pueden utilizar para admitir operaciones de procesamiento en paralelo.
 MaxParallel comando de procesamiento—En lugar de especificar globalmente el
número de operaciones paralelas Para un análisis dado Servicios EjemploPara cada
operación de procesamiento, puede especificar el número máximo de tareas que
pueden funcionar en Paralelo. En muchos escenarios, este es el entorno más común
que se Utilizado para afectar al paralelismo. Puedes Especificar Lla MaxParallel
comando de dos maneras: Lla Máximom tarea paralelas opción en la interfaz de
usuario de procesamiento o un script XMLA personalizado.
 Tareas paralelas máximas Opción—Al iniciar una operación de procesamiento
desde SQL Server Management Studio O Estudio de desarrollo de inteligencia de
negocios, Puedes Especifique el Tareas paralelas máximas Opción Para
cambiar el nivel de paralelismo de una operación de procesamiento determinada
como se muestra en la figura 31. El valor predeterminado de Esta configuración
es Deje que el servidor decida, que se interpreta como paralelismo ilimitado,
limitado por carga de trabajo de hardware y servidor. Lla gotalista de abajo
Análisis de servicios 2005 guía de rendimiento 114

muestra una lista De Sugerido Valores Pero puede especificar cualquier valor. If
aumenta este valor para aumentar el paralelismoSer Cauteloso de establecer la
propiedad demasiado Alta. Realizar muchas operaciones paralelas a la vez puede
ser contraproducente si se causa conmutación de contexto y degradars
Rendimiento.

FiguraHoras 31 Paralelo máximo tPregunta sEtting


 Script XMLA personalizado —Como alternativa a especificar el MaxParallel
comando en la interfaz de usuario, que Cna escribir un script XMLA personalizado
Para realizar una ProcesoIng Operación Y Uso Lla MaxParallel elemento para
controlar el número de operaciones paralelas dentro del script XMLA.
Al procesar varias particiones en paralelo, utilice el Directrices muestran en Mesa 4 Para
el número de particiones que se pueden procesar en paralelo Según el número de
procesadores. Estas directrices se tomaron de Procesamiento tests realizada con
Proyecto Real Cubos.
Mesa 4 Partición processing guidelines

# de # de particiones para ser procesados en


procesadores paralelo
4 2–4
8 4–8
16 6 – 16

Tenga en cuenta que el número real de particiones que puede ser procesado en paralelo
depende de la Consulta Carga y el escenario de diseño. Por ejemplo, si está realizando
consultas y procesamiento al mismo tiempo, es posible que desee reducir el número de
particiones procesadas en paralelo con el fin de mantener algunos recursos gratuitos
Análisis de servicios 2005 guía de rendimiento 115

para la consulta. Alternativamente, Si su diseño contiene consultas SQL con muchas


joins complejas, el procesamiento de particiones paralelas Rendimiento podría ser
limitado por el base de datos de origen. Si el Fuente la base de datos está en la misma
máquina que Analysis Services, puede ver las interacciones de memoria y CPU que
límite de la benefits de operaciones paralelas. De hecho, con demasiado paralelismo
puede sobrecargar tanto el RDBMS que lleva a errores de tiempo de espera, que causan
que el procesamiento falle. De forma predeterminada, el Máximo número de conexiones
simultáneas, y por lo tanto consultas, para un origen de datos se limita a Diez. Esto se
puede cambiar alterando el Número máximo de conexiones Ajuste Dela propiedades
de origen de datos en cualquier estudio de desarrollo de inteligencia de negocios O
Sql Administración de servidoresEstudio de la menteo.
Para ayudarle a supervisar el número de particiones que procesan en paralelo, puede
revisar el MSAS 2005: Processing\Rows Read/sec contador de rendimiento. En
general, debe esperar este contador para mostrar 40.000–60.000 filas por segundo para
una partición. Si su partición contiene ensamblados SQL complejos o centenares de
columnas de origen, es probable que vea una tasa más baja. AdicionalTaza, puede
supervisar el número de subprocesos que se utilizan durante el procesamiento Por
utilizando el MSAS 2005: Threads\Processing Pool busy threads contador de
rendimiento. También puede ver los trabajos que están a la espera de ejecutar Por
utilizando el MSAS 2005: longitud de la cola de trabajos de Threads\Processing
Pool contador de rendimiento.
Nota que cuando se realiza paralelamente procesamiento de cualquier Objeto, todas las
operaciones paralelas are comprometido en una transacción. En otras palabras, no es
posible realizar una ejecución paralela y Entonces confirmar cada transacción a medida
que avanza. Aunque esto no es Específicamente un problema de rendimiento, afecta su
progreso de procesamiento. Si Si encuentra algún error durante el procesamiento, toda
la transacción se retirará.

Uso memoria suficiente


Lla Optimizar memOry uSabio sección describirs técnicas para garantizar que los
servicios de análisis tengan suficiente memoria para realizar consultas y procesamiento
Operaciones. Asegurar que los servicios de análisis tengan sueficiente Memory también
puede impactar el uso de servicios de análisis de recursos de procesadores. Si el análisis
Servicios el servidor tiene suficiente memoria, el sistema operativo Windows no
necesitará la memoria de la página del disco. La búsqueda reduce el rendimiento de
procesamiento y la respuesta de consultas.

Utilice un Carga-clúster de equilibrio


Si su cuello de botella de rendimiento es la utilización del procesador en un único
sistema como resultado de una carga de trabajo de consultas de varios usuarios, puede
aumentar el rendimiento de la consulta mediante un clúster de análisis Servicios
servidores para atender solicitudes de consulta. Las solicitudes se pueden cargar
equilibrado a través de dos análisis Servicios servidores, o a través de un mayor número
de análisis Servicios servidores para soportar un gran número de usuarios simultáneos
(esto se denomina granja de servidores). Los clústeres de balanceo de carga
generalmente se escalan linealmente. Tanto Microsoft como terceros proveedores
proporcionan soluciones de clúster. Lla La solución de balanceo de carga de Microsoft es
equilibrio de carga de red (NLB), que es una característica de Lla Windows Servidor
Análisis de servicios 2005 guía de rendimiento 116

Sistema operativo. Con NLB, puede crear un clúster de análisis NLB Servicios servidores
que se ejecutan en modo host múltiple. Cuando un cluster NLB de análisis Servicios los
servidores se ejecutan en modo de host múltiple, las solicitudes entrantes son carga
balanceada entre el análisis Servicios Servidores. Cuando utilice un clúster de balanceo
de carga, tenga en cuenta que el Datos Cachés en cada uno de los servidores del clúster
de balanceo de carga será diferente, lo que resultará en diferencias en los tiempos de
respuesta de la consulta desde la consulta a la consulta por el mismo cliente.
También se puede utilizar un clúster de balanceo de carga para garantizar la
disponibilidad en caso de que un solo análisis Servicios el servidor falla. Una opción
adicional para aumentar el rendimiento con un clúster de balanceo de carga es distribuir
tareas de procesamiento a un servidor sin conexión. Cuando se han procesado nuevos
datos en el servidor offline, puede actualizar el análisis Servicios servidores en el clúster
de balanceo de carga Por Usando Sincronización de bases de datos Analysis Services.
Si sus usuarios envían un montón de consultas que requieren datos de hechos Scans, un
clúster de balanceo de carga puede ser una buena solución. Por ejemplo, queries que
pueden requerir Un gran número de datos de hechos los escaneos incluyen consultas
amplias (como conteo superior o medios) y consultas aleatorias contra cubos muy
complejos donde la probabilidad de golpear una agregación es muy baja.
Sin embargo, generalmente no se necesita un clúster de balanceo de carga para
aumentar el rendimiento de los servicios de análisis si se utilizan agregaciones para
resolver la mayoría de las consultas. En otras palabras, concéntrese en la buena
agregación y el diseño de partición primero. Además, un clúster de balanceo de carga no
resuelve el problema de rendimiento si el procesamiento es el cuello de botella o si está
intentando mejorar una consulta individual de un solo usuario. Tenga en cuenta que
oHacer Restricción utilizar un clúster de balanceo de carga es la incapacidad de utilizar
reescritura, porque no hay un solo servidor al que devolver los datos.

Comprensión Cómo Servicios de análisis utiliza


recursos de disco
Analysis Services utiliza recursos de e/S de disco para la consulta y el procesamiento. El
aumento de la velocidad de sus discos, la difusión de la I/O en varios discos y el uso de
múltiples controladores, pueden mejorar significativamente el rendimiento del
procesamiento. Estos pasos también mejoran significativamente la capacidad de
respuesta de las consultas cuando se requiere analizar servicios para realizar datos de
hechos Escaneos. Si tiene Un gran número de consultas que requieren datos de hechos
escaneos, servicios de análisis puede llegar a ser limitado por insuficiente e/S de disco
cuando no hay suficiente memoria para admitir la caché del sistema de archivos Además
de los servicios de análisis uso de memoria.

Disco demandas de recursos Durante


Procesamiento
Como se indicó anteriormente en el Demandas de memoria durante el proceso sección,
Dprocesamiento urante, el búfer de agregación determina la cantidad de memoria
disponible para generar agregaciones para una partición dada. Si el búfer de agregación
es demasiado pequeño, Analysis Services Utiliza archivos temporales. Los archivos
temporales se crean en el TempDir carpeta cuando se rellena la memoria y los datos
ordenados y escrito en disco. Cuando se crean todos los archivos necesarios, se fusionan
Análisis de servicios 2005 guía de rendimiento 117

con el destino final. El uso de archivos temporales puede resultar en cierta degradación
del rendimiento durante el procesamiento; sin embargo, el impacto generalmente no es
significativo dado que la operación es simplemente un tipo de disco externo. Tenga en
cuenta que este comportamiento es diferente de las versiones anteriores de Analysis
Services. Para supervisar cualquier archivo temporals utilizado durante el proceso,
Revisión Lla MSAS 2005: proc Aggregations\Temp File bytes escrito/seg. o de la
MSAS 2005: proc Aggregations\Temp filas de archivos escritas/seg. Contadores
de rendimiento.

Disco demandas de recursos Durante Consulta


Durante la consulta, Analysis Services puede solicitar partes arbitrarias del conjunto de
datos, dependiendo de los patrones de consulta del usuario. Al escanear una sola
partición, Lla Los I/os son esencialmente secuenciales, excepto que los trozos grandes
pueden omitirse porque los índices pueden indicar que no son necesarios. If las
porciones de uso común del cubo (en particular los archivos de asignación) se ajustan a
la caché del sistema de archivos, el sistema operativo Windows puede satisfacer las
solicitudes de e/S de la memoria en lugar de generar I/O físico. Con cubos grandes,
utilizando una versión de 64 bits del servidor Microsoft Windows 2003 la familia aumenta
la cantidad de memoria que el sistema operativo puede utilizar para almacenar en caché
las solicitudes de Analysis Services. Con suficiente memoria, gran parte del cubo se
puede almacenar en la caché del sistema de archivos.

Optimizar uso del disco


Si bien el aumento de la capacidad de e/S de disco puede mejorar significativamente el
rendimiento general de Analysis Services, hay varios pasos que puede tomar para
utilizar la I/O del disco existente de manera más eficaz. Este Sección contiene pautas
que le ayudarán a optimizar Disco uso de los servicios de análisis.

Usando memoria suficiente


Lla Optimizar mEnoRy uSabio sección describirs técnicas para garantizar que los
servicios de análisis tengan suficiente memoria para realizar las operaciones de consulta
y procesamiento. Asegurar que los servicios de análisis tengan suficiente memoria
también puede impactar el uso de servicios de análisis de Disco Recursos. Por ejemplo,
yoF no hay suficiente memoria para completar las operaciones de procesamiento,
Analysis Services utiliza archivos temporales, GeneValorar e/S de disco.
Si no puede Agregar suficiente memoria física para evitar la paginación de la memoria,
considere la posibilidad de crear varios archivos de paginación en diferentes unidades
para difundir e/S de disco en varias unidades cuando se requiere la paginación de
memoria.

Optimizar ubicaciones de archivos


Las siguientes técnicas pueden ayudarle a optimizar los archivos de datos y archivos
temporales used durante el proceso:
• Coloque el Servicios de análisis archivo de datoss en un subsistema de disco rápido.
La ubicación de los archivos de datos está determinada por el Datadir propiedad del
servidor. Para optimizar el acceso al disco para la consulta y el procesamiento,
Análisis de servicios 2005 guía de rendimiento 118

coloque los servicios de análisis dacarpeta TA en un subsistema de disco dedicado


(RAID 5, RAID 1 + 0 o RAID 0 + 1).
• Si los archivos temporales se utilizan durante el procesamiento, optimizar la I/O del
disco de archivo temporal.
Lla Predeterminado localización de Lla archivo temporals creado durante el
procesamiento de agregaciones es controlada por el TempDY Propiedad. Si se utiliza
un archivo temporal, puede aumentar el rendimiento del procesamiento colocando
este Carpeta en un subsistema de disco rápido (como RAID 0 o RAID 1 + 0) que está
separado del disco de datos.

Desactivar registro innecesario


Registrador de vuelo proporciona un mecanismo Para Registro Análisis Servicios server
actividad en un cortoregistro de término. Flight Recorder proporciona una gran cantidad
de beneficios cuando usted está tratando de solucionar problemas específicos consulta y
procesamiento Problemas; sin embargo, introduces una cierta cantidad de e/S escuchó.
If usted está en un entorno de producción y no requieren Registrador de vuelo
capacidades, puede desactivar su registro y eliminar la sobrecarga de e/S. Lla Servidor
propiedad que controla si el registrador de vuelo está habilitado es el Log\Flight
Recorder\Enabled Propiedad. De forma predeterminada, esta propiedad se establece
en Verdad.

Conclusión
Para más información:
http://www.Microsoft.com/technet/prodtechnol/SQL/2005/Technologies/ssasvcs.mspx

¿Te ayudó este papel? Por favor danos tu opinión. En una escala de 1 (pobre) a 5
(excelente), ¿Cómo calificaría este documento?
Análisis de servicios 2005 guía de rendimiento 119

Appendix A – Para más información


Los siguientes documentos blancos podrían ser de interés.
 Analysis Services 2005 migración
 Intellige de negocios en tiempo realnCE con Analysis Services 2005
 Estrategias de particionadog Almacenes de datos relacionales en Microsoft SQL
Server
 Analysis Services 2005 arquitectura de procesamiento
 Introducción al script MDX en Microsoft SQL Server 2005
 Proyecto REAL de monitorización e instrumentación
 Proyecto REAL: servicios de análisis desglose técnico
 Proyecto REAL: Tuning de hardware de clase empresarial para Microsoft Analysis
Services

Apéndice B- Modos de almacenamiento de


partición
A cada partición de Analysis Services se le puede asignar un modo de almacenamiento
diferente que especifique dónde datos de hechos y las agregaciones se almacenan. Este
apéndice describe los diferentes modos de almacenamiento que Analysis Services
proporciona: OLAP multidimensional (denominado MOLAP), OLAP híbrido (HOLAP) y
OLAP relacional (ROLAP). Generalmente hablando. MOLAP proporciona el FAStest
rendimiento de la consulta; sin embargo, normalmente implica cierto grado de latencia
de los datos.
En Escenarios donde se requiere cerca de tiempo real actualizaciones de datos Y Lla
superior rendimiento de la consulta de MOLAP, Analysis Services proporciona
almacenamiento en caché proactivo. El almacenamiento en caché proactivo es una
característica avanzada que requiere un conjunto especial de técnicas de afinación de
rendimiento para asegurarse de que se aplica eficazmente. Para más información sobre
el rendimiento Consideraciones De Usando almacenamiento en caché proactivo, Ver
Cerca rEALtNombre dAta refreshes En este blanco Papel.

OLAP multidimensional (MOLAP)


Las particiones MOLAP almacenan agregaciones y una copia de los datos de origen
(datos de hechos y dimensiones) en una estructura multidimensional en el análisis
Servicios Servidor. Todas las particiones se almacenan en el análisis Servicios Servidor.
Analysis Services responde a las consultas más rápidamente con MOLAP que con
cualquier otro modo de almacenamiento de información por las siguientes razones:
 Compresión—Analysis Services comprime la fuente datos de hechos y sus
agregaciones a aproximadamente 30 porcentaje del tamaño de los mismos datos
almacenados en una base de datos relacional. La relación de compresión real varía
en función de una variedad de factores, como el número de claves duplicadas y los
algoritmos de codificación de bits. Esta reducción en el tamaño del almacenamiento
de información permite a Analysis Services resolver una consulta datos de hechos o
agregaciones almacenadas en una estructura MOLAP mucho más rápido que contra
Análisis de servicios 2005 guía de rendimiento 120

datos y agregaciones almacenadas en una estructura relacional porque el tamaño de


los datos físicos que se recuperan del disco duro es menor.
 Estructuras de datos multidimensionales—Analysis Services utiliza estructuras
de datos multidimensionales nativas para encontrar rápidamente el datos de hechos
o agregacións. Con las particiones ROLAP y HOLAP, Analysis Services se basa en el
motor relacional para realizar una combinación de tablas potencialmente grandes
contra datos de hechos almacenados en la base de datos relacional para resolver
algunas o todas las consultas. La tabla grande ensambla contra estructuras
relacionales toma más de largo para resolver que consultas similares contra las
estructuras MOLAP.
 Datos en un solo servicio—Las particiones MOLAP se almacenan generalmente en
un solo análisis Servicios servidor, con la base de datos relacional almacenada
frecuentemente en un servidor separado del análisis Servicios Servidor. Cuando la
base de datos relacional se almacena en un servidor separado y las particiones se
almacenan mediante ROLAP o HOLAP, Analysis Services debe consultar en toda la
red siempre que necesite acceder a las tablas relacionales para resolver una
consulta. El impacto de la consulta en toda la red depende de las características de
rendimiento de la propia red. Incluso cuando la base de datos relacional se coloca en
el mismo servidor que los servicios de análisis, se requieren llamadas entre procesos
y el cambio de contexto asociado para recuperar datos relacionales. Con una
partición MOLAP, las llamadas a la base de datos relacional, ya sea local o a través
de la red, no se producen durante la consulta.

OLAP híbrido (HOLAP)


Las particiones HOLAP almacenan agregaciones en una estructura multidimensional en el
análisis Servicios servidor, pero deje datos de hechos en la base de datos relacional
original. Como resultado, siempre que los servicios de análisis necesiten resolver una
consulta datos de hechos almacenados en una partición HOLAP, Analysis Services debe
consultar directamente la base de datos relacional en lugar de consultar una estructura
multidimensional almacenada en el análisis Servicios Servidor. Además, los servicios de
análisis deben depender del motor relacional para ejecutar estas consultas. La consulta
de la base de datos relacional es más lenta que consultar una partición MOLAP debido a
que generalmente se requiere una tabla grande.
Algunos los administradores eligen HOLAP porque HOLAP parece requerir menos espacio
total de almacenamiento de información mientras que proporciona un rendimiento de
consulta excelente para muchas consultas. Sin embargo, estas justificaciones aparentes
para usar la opción de almacenamiento HOLAP se niegan por la probabilidad de
agregaciones excesivas e índices adicionales en tablas relacionales.
 Agregaciones excesivas—La capacidad de respuesta de consultas con particiones
HOLAP se basa en la existencia de agregaciones apropiadas para que Analysis
Services no tenga que resolver consultas con la tabla Fact en la base de datos
relacional. Para asegurar que exista una amplia gama de agregaciones, los
administradores a veces recurren a generar agregaciones excesivas aumentando el
porcentaje de mejora del rendimiento en el Agregación Asistente de diseño, o
aumentar artificialmente los conteos de filas de particiones (y a veces ambos). Si
bien estas técnicas aumentan el porcentaje de consultas que los servicios de análisis
pueden resolver mediante agregaciones, siempre habrá algunas consultas que sólo
se pueden resolver contra el datos de hechos (Recuerde el unoTercer Regla).
Análisis de servicios 2005 guía de rendimiento 121

Además, la generación de agregaciones adicionales para mejorar la capacidad de


respuesta de las consultas se produce a costa de tiempos de procesamiento
significativamente más largos y mayores requerimientos de almacenamiento de
información (lo que también niega los ahorros de espacio).
 Índices adicionales en tablas relacionales—Para asegurarse de que el motor
relacional pueda resolver rápidamente las consultas que los servicios de análisis
deben resolver contra la tabla de hechos en la base de datos relacional, los
administradores Frecuencia Añada índices apropiados a las tablas Fact y Dimension.
Estos índices adicionales requieren con frecuencia más espacio que MOLAP requiere
para almacenar todo el cubo. La adición de estos índices niega los ahorros aparentes
en el espacio en disco que a veces se utiliza para justificar HOLAP. Además, el
mantenimiento de los índices en las tablas relacionales ralentiza el motor relacional
al agregar nuevos datos a las tablas relacionales.
Desde una perspectiva de procesamiento, no hay diferencias significativas en el
rendimiento de procesamiento entre particiones MOLAP y particiones HOLAP. En ambos
casos, todos los datos de hechos se lee en la base de datos relacional y se calculan las
agregaciones. Con MOLAP, Analysis Services escribe la datos de hechos en la estructura
MOLAP. Con HOLAP, Analysis Services no almacena datos de hechos. Esta diferencia
tiene un impacto mínimo en el rendimiento del procesamiento, pero puede tener un
impacto significativo en el performance de las consultas. Debido a que las velocidades
de procesamiento HOLAP y MOLAP son aproximadamente las mismas y el rendimiento
de la consulta MOLAP es superior, MOLAP es la opción de almacenamiento óptima.

OLAP relacional (ROLAP)


Las particiones ROLAP almacenan agregaciones en la misma base de datos relacional
que almacena el datos de hechos. De forma predeterminada, las particiones ROLAP
almacenan las cotas en MOLAP en el análisis Servicios servidor, aunque las cotas
también se pueden almacenar utilizando ROLAP en la base de datos relacional (para
dimensiones muy grandes). Los servicios de análisis deben depender del motor
relacional para resolver todas las consultas contra las tablas relacionales, almacenando
ambos datos de hechos y agregaciones. El gran número de consultas con tablas grandes
se unen en cubos grandes o complejos con frecuencia abruma el motor relacional.
Dado el menor rendimiento de la consulta de ROLAP, la única situación en la que El
almacenamiento ROLAP debe ser utilizado cuando requiere una latencia de datos
reducida y No utilizar almacenamiento en caché proactivo. Para obtener más información
sobre el almacenamiento en caché proactivo, consulte Casi en tiempo real
actualizaciones de datos En Este libro blanco. En este caso, para minimizar el costo de
rendimiento con ROLAP, considere la creación de un pequeño cerca de tiempo real
ROLAP partición y crear todas las otras particiones utilizando MOLAP. Uso de MOLAP
para la mayoría de las particiones en un Cerca la solución OLAP en tiempo real le
permite optimizar la capacidad de respuesta de la consulta de Analysis Services para la
mayoría de las consultas, mientras obtiene los beneficios del OLAP en tiempo real.
Desde una perspectiva de procesamiento, Analysis Services puede almacenar datos,
crear archivos MOLAP y calcular agregaciones más rápidamente que un motor relacional
puede crear índices y calcular agregaciones. La razón principal por la que el motor
relacional es más lento es debido a que la tabla grande se une a la que el motor
relacional debe realizar durante el procesamiento de una partición ROLAP. Además,
debido a que el motor relacional realiza las tareas de procesamiento reales, las
Análisis de servicios 2005 guía de rendimiento 122

demandas competitivas de recursos en el equipo que aloja las tablas relacionales pueden
afectar negativamente el rendimiento de procesamiento de una partición ROLAP.
Análisis de servicios 2005 guía de rendimiento 123

Apéndice C – Utilidad de agregación


Como parte de la Analysis Services 2005 Service Pack 2 samplios, el Utilidad de
agregación es una herramienta avanzada que complementa el Asistente de diseño de
agregación y el UsoAsistente de optimización basada en permitir que Cree diseños de
agregación personalizados sin utilizar el algoritmo de diseño de agregación. Esto es útil
en escenarios Donde es necesario reemplazar el algoritmo y crear un conjunto específico
de agregaciones para afinar la carga de trabajo de la consulta. En lugar de depender del
análisis costo/beneficio realizado por el algoritmo, debe Decidir Qué agregaciones van a
ser más eficaces para mejorar el rendimiento de las consultas sin afectar negativamente
los tiempos de procesamiento.

Beneficios de la utilidad de agregación


Lla Utilidad de agregación Permite que complete las siguientes tareas.
Ver y modificar agregaciones específicas en un diseño de agregación existente.
Mediante la utilidad de agregación, puede ver, agregar, eliminar y cambiar
agregaciones individuales en los diseños existentes. Una vez que se crea un diseño de
agregación mediante el Asistente de diseño de agregación O UsoBasado Optimización
Asistente, puede utilizar la utilidad para ver los atributos que componen cada
agregación. Además, usted tiene la capacidad de modificar un individuo agregación por
ChangIng THY Atributos que participan en la agregación.
Crear Nuevo diseño de agregacións.
You puede sea Crear Nuevo los diseños de agregación seleccionando manualmente los
atributos para Lla Agregacións, o utilizando la utilidad para generar agregaciones
basadas en el registro de consultas. Tenga en cuenta que la capacidad de la utilidad de
agregación para generar agregaciones desde el registro de consultas es muy diferente
de la funcionalidad de la UsoAsistente de optimización basada. Recuerde que el
NosEdad-El Asistente de optimización basado Lee los datos del registro de consultas y, a
continuación, utiliza el algoritmo de diseño de agregación para determinar si o no se
debe construir una agregación. Mientras que el UsoEl Asistente de optimización basado
da mayor consideración a los atributos contenidos en el registro de consultas, no hay
ninguna garantía absoluta de que se construirán.
Cuando se utiliza la utilidad de agregación para generar Nuevo agregaciones del registro
de consultas, usted decide qué agregaciones proporcionan el mayor beneficio para el
rendimiento de la consulta sin afectar negativamente los tiempos de procesamiento. En
otras palabras, ya no confía en el algoritmo de diseño de agregación para Seleccione
Qué agregaciones se construyen. Para ayudarle a hacer Eficaz DecisiónsLla Utilidad le
permite optimizar su diseño, incluyendo la capacidad de eliminar redundancia, eliminar
duplicados y quitar grandes Agregacións que están cerca del tamaño de la tabla de
hechos.
Revisar si las agregaciones son flexibles o rígidas.
UNA bonificación de la Utilidad de agregación es la capacidad de identificar fácilmente Si
una agregación es flexible o rígida. Por defecto, las adiciones son flexibles. Recuerde que
en un agregación flexible, uno o más Atributos tienen relaciones flexibles mientras que
en una agregación rígida, todos los atributos tienen relaciones rígidas. Si usted Quiero
Cambiar una agregación de flexible a rígido, usted debe primero cambiar todo lo
necesario relación de atributoss. Una vez que realice estos cambios, puede utilizar la
utilidad para confirmar que ha tenido éxito ya que la agregación será identificada como
Análisis de servicios 2005 guía de rendimiento 124

Rígido. Sin la utilidad, debe revisar manualmente los archivos de agregación en el


sistema operativo para determinar si eran flexibles o rígidos. Para obtener más
información sobre las agregaciones rígidas y flexibles, consulte Evaluación de agregados
rígidos versus flexibles En Este libro blanco.

Cómo la Agregación Utilidad organiza particiones


Utilizando el Agregación Utility, puede conectarse a una instancia de Analysis Services y
administrar diseños de agregación a través de todos De Lla cubos y Bases en ese
Ejemplo. Para cada grupo de medida, Lla Utilidad de agregación Grupos Particiones Por
LlaY Agregación Diseños. Figura 32 muestra un ejemplo de esta agrupación.

Figura 32 Agregación display para las ventas por Internet measure group
Las particiones en FIGURE 32 se agrupan de la siguiente manera:
 Diseño de agregación creado por a Asistente—Los diseños de agregación
creados por el Asistente de diseño de agregación o UsoEl Asistente de optimización
basado se denomina automáticamente AggregationDesign, con un sufijo de número
opcional si existe más de un diseño de agregación creado por el asistente por grupo
de medida. FO ejemplo, en el grupo de la medida de las ventas del Internet, el
Internet_Sales_2002 Partición tiene una agregación diseño llamado
AggregationDesign, Y Lla Internet_Sales_2001 Partición Contiene un diseño de
agregación denominado AggregationDesign 1. Tanto AggregationDesign como
AggregationDesign 1 fueron creados por uno de los asistentes.
 Diseño de agregación creado por la utilidad de agregación—El
Internet_Sales_2003 y Internet_Sales_2004 particiones comparta un diseño de
agregación, calLED AggregationUtilityExample. Este diseño de agregación Fue creada
por la utilidad de agregación. La utilidad de agregación le permite proporcionar Un
Personalizado Nombre para cada diseño de agregación.
 Sin diseño de agregación—Para el grupo de medida de órdenes de Internet,
Ninguno de las particiones en eso Grupo de la medida have Un diseño de agregación
Todavía.
Análisis de servicios 2005 guía de rendimiento 125

Cómo la utilidad de agregación Obras


El escenario más común para utilizar la utilidad de agregación es diseñar agregaciones
basadas en una consulta Registro. A continuación se indica una lista de pasos para
Eficazmente Utilice la utilidad de agregación para diseñar agregaciones nuevas
basándose en el registro de consultas.
To agregar nuevas agregaciones basado en el registro de consultas
1. Realizar el conjunto de requisitos previos tareas de up.
Antes de usar el Utilidad de agregación, usted debe Configurar Servicios de análisis
registro de consultas tal como lo haría antes de usar el uso-Optimización basada
Asistente. Al configurar el registro de consultas, Preste mucha atención a configurar
Un Apropiado valor para el QueryLogSampling Propiedad. El valor predeterminado
valor de esta propiedad Es establecido en una de cada diez consultas. Depending en
la carga de trabajo de la consulta, que Puede necesidad de aumentar este valor para
Recoger Un Representante conjunto de Consultas En Consulta de servicios de análisis
Registro Mesa. Obtención de un buen muestreo de consultas es fundamental para
utilizar eficazmente Lla Utilidad de agregación.
2. Añadir una nueva diseño de agregación basado en un registro de consultas.
Para extraer datos de la tabla de registro de consultas, el Utilidad de agregación
proporciona una consulta predeterminada Que Devuelve una lista distinta de
datasets para una partición dada. UN DataSet es el subcubo que se acostumbrados a
satisfaga las solicitudes de consulta. Un ejemplo del valor predeterminado la consulta
se representa en la consulta a continuación. Los valores destacados en amarillo son
valores de marcador.

Seleccione DataSet distinto de OLAPQueryLog


Donde MSOLAP_Database = Databasename Y
MSOLAP_ObjectPath = MeasureGroupName

En términos generales, es una buena idea modificar la instrucción SQL


predeterminada Para aplicar filtros adicionales que restringen los registros basándose
en Duración O MSOLAP_User. Por ejemplo, sólo puede devolver consultas donde
el Duración > 30 segundos o MSOLAP_User = Joe.
Además cada vez que añada un nuevo diseño de agregación Por utilizando la utilidad
de agregación, es una buena idea Uso una convención especial de nomenclatura por
nombrar el diseño de la agregación así como la agregación Prefijo. Este le permite
fácilmente Identificar las agregaciones que se han creado Por la utilidad. Por
ejemplo, Cuando se utiliza SQL Analizador de servidor para analizar la efectividad de
su aggregations, Con nombres fácilmente reconocibles, que será Capaz Para
Rápidamente Identificar Ésos agregaciones creadas por la utilidad de agregación.
3. Eliminar agregaciones redundantes.
Usted puede optimize Un nueva agregación Diseño Por eliminating Redundante
Agregaciones. Agregaciones redundantes son esas agregaciones que incluir uno o
más atributos en la misma relación de atributos Árbol.
La agregación destacado en FIGURE 33 identifica una agregación con atributos De
dos dimensiones: Producto y tiempo. Desde la dimensión del producto, la agregación
incluye el Inglés Nombre de categoría de producto Atributo. Desde la dimensión de
Análisis de servicios 2005 guía de rendimiento 126

tiempo, la agregación incluye los atributos siguientes: Inglés nombre del mes,
trimestre del calendario, y año civil. Este Es un redundante agregación desde
Nombre de mes inglés, Trimestre calendario y año calendario están en la misma
relación de atributos Árbol.

Figura 33 Redundante aggregation ewww.xample.ch


Para eliminar la redundancia en esta agregación, utilice el Eliminar redundancia
Opción En la utilidad de agregación. Figura 34 muestra la agregación después Lla
Eliminar redundancia Opción se aplica. Lla Agregación Nwo sólo incluye el atributo
de nombre de mes inglés desde el hora Dimensión.

Figura 34 Agregaciones Con redundancy eLiminated


Análisis de servicios 2005 guía de rendimiento 127

4. Eliminar agregaciones duplicadas.


Las agregaciones duplicadas son agregaciones que incluyen la Exacta Mismo
conjunto de Atributos. Continuar con el ejemplo en la figura 34, tenga en cuenta que
hay dos IDEagregaciones ntical Para 0000000, 010000, 0100. esta agregación
consiste en Lla Categoría de producto en inglés Nombre y nombre del mes inglés
Atributos. Después Lla Eliminar duplicados Opción se aplica, el se elimina la
agregación duplicada y el Actualizado Agregación Diseño Es presentado en la
figura 35.

Figura 35 Agregaciones con duplicates eLiminated

5. Asignar el diseño de la agregación a un partition.


Después de que unssign el diseño de agregación a uno o más Particións, el pantalla
de utilidads las particiones asignadas bajo el nombre del Nuevo diseño de
agregaciónComo Muestra en la figura 32.
6. Salvar Lla Grupo de medida a SQL Server.
Ynuestro nuevo diseño de agregación y asignación de partición no se guarda en el
servidor hasta que realice un guardado explícito en el grupo de medida modificado.
Si sale de la utilidad y no lo guarda, su los cambios no se cometerán en el servidor.
7. Procesar el partition.
Process la Grupo de medida necesario o Particións para construir las agregaciones
para su nuevo diseño. Esta operación debe realizarse fuera de la utilidad de
agregación uso de su procesamiento normal Técnicas. Tenga en cuenta quef
simplemente necesita Construir agregados, puede realizar una ProcessIndexes
Operación en el grupo/las particiones apropiados de la medida. Para más información
sobre ProcessIndexes, Ver Comandos de procesamiento de partición.
8. Evaluar Lla agregación sIze.
Con las agregaciones procesadas, puede utilizar Lla Utilidad de agregación a evaluar
la Relativa Tamaño de cada agregación en comparación con el datos de hechos Para
Análisis de servicios 2005 guía de rendimiento 128

la partición. Usando Esta información, que Manualmente eliminate las agregaciones


relativamente grandes que tomar mucho tiempo para procesar y De no ofrecen
Significativo qbeneficios uerying. Recuerde que el Agregación Diseño algoritmo
elimina Cualquier agregaciones que son mayores que un tercio el tamaño de la tabla
de hechos. Para aplicar una lógica similar, puede Fácilmente identificar y Eliminar
Cualquier Agregaciones en su diseño de agregación personalizado que son
Significativamente Grande.
9. Volver a guardar en SQL Server Y reProceso.
Después se evalúa el tamaño de la agregación y Quitar cualquier agregación grande,
Vuelva a guardar el diseño de agregación y vuelva a procesar las particiones
necesarias. Para cualquier cambio posterior que realice con el tiempo, recuerde
siempre volver a guardar y reprocesar.

Вам также может понравиться