Añadir los índices de la tabla subyacente
En la mayoría de los casos, los índices de añadir a la tabla subyacente mejora el procesamiento debido a que la dimensión SQL declaración de que se genera es en forma de SELECT DISTINCT AttribA, AttribB DE DimensionTable. Cómo construir buen atributo relaciones entre la jerarquía fuerzas el motor de Analysis Services para construir DISTINCT múltiples consultas más pequeñas en lugar de una grande y muy caro SELECT DISTINCT AttribA, AttribB, …, consulta AttribN. Por lo tanto, los índices adicionales mejorar el rendimiento de estas consultas DISTINCT.
Crear una tabla separada para la dimensión de transformación
Si usted experimenta procesamiento dimensión lenta, creando una nueva tabla que se utiliza únicamente para procesar la dimensión puede mejorar la velocidad de procesamiento. Por ejemplo, en el caso de una dimensión de copo de nieve en varias tablas se unen entre sí para definir su dimensión, considerar la creación de una nueva tabla aparte y específico para el procesamiento de la dimensión. Esto es especialmente importante si usted tiene las dimensiones que se han diseñado sobre las bases de datos dispares, de esta forma se pueden evitar las consultas OPENROWSET procesamiento.
Uso SQL vistas a aplicar la consulta vinculante para las dimensiones
Mientras consulta vinculante para las dimensiones no existe dentro de Analysis Services 2005, puede ponerla en práctica mediante una vista (en vez de tablas) para su dimensión de origen de datos subyacente. De esta forma, puede utilizar las sugerencias u otras SQL técnicas de optimización para optimizar el SQL declaración de que tiene acceso a las tablas de dimensiones a través de su vista.
Tenga cuidado al utilizar la enumeración ProcessUpdate
Si usted usa ProcessUpdate y miembros de la dimensión están siendo modificados o eliminados, agregaciones flexibles será dado de baja. Estos deben volver a crear la transformación de los índices en las particiones afectadas y los objetos o al permitir que las agrupaciones perezoso. De lo contrario, no habrá ningún agregaciones para los usuarios consultar en contra, esto se traduce en rendimiento de las consultas más lentas. Además, si las relaciones rígidas se han definido y se detecta un cambio, un error serán devueltos, lo que requiere que usted realice un proceso completo.
Utilice la enumeración ProcessAdd si sólo se está añadiendo nuevos miembros dimensión
El ProcessAdd enumeración proceso no está disponible en la tramitación de interfaz de usuario pero se encuentra disponible en XMLA. Introducido en Analysis Services 2005, es esencialmente una versión optimizada de ProcessUpdate en los casos en que sólo los nuevos miembros se incorporan. Para utilizar ProcessAdd correctamente para mejorar el rendimiento, restringir la tabla de dimensiones de sólo las filas nuevas agregó. Para obtener más información al respecto, incluyendo código de ejemplo. Este tipo de procesamiento permite el tratamiento dimensión a ser mucho más rápido que nunca para borrar o actualizar los miembros de la dimensión ni gota agregaciones flexibles.
Análisis de la actualización a SP2 de Servicios porque tiene dimensión proceso de almacenamiento en caché
Analysis Services Service Pack (SP2) proporciona las mejoras de la transformación mediante el almacenamiento en caché dimensión de transformación. Para aprovechar esta característica, para sistemas más grandes agregar memoria a fin de que Analysis Services puede utilizar. (No es raro para Analysis Services para utilizar 10 GB (gigabytes) de memoria si está disponible.) Esto le impide paginación en disco.
Las mejoras de rendimiento cuando se utiliza el almacenamiento en caché dimensión de proceso se ven típicamente en el tratamiento de servidors con dos o más procesadores. Por ejemplo, la tabla siguiente se muestran los tiempos de procesamiento de una memoria RAM de 4 GB, con cuatro procesadores servidor que está procesando 32 particiones en paralelo. Tanto el Análisis de Servicios y SQL Servidor bases de datos están en la misma servidor.
| Service Pack | El tiempo de procesamiento (hh: mm: ss.sss) |
|---|---|
| SP1 | 00:13:28.020 |
| SP2 | 00:12:29.966 |
Cubo de Procesamiento Mejor Prácticas
Para asegurar un rápido y eficaz el procesamiento del cubo, es importante recordar que el procesamiento del cubo se realiza en Analysis Services mediante la ejecución de Analysis Services generados SQL declaraciones en contra de la base de datos relacional subyacente. Debido a esto, es posible (cuando sea necesario) para sintonizar el subyacente SQL declaraciones y / o actualizar las estadísticas. La adición de índices de las tablas subyacentes pueden mejorar el rendimiento también, pero prueba de esta primera tabla como el escaneo es a menudo un enfoque más rápido para el procesamiento del cubo.
Use las teclas de número entero si es posible
Cuando se trabaja con cualquier versión de Analysis Services, asegúrese de que las columnas de clave se entero. Esto es importante para ambos SQL y no-SQL Sistemas RDBMS debido a la SQL declaración que genera Analysis Services cuando está procesando un cubo, grupo de medida, o una partición. La consulta resultante plan y ejecución del presente SQL declaración será más eficiente si el montaje se entre entero llaves.
Las mejoras de rendimiento son aún más evidente con el análisis SP2 Servicios debido a su transformación dimensión característica de caché. Estas mejoras también optimizar en el caso de dos compuestos entero llaves de tamaños de 1, 2, 4 y 8 bytes. Mientras que cadena teclas proporcionan una mejora limitada, esto no es tan evidente como cuando se utiliza entero llaves.
El siguiente es el SQL consulta que se genera por Analysis Services cuando el grupo de procesamiento de ventas por Internet [medida] en la [base de datos Adventure Works DW] OLAP.
SELECCIONAR [Dbo_FactInternetSales]. [CustomerKey] AS [Dbo_FactInternetSalesCustomerKey0_0], [Dbo_FactInternetSales]. [PromotionKey] AS [Dbo_FactInternetSalesPromotionKey0_1], [Dbo_FactInternetSales]. [SalesTerritoryKey] AS [Dbo_FactInternetSalesSalesTerritoryKey0_2], [Dbo_FactInternetSales]. [OrderDateKey] AS [Dbo_FactInternetSalesOrderDateKey0_3], [Dbo_FactInternetSales]. [ShipDateKey] AS [Dbo_FactInternetSalesShipDateKey0_4], [Dbo_FactInternetSales]. [DueDateKey] AS [Dbo_FactInternetSalesDueDateKey0_5], [Dbo_FactInternetSales]. [ProductKey] AS [Dbo_FactInternetSalesProductKey0_6], [Dbo_FactInternetSales]. [CurrencyKey] AS [Dbo_FactInternetSalesCurrencyKey0_7] DE ( SELECCIONAR [Dbo]. [FactInternetSales].] [ProductKey, [Dbo]. [FactInternetSales].] [OrderDateKey, [Dbo]. [FactInternetSales].] [DueDateKey, [Dbo]. [FactInternetSales].] [ShipDateKey, [Dbo]. [FactInternetSales].] [CustomerKey, [Dbo]. [FactInternetSales].] [PromotionKey, [Dbo]. [FactInternetSales].] [CurrencyKey, [Dbo]. [FactInternetSales].] [SalesTerritoryKey, [Dbo]. [FactInternetSales].] [SalesOrderNumber, [Dbo]. [FactInternetSales].] [SalesOrderLineNumber, [Dbo]. [FactInternetSales].] [RevisionNumber, [Dbo]. [FactInternetSales].] [OrderQuantity, [Dbo]. [FactInternetSales]. [PrecioUnidad], ] [Dbo]. [FactInternetSales]. [ExtendedAmount, [Dbo]. [FactInternetSales]. [UnitPriceDiscountPct], ] [Dbo]. [FactInternetSales]. [DiscountAmount, [Dbo]. [FactInternetSales]. [ProductStandardCost], [Dbo]. [FactInternetSales]. [TotalProductCost], ] [Dbo]. [FactInternetSales]. [SalesAmount, [Dbo]. [FactInternetSales]. [TaxAmt], [Dbo]. [FactInternetSales].] [Carga, [Dbo]. [FactInternetSales].] [CarrierTrackingNumber, CustomerPONumber [dbo]. [FactInternetSales]. [] DESDE [dbo]. [FactInternetSales] DONDE OrderDateKey> = '915 'AND OrderDateKey <= '1280' ) AS [dbo_FactInternetSales] ORDER BY [dbo_FactInternetSales]. [CustomerKey] ASC
El SQL declaración, y en particular el plan de consulta, que son generados por Analysis Services son diferentes cuando la tabla de hechos subyacente para la venta en Internet [] grupo de medida utiliza varchar claves como se muestra en la Figura 1.
Como se puede ver en el plan de consulta estima en la figura 1, la varchar-Key tabla de hechos (pregunta 2) tiene un mayor costo asociado a la exploración de tabla que hace el entero-Key tabla de hechos (pregunta 1). En concreto, hay mayores costos subárbol asociados tanto con los de clasificación y las tareas para la exploración de tabla varcharlos hechos clave de tabla.
| Tarea | Costo Total Subárbol | Costo Total Subárbol |
|---|---|---|
| Consulta 1 (teclas de número entero) | Consulta 2 (claves varchar) | |
| Especie | 3,19582 | 3.375974 |
| Exploración de tabla | 0.9134235 | 1.247498 |
Uso obligatorio de consulta para optimizar el procesamiento
Usted puede mejorar el rendimiento de procesamiento del cubo, sintonizando el subyacente SQL instrucciones ejecutadas. Por esta razón, es importante usar consulta vinculante en lugar de la tabla de unión al crear las particiones grupo de medida (ver el SQL declaraciones en las Figuras 2 y 3). Mirando el cubo Adventure Works OLAP en Microsoft Visual Studio ®, observe el Particiones ficha como se muestra en la Figura 2.

Al hacer clic en la partición de origen abre el cuadro de diálogo Partición de origen, como se muestra en la Figura 3. Como puede ver, utilizando el consulta vinculante tipo de enlace, la fuente de datos es un desarrollador a crear SQL declaración.
Al utilizar esta opción tipo de enlace, se puede optimizar el SQL consulta que se envía a la fuente de datos relacionales.
Partición de los grupos de medida si usted tiene una gran cantidad de datos
Es generalmente una buena idea para asignar las particiones grupo de medida ya sea por separado SQL particiones de tabla mediante el uso de llaves o en una partición separada SQL mesa. Utilice particiones siempre que sea posible, lo que limita la cantidad de reprocesamiento que debe realizarse en base a su extracción, transformación y carga (ETL).
Utilice ProcessData y ProcessIndex lugar de ProcessFull
El ProcessFull tipo de enumeración ejecuta el ProcessData y ProcessIndexes puestos de trabajo. Para obtener más información sobre estos tipos de proceso de enumeración.
Desglose del procesamiento de las enumeraciones
Si bien la prueba, el Microsoft SQL Servidor Equipo de Desarrollo de Asesor de Clientes (SQLCAT) advirtió que el tratamiento contra la base de datos relacional completa más rápido y Analysis Services consume menos recursos de memoria cuando la ProcessData y ProcessIndexes enumeraciones se utilizan como comparación con el uso ProcessFull. Memoria consideraciones son especialmente importantes en los sistemas de 32-bit debido a su menor consumo de memoria. Como se puede ver en el siguiente cuadro, hay mejoras notables en el tiempo de procesamiento.
| Proceso de enumeración | Tiempo de |
|---|---|
| Proceso en dos etapas | 00:12:23 |
| ProcessData | 00:10:18 |
| ProcessIndexes | 00:02:05 |
| ProcessFull | 00:13:34 |
Para cambiar el tratamiento en la secuencia de comandos XMLA, sólo es necesario modificar la <process> <Tipo> </ Tipo> </ Proceso> atributo como se muestra en el ejemplo de código siguiente. espacios de nombres XML se han eliminado del código para mayor claridad.
<Batch Xmlns="..."> <Parallel> <Proceso xmlns: xsd ="..." xmlns: xsi ="..." xmlns: ddl2 ="..." xmlns: ddl2_2 ="..."> <OBJECT> Aventura <DatabaseID> Obras <DW /> DatabaseID Aventura <CubeID> Obras <DW /> CubeID </ Object> <<Tipo> ProcessData /> Tipo --- o ProcessIndexes <WriteBackTableCreation> <UseExisting /> WriteBackTableCreation </> Proceso </> Paralelo </> Batch
patrones de uso de CPU son diferentes entre las enumeraciones
La razón aparente de esta diferencia es que los patrones de uso de la CPU entre las dos acciones diferentes son muy diferentes. Ver la salida de monitor de rendimiento en los próximos tres cifras (el% de tiempo de procesador se pone de relieve en las figuras). Como puede ver, no sólo no hay un procesamiento más rápido el tiempo mediante el uso de ProcessData y ProcessIndexes, Pero también hay diferencias en la utilización de la CPU también (ProcessFull: 64.021, ProcessData: 47.847, ProcessIndexes: 54.353).
Como se puede ver en las figuras 5 y 6, el ProcessData y ProcessIndexes enumeración comportamiento diferente del de ProcessFull. Para algunos clientes, esta diferencia resultó en menos tiempo de procesamiento en contra de su origen de datos relacional.
Para investigar la escalabilidad del sistema, proceso que utiliza ProcessData con una partición y MaxParallel= 1. A continuación, medir con dos particiones MaxParallel= 2, …, y así sucesivamente. Medir y comparar el impacto (de memoria utilizada, el uso de CPU, disco I / O, y así sucesivamente) para determinar el rendimiento óptimo.
Procesamiento Paralelo Mejor Prácticas
Aquí hay una serie de técnicas para optimizar el procesamiento en paralelo.
No siempre se utiliza el interfaz de usuario predeterminada para el procesamiento paralelo
Por defecto, cuando Analysis Services procesa el cubo seleccionado, grupo de medida, o particiones, servidor decide cómo procesar el objeto (s) en paralelo. Sin embargo, dejando que el servidor decidir cómo muchos hilos de proceso en paralelo no siempre es óptimo. Por ejemplo, para el [Adventure Works DW de base de datos de ejemplo] OLAP en una memoria RAM de 4 GB, con cuatro procesadores servidor ejecuta Analysis Services Service Pack 2, los tiempos de elaboración similar en cuestión de segundos son los siguientes:
| El procesamiento paralelo establecimiento | El tiempo de procesamiento (ss.sss) |
|---|---|
| Permitir que el servidor decidir | 50,990 |
| Configuración manual paralelo a cuatro tareas | 47,347 |
Para cambiar la configuración de procesamiento en paralelo dentro de la interfaz de usuario, desde el cuadro de diálogo de procesamiento de Analysis Services, haga clic en el Cambiar la configuración botón para abrir el cuadro de diálogo Configuración de cambio se muestra en la Figura 7. Desde el Máximo paralelo tareas lista, seleccione un valor apropiado para el número de tareas en paralelo. La siguiente sección se explica cómo determinar el valor apropiado para su sistema.
Establezca los valores adecuados para el procesamiento paralelo
En general, el número adecuado de tareas en paralelo es 1,5 a 2 veces el número de CPUs, superando este valor puede dar lugar a competencia por los recursos. Siempre pruebe el sistema para ver qué tan bien paralelismo trabajará para usted. Como usted tiene recursos limitados, una opción plausible podría ser la utilización de menor paralelismo en lugar de más.
La utilidad ascmd.exe línea de comandos es una herramienta muy útil para probar las características de rendimiento para determinar los valores adecuados para el procesamiento paralelo. Esta utilidad es similar a la sqlcmd.exe utilidad que se utiliza para ejecutar SQL declaraciones en SQL Servidor. La utilidad ascmd.exe ejecuta los comandos XMLA contra uno de Analysis Services servidor.
Lo que sigue es un script de ejemplo para procesar la XMLA [cubo Adventure Works DW]; espacios XMLA nombre se han quitado para mayor claridad.
<Batch Xmlns="..."> MaxParallel="8"> <Parallel <Proceso xmlns: xsd ="..." xmlns: xsi ="..." xmlns: ddl2 ="..." xmlns: ddl2_2 ="..."> <OBJECT> Aventura <DatabaseID> Obras <DW /> DatabaseID Aventura <CubeID> Obras <DW /> CubeID </ Object> <Tipo> <ProcessFull /> Tipo <WriteBackTableCreation> <UseExisting /> WriteBackTableCreation </> Proceso </> Paralelo </> Batch
Mediante el uso de ascmd.exe y XMLA, puede ajustar el XMLA MaxParallel parámetro para probar diferentes valores. (El ejemplo XMLA establecer este a un valor de 8, el consejo anterior, No siempre dejar que la interfaz de usuario predeterminada para el procesamiento paralelo, Muestra cómo hacer esto en la interfaz de usuario.) Este ajuste especifica el número máximo de subprocesos en el que ejecutar comandos en forma paralela, en el cuadro de diálogo Configuración de cambio (a través del procesamiento de la interfaz de usuario) en la Figura 7.
Uso de la utilidad ascmd.exe y cuatro diferentes secuencias de comandos XMLA, fuimos capaces de automatizar rápidamente y prueba de cuatro diferentes configuraciones de procesamiento paralelo. Los siguientes son los resultados de esta prueba. Como puede ver, para la configuración de la máquina particular utilizado en esta prueba, fue beneficioso para establecer el paralelismo con 8 en lugar de dejar que el servidor decidir.
| ajustes MaxParallel | SQL/ OLAP enmismo servidor | SQL/ OLAP endiferente servidors |
|---|---|---|
| Deje que el servidor decidir (por defecto) | 00:12:29.966 | 00:07:43.060 |
| Paralelo = 4 | 00:17:05.000 | 00:08:07.953 |
| Paralelo = 6 | 00:12:57.023 | 00:07:37.023 |
| Paralelo = 8 | 00:11:28.983 | 00:07:31.933 |
Usar la <Parallel> XMLA nodos para tareas de procesamiento de grupo
En las tareas de transformación definida dentro de su XMLA, crear <lógica <Parallel> / paralelos> para tareas de procesamiento de grupo de forma tal que las servidor utiliza el máximo de recursos. Al mismo tiempo, adquirir el hábito de tramitación de la particiones individuales (en comparación con toda la medida del grupo) con las teclas <PartitionID> / PartitionID> nodo para procesar menos datos en cualquier momento.
Dentro de la <<Batch> / elemento> Batch, si se establece la Transacción atributo en true, todos los comandos dentro del lote se considerará como una única transacción. Si este atributo se establece en false, todos los comandos de procesamiento única se comprometerán al completar con éxito. Esta última opción es beneficiosa si está procesando los distintos grupos medir y / o objetos en paralelo. Como se puede ver en el ejemplo siguiente, el XMLA está procesando las ventas [hecho Resumen grupo de medida] y sus particiones individuales en paralelo.
="..." <Xmlns lotes Transacción = "true"> <Parallel> <Proceso xmlns: xsd ="..." xmlns: xsi ="..." ...=""> <OBJECT> Aventura <DatabaseID> Obras <DW /> DatabaseID Aventura <CubeID> Obras <DW /> CubeID Hecho <MeasureGroupID> <Resumen de ventas /> MeasureGroupID <PartitionID> Total_Sales_2001 </> PartitionID </ Object> <Tipo> <ProcessFull /> Tipo <WriteBackTableCreation> <UseExisting /> WriteBackTableCreation </> Proceso <Proceso xmlns: xsd ="..." xmlns: xsi ="..." ...=""> <OBJECT> Aventura <DatabaseID> Obras <DW /> DatabaseID Aventura <CubeID> Obras <DW /> CubeID Hecho <MeasureGroupID> <Resumen de ventas /> MeasureGroupID <PartitionID> Total_Sales_2002 </> PartitionID </ Object> <Tipo> <ProcessFull /> Tipo <WriteBackTableCreation> <UseExisting /> WriteBackTableCreation </> Proceso <Proceso xmlns: xsd ="..." xmlns: xsi ="..." ...=""> <OBJECT> Aventura <DatabaseID> Obras <DW /> DatabaseID Aventura <CubeID> Obras <DW /> CubeID Hecho <MeasureGroupID> <Resumen de ventas /> MeasureGroupID <PartitionID> Total_Sales_2003 </> PartitionID </ Object> <Tipo> <ProcessFull /> Tipo <WriteBackTableCreation> <UseExisting /> WriteBackTableCreation </> Proceso <Proceso xmlns: xsd ="..." xmlns: xsi ="..." ...=""> <OBJECT> Aventura <DatabaseID> Obras <DW /> DatabaseID Aventura <CubeID> Obras <DW /> CubeID Hecho <MeasureGroupID> <Resumen de ventas /> MeasureGroupID <PartitionID> Total_Sales_2004 </> PartitionID </ Object> <Tipo> <ProcessFull /> Tipo <WriteBackTableCreation> <UseExisting /> WriteBackTableCreation </> Proceso </> Paralelo </> Batch
En aras de la claridad, los espacios de nombres XML de este ejemplo se han eliminado. Tenga en cuenta que la Transacción atributo se ha establecido en true, lo que significa que el procesamiento de los cuatro [Ventas Hecho Resumen particiones] se cometa como una sola transacción. En un equipo de escritorio con procesador único, puede observar que el tratamiento de este grupo de medida se llevará a 11s (segundos) en el tratamiento como un grupo de medida única y 6s al procesar hasta cuatro particiones individuales en paralelo.
Solución de problemas Mejor Prácticas
Estos consejos para solucionar problemas de procesamiento le ayudará a entender sus puntos de estrangulamiento de procesamiento.
Un perfil de sus SQL declaraciones para sintonizar los
Para ayudar con la puesta a punto, puede utilizar SQLPara capturar el SQL declaraciones emitidas por Analysis Services para que pueda realizar su regular SQL esfuerzos de ajuste (como la actualización de las estadísticas, agregar índices, etc). Por ejemplo, el procesamiento de Ventas [Resumen grupo de medida] en el [AdventureWorksDW] OLAP DB proporciona la SQL Traza en la Figura 8.
Al seleccionar uno de muchos SQL declaraciones emitidas, a continuación, puede ejecutar un plan de ejecución de la consulta. En el caso de la SQL instrucción seleccionada en la figura 8, el costo total fue de 2,285195 subárbol.
En este caso concreto, el grupo de medida Sales Resumen se divide por la fecha del pedido, el subyacente SQL tiene una cláusula WHERE con el OrderDateKey. Agregar un índice agrupado en la tabla FactResellerSales, columna OrderDateKey mejoraría el rendimiento de procesamiento del cubo. El nuevo plan de consulta para el mismo SQL declaración ahora tiene un costo total de 1.142899 subárbol (Figura 10).
Crear un seguimiento de todo el sistema de archivo
Si tiene problemas para determinar qué está causando sus cuellos de botella en el procesamiento, mantener un sistema de tratamiento en todo el archivo de traza. Se usa para determinar qué consultas se están ejecutando procesamiento más lento (o más rápido) de lo esperado, así como si fueran a ser ejecutados en todos.
Otra forma práctica de hacerlo es ejecutar la siguiente secuencia de comandos XMLA (que está procesando el cubo Adventure Works), que imprime la traza en el directorio c: \ archivos OLAP_Processing.trc.
xmlns <lotes = "http://schemas.microsoft.com/analysisservices/2003/engine" xmlns: jabón = "http://schemas.xmlsoap.org/soap/envelope/"> <Crear Mlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <ObjectDefinition> <trace> Servicios de Procesamiento de Análisis de Traza <ID> </ id> Servicios de Procesamiento de Análisis de Traza <Nombre> </ name> <LogFileName> C: <OLAP_Processing.trc \ /> logfilename <LogFileAppend> 1 </ LogFileAppend> <AutoRestart> 1 </ reinicio automático> <LogFileSize> 50000 </> LogFileSize <LogFileRollover> 1 </> LogFileRollover <Events> <event> <EventID> 5 </> EventID <Columns> <ColumnID> 7 </> ColumnID <ColumnID> 15 </> ColumnID <ColumnID> 39 </> ColumnID <ColumnID> 8 </> ColumnID <ColumnID> 12 </> ColumnID <ColumnID> 28 </> ColumnID <ColumnID> 32 </> ColumnID <ColumnID> 40 </> ColumnID <ColumnID> 1 </> ColumnID <ColumnID> 13 </> ColumnID <ColumnID> 25 </> ColumnID <ColumnID> 33 </> ColumnID <ColumnID> 41 </> ColumnID <ColumnID> 2 </> ColumnID <ColumnID> 14 </> ColumnID <ColumnID> 42 </> ColumnID <ColumnID> 3 </> ColumnID <ColumnID> 11 </> ColumnID <ColumnID> 43 </> ColumnID </ Columns> </> Evento <event> <EventID> 6 </> EventID <Columns> <ColumnID> 7 </> ColumnID <ColumnID> 15 </> ColumnID <ColumnID> 23 </> ColumnID <ColumnID> 39 </> ColumnID <ColumnID> 8 </> ColumnID <ColumnID> 24 </> ColumnID <ColumnID> 32 </> ColumnID <ColumnID> 40 </> ColumnID <ColumnID> 1 </> ColumnID <ColumnID> 9 </> ColumnID <ColumnID> 25 </> ColumnID <ColumnID> 33 </> ColumnID <ColumnID> 41 </> ColumnID <ColumnID> 2 </> ColumnID <ColumnID> 6 </> ColumnID <ColumnID> 10 </> ColumnID <ColumnID> 14 </> ColumnID <ColumnID> 22 </> ColumnID <ColumnID> 42 </> ColumnID <ColumnID> 3 </> ColumnID <ColumnID> 11 </> ColumnID <ColumnID> 43 </> ColumnID <ColumnID> 4 </> ColumnID <ColumnID> 12 </> ColumnID <ColumnID> 28 </> ColumnID <ColumnID> 5 </> ColumnID <ColumnID> 13 </> ColumnID </ Columns> </> Evento <event> <EventID> 8 </> EventID <Columns> <ColumnID> 7 </> ColumnID <ColumnID> 15 </> ColumnID <ColumnID> 39 </> ColumnID <ColumnID> 8 </> ColumnID <ColumnID> 24 </> ColumnID <ColumnID> 1 </> ColumnID <ColumnID> 5 </> ColumnID <ColumnID> 9 </> ColumnID <ColumnID> 13 </> ColumnID <ColumnID> 25 </> ColumnID <ColumnID> 41 </> ColumnID <ColumnID> 2 </> ColumnID <ColumnID> 10 </> ColumnID <ColumnID> 14 </> ColumnID <ColumnID> 22 </> ColumnID <ColumnID> 42 </> ColumnID <ColumnID> 3 </> ColumnID <ColumnID> 11 </> ColumnID <ColumnID> 43 </> ColumnID <ColumnID> 4 </> ColumnID <ColumnID> 12 </> ColumnID <ColumnID> 28 </> ColumnID </ Columns> </> Evento </ Eventos> </ Trace> </> ObjectDefinition </ Crear> <Parallel> <Proceso xmlns: xsd = "http://www.w3.org/2001/XMLSchema" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns: ddl2 = "http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns: ddl2_2 = "http://schemas.microsoft.com/analysisservices/2003/engine/2/2"> <OBJECT> Aventura <DatabaseID> Obras <DW /> DatabaseID Aventura <CubeID> Obras <DW /> CubeID </ Object> <Tipo> <ProcessFull /> Tipo <WriteBackTableCreation> <UseExisting /> WriteBackTableCreation </> Proceso </> Paralelo </> Batch <Eliminar xmlns = "http://schemas.microsoft.com/analysisservices/2003/engine" xmlns: jabón = "http://schemas.xmlsoap.org/soap/envelope/"> <OBJECT> Servicios de Procesamiento de Análisis de Traza <TraceID> </> TraceID </ Object> </> Eliminar
Actualizar a SP2 de Analysis Services para NUMA apoyo
Una gran mejora al tratamiento con SP2 es el Análisis de Servicios de apoyo natural de acceso a memoria no uniforme (NUMA) de hardware. Para obtener más información sobre NUMA.
Evite las consultas de larga ejecución de interferir con el procesamiento
consultas de larga duración que se ejecutan al mismo tiempo que el procesamiento puede impedir el tratamiento se complete. Con el fin de comprometer a la actividad de procesamiento, Analysis Services tiene un bloqueo exclusivo en la base de datos. Pero, una consulta de larga ejecución se bloqueará la solicitud de bloqueo y de transformación deberá esperar a que las consultas para terminar antes de la transformación puede completar. Si no se puede crear una ventana de procesamiento exclusivo, considere una arquitectura de consulta / procesamiento de Analysis Services servidor la arquitectura como en la Figura 11. El procesamiento de Analysis Services servidor exclusivamente los procesos de datos, una vez finalizada, se sincroniza con la consulta de Analysis Services servidor, Que sólo hace consultas MDX.











