High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson [email protected]...
-
Upload
guiomar-sagun -
Category
Documents
-
view
18 -
download
0
Transcript of High Impact Data Warehousing with SQL Server Analysis Services Grant Dickinson [email protected]...
High Impact Data High Impact Data Warehousing with SQL Server Warehousing with SQL Server Analysis ServicesAnalysis Services
Grant DickinsonGrant [email protected]@microsoft.comProgram Manager, SQL Server Integration ServicesProgram Manager, SQL Server Integration ServicesMicrosoftMicrosoft
Arquitectura de Servidor y bases de Arquitectura de Servidor y bases de UDMUDM
Optimizar el Diseño de CuboOptimizar el Diseño de Cubo
Particionado y AgregacionesParticionado y Agregaciones
ProcesamientoProcesamiento
Consultas y CálculosConsultas y Cálculos
ConclusiónConclusión
Datawarehouse(SQL Server, Oracle,
DB2, Teradata)
SQL/Oracle
SAP/Dynamics
Sistemas Propietario
sTexto XML
Integration Services
InformesDashboard
sCuadros
de MandoExcel
HerramientaBI
Analysis Services
Clippy® para Business Intelligence!
Analysis Server
OLEDB
ADOMD .NET
AMO IIS
TCP
HTTP
XMLA
ADOMD
Apps
cliente
BIDS
SSMS
Profiler
Excel
Una entidad sobre la que se realizará el Una entidad sobre la que se realizará el análisis (e.j. Clientes)análisis (e.j. Clientes)
Está compuesta por:Está compuesta por:Atributos que describen la entidadAtributos que describen la entidad
Jerarquías que organizan los miembros de la Jerarquías que organizan los miembros de la dimensión de modo que tengan significadodimensión de modo que tengan significado
CustomerID
FirstName
LastName
State City MaritalStatus
Gender … Age
123 John Doe WA Seattle Married Male … 42
456 Lance Smith WA Redmond
Unmarried
Male … 34
789 Jill Thompson OR Portland Married Female … 21
Contenedores de miembros de Contenedores de miembros de dimensión.dimensión.
Definen completamente el espacio Definen completamente el espacio dimensional.dimensional.
Posibilitan el agrupamiento y los cortes Posibilitan el agrupamiento y los cortes de datos.de datos.
Clientes en la Clientes en la provincia de Madrid provincia de Madrid y edad edad > 50> 50
Clientes Clientes casadoscasados y hombreshombres
Normalmente tienen relaciones de uno a Normalmente tienen relaciones de uno a variosvarios
Ciudad Ciudad Estado, Estado Estado, Estado País, etc. País, etc.
Todos los atributos están relacionados Todos los atributos están relacionados implícitamente con la claveimplícitamente con la clave
Colección ordenada de atributos en nivelesColección ordenada de atributos en nivelesRuta de Navegación a través del espacio Ruta de Navegación a través del espacio dimensionaldimensionalJerarquías definidas por el usuario – Jerarquías definidas por el usuario – típicamente múltiples nivelestípicamente múltiples nivelesJerarquías de Atributo– creadas implícitamente Jerarquías de Atributo– creadas implícitamente para cada atributo – único nivelpara cada atributo – único nivel
Clientes por Geografía
País
Provincia
Ciudad
Cliente
Clientes por Demografía
Estado Civil
Sexo
Cliente
Cliente
Ciudad
Provincia
País
Sexo Estado Civil
País
Provincia
Ciudad
Cliente
Sexo
Cliente
Estado Civil
Sexo
Cliente
Cliente
Ciudad
Provincia
País
Sexo
Estado Civil
Atributos Jerarquías
Edad
Colección de dimensiones y medidasColección de dimensiones y medidas
MedidaMedida datos numéricos asociados datos numéricos asociados con un conjunto de dimensiones (e.j. con un conjunto de dimensiones (e.j. Cantidad de Ventas, Costes, Márgenes)Cantidad de Ventas, Costes, Márgenes)
Espacio Multi - DimensionalEspacio Multi - DimensionalDefinido por dimensiones y medidasDefinido por dimensiones y medidas
E.j. (Clientes, Productos, Tiempo, Medidas)E.j. (Clientes, Productos, Tiempo, Medidas)
Intersección de miembros de dimensión y Intersección de miembros de dimensión y medidas es una celda (USA, Bicicletas, medidas es una celda (USA, Bicicletas, 2004, Ventas) = €1,523,374.832004, Ventas) = €1,523,374.83
ProductoProductoPatatasPatatasPalomitasPalomitas PanPan LecheLeche CervezaCerveza
MMeerrccaaddoo
ZarZar
MadMad
BarBar
AcrAcrEnEn
MarMarFebFeb
TiempoTiempo
Cervezas Cervezas vendidas en vendidas en Zaragoza en Zaragoza en
EneroEnero
Conjunto de medidas con la misma Conjunto de medidas con la misma “dimensionalidad”“dimensionalidad”
Análogo a tabla de hechosAnálogo a tabla de hechos
Un cubo puede contener más de un grupo Un cubo puede contener más de un grupo de medidasde medidas
E.j. Ventas, Inventario, FinanzasE.j. Ventas, Inventario, Finanzas
Espacio Multi-dimensionalEspacio Multi-dimensionalSubconjunto de dimensiones y medidas en el Subconjunto de dimensiones y medidas en el cubocubo
Comparación AS2000Comparación AS2000Cubo Virtual Cubo Virtual Cubo Cubo
Cubo Cubo Grupo de Medidas Grupo de Medidas
Ventas Inventario Finanzas
Clientes X
Productos X X
Tiempo X X X
Promociones
X
Almacén X
Departmento
X
Cuenta X
Escenario X
Grupo de MedidasGrupo de Medidas
Arquitectura de Servidor y bases de UDMArquitectura de Servidor y bases de UDM
Optimizar el Diseño de CuboOptimizar el Diseño de Cubo
Particionado y AgregacionesParticionado y Agregaciones
ProcesamientoProcesamiento
Consultas y CálculosConsultas y Cálculos
ConclusiónConclusión
Relaciones de AtributoRelaciones de Atributo
Relaciones de AtributoRelaciones de Atributo
Relaciones de AtributoRelaciones de Atributo
Relaciones uno a varios entre atributosRelaciones uno a varios entre atributosTodo funcionará mejor si las definimos cuando Todo funcionará mejor si las definimos cuando sea aplicablesea aplicableEjemplos:Ejemplos:
Ciudad Ciudad Provincia, Provincia Provincia, Provincia País PaísDíaDía Mes, Mes Mes, Mes Trimestre, Trimestre Trimestre, Trimestre Año AñoSubcategoría Subcategoría Categoría Categoría
Relaciones Rígidas vs. Flexibles (flexible Relaciones Rígidas vs. Flexibles (flexible predeterminado)predeterminado)
Cliente Cliente Ciudad, Cliente Ciudad, Cliente Teléfono son flexibles Teléfono son flexiblesCliente Cliente FechaNacimiento, Ciudad FechaNacimiento, Ciudad Provincia son Provincia son rígidasrígidas
Todos los atributos están implícitamente Todos los atributos están implícitamente relacionados al atributo claverelacionados al atributo clave
Cliente
Ciudad
Provincia País
Sexo Estado Civil Edad
Cliente
Ciudad
Provincia
País
Sexo Estado Civil Edad
Semántica MDXSemántica MDXLe indica al motor de fórmula como agrupar los Le indica al motor de fórmula como agrupar los valores de medidavalores de medida
Si la granularidad del grupo de medidas es Si la granularidad del grupo de medidas es diferente a la del atributo clave (e.j. Ventas por diferente a la del atributo clave (e.j. Ventas por Mes)Mes)
Necesitamos relaciones de atributo con otros atributos Necesitamos relaciones de atributo con otros atributos (e.j. Mes (e.j. Mes Trimestre, Trimestre Trimestre, Trimestre Año) Año)
De otro modo no se devolverían datos (ULL) para De otro modo no se devolverían datos (ULL) para Trimestre y AñoTrimestre y Año
Semántica MDX explicada en detalle en:Semántica MDX explicada en detalle en:http://www.sqlserveranalysisservices.com/OLAPPapers/AttributeRelationships.htm
AlmacenamientoAlmacenamientoReduce las relaciones redundantes entre Reduce las relaciones redundantes entre miembros de una dimensión – normaliza el miembros de una dimensión – normaliza el almacenamiento de la dimensiónalmacenamiento de la dimensión
Posibilita el agrupamiento de registros dentro de Posibilita el agrupamiento de registros dentro de los segmentos de la partición (e.j. almacenar los segmentos de la partición (e.j. almacenar hechos para un mes juntos)hechos para un mes juntos)
ProcesamientoProcesamientoReduce el consumo de memoria en el Reduce el consumo de memoria en el procesamiento de la dimensión – menos tablas procesamiento de la dimensión – menos tablas hash en memoriahash en memoria
Permite que las grandes dimensiones superen la Permite que las grandes dimensiones superen la barrera de 32-bitsbarrera de 32-bits
Mejora la velocidad de procesamiento de Mejora la velocidad de procesamiento de dimensiones y particionesdimensiones y particiones
Rendimiento de ConsultasRendimiento de ConsultasAcceso al almacenamiento de la dimensión es más Acceso al almacenamiento de la dimensión es más rápidorápidoProduce planes de ejecución más óptimoProduce planes de ejecución más óptimo
Diseño de AgregaciónDiseño de AgregaciónPosibilita que el algoritmo de diseño de las Posibilita que el algoritmo de diseño de las agregaciones produzca conjuntos de agregaciones agregaciones produzca conjuntos de agregaciones efectivosefectivos
Seguridad DimensiónSeguridad DimensiónDeniedSet = {Provincia.Madrid} debería denegar DeniedSet = {Provincia.Madrid} debería denegar ciudades y clientes en Madrid – requiere relaciones ciudades y clientes en Madrid – requiere relaciones de atributosde atributos
Propiedades de MiembroPropiedades de MiembroLas relaciones de atributo identifican las Las relaciones de atributo identifican las propiedades de los miembros en los nivelespropiedades de los miembros en los niveles
Crear una relación es sencillo, pero…Crear una relación es sencillo, pero…Atención a los campos clave!Atención a los campos clave!Debemos de asegurarnos que cada atributo Debemos de asegurarnos que cada atributo tiene campos clave únicos (añade claves tiene campos clave únicos (añade claves compuestas si es necesario)compuestas si es necesario)
Debe de existir una relación 1:M entre los Debe de existir una relación 1:M entre los campos clave de los dos atributoscampos clave de los dos atributosCampos clave no válidos causan que un Campos clave no válidos causan que un miembro tenga múltiples padresmiembro tenga múltiples padres
EL procesamiento de la dimensión seleccionará EL procesamiento de la dimensión seleccionará un padre aleatoriamente un padre aleatoriamente La Jerarquía puede ser erróneaLa Jerarquía puede ser errónea
No olvides eliminar relaciones No olvides eliminar relaciones redundantes!redundantes!
Todos los atributos comienzan con Todos los atributos comienzan con relaciones con la claverelaciones con la clave
Cliente Cliente Ciudad Ciudad Provincia Provincia País PaísCliente Cliente Provincia (redundante) Provincia (redundante)
Cliente Cliente País (redundante) País (redundante)
Dimensión TiempoDimensión TiempoDía, Semana, Mes, Trimestre, Día, Semana, Mes, Trimestre, AñoAño
Año: 2003 a 2010Año: 2003 a 2010
Trimestre: 1 a 4Trimestre: 1 a 4
Mes: 1 a 12Mes: 1 a 12
Semana: 1 a 52Semana: 1 a 52
Día: 20030101 a 20101231Día: 20030101 a 20101231
Día
Semana
Mes
Trimestre
Año
Dimensión TiempoDimensión TiempoDía, Semana, Mes, Trimestre, AñoDía, Semana, Mes, Trimestre, Año
Año: 2003 a 2010Año: 2003 a 2010Trimestre: 1 a 4 – Trimestre: 1 a 4 – Campos clave (Año, Trimestre)Campos clave (Año, Trimestre)
Mes: 1 a 12Mes: 1 a 12
Semana: 1 a 52Semana: 1 a 52
Día: 20030101 a 20101231Día: 20030101 a 20101231Día
Semana
Mes
Trimestre
Año
Dimensión TiempoDimensión TiempoDía, Semana, Mes, Trimestre, AñoDía, Semana, Mes, Trimestre, Año
Año: 2003 a 2010Año: 2003 a 2010
Trimestre: 1 a 4Trimestre: 1 a 4 Campos Clave(Año, Trimestre) Campos Clave(Año, Trimestre)
Mes: 1 a 12Mes: 1 a 12 Campos Clave(Año,Mes) Campos Clave(Año,Mes)
Semana: 1 a 52Semana: 1 a 52
Día: 20030101 a 20101231Día: 20030101 a 20101231Día
Semana
Mes
Trimestre
Año
Dimensión TiempoDimensión TiempoDía, Semana, Mes, Trimestre, AñoDía, Semana, Mes, Trimestre, Año
Año: 2003 a 2010Año: 2003 a 2010
Trimestre: 1 a 4Trimestre: 1 a 4 Campos Clave(Año, Trimestre) Campos Clave(Año, Trimestre)
Mes: 1 a 12Mes: 1 a 12 Campos Clave(Año,Mes) Campos Clave(Año,Mes)
Semana: 1 a 52 Semana: 1 a 52 Campos Clave (Año,Semana)Campos Clave (Año,Semana)
Día: 20030101 a 20101231Día: 20030101 a 20101231
Día
Semana
Mes
Trimestre
Año
Jerarquías de AtributosJerarquías de AtributosRutas de Navegación predefinidasRutas de Navegación predefinidas
Definidas por los atributosDefinidas por los atributos
Posibilitan la navegación ad hocPosibilitan la navegación ad hoc
Por qué crear más?Por qué crear más?Guiar a los usuarios finales por rutas de Guiar a los usuarios finales por rutas de interésinterésMuchas herramientas de cliente existentes Muchas herramientas de cliente existentes no soportan las jerarquías de atributono soportan las jerarquías de atributoRendimientoRendimiento
Optimizar las rutas de navegación en tiempo de procesamientoOptimizar las rutas de navegación en tiempo de procesamientoMaterialización del árbol de jerarquía en discoMaterialización del árbol de jerarquía en discoEl diseñador de agregaciones favorece las jerarquías definidas El diseñador de agregaciones favorece las jerarquías definidas por el usuariopor el usuario
Relación 1:M (a través de relaciones de Relación 1:M (a través de relaciones de atributos) entre cada par de niveles atributos) entre cada par de niveles adyacentesadyacentes
Ejemplos:Ejemplos:País-Provincia-Ciudad-Cliente (natural)País-Provincia-Ciudad-Cliente (natural)
País-Ciudad (natural)País-Ciudad (natural)
Provincia-Cliente (natural)Provincia-Cliente (natural)
Edad-Sexo-Cliente (no-natural)Edad-Sexo-Cliente (no-natural)
Año-Trimestre-Mes (depende de los campos Año-Trimestre-Mes (depende de los campos clave)clave)
¿Cuántos trimestres y meses?¿Cuántos trimestres y meses?
4 y 12 a través de todos los años (no-natural)4 y 12 a través de todos los años (no-natural)
4 y 12 para cada año (natural)4 y 12 para cada año (natural)
Implicaciones de RendimientoImplicaciones de RendimientoSolo las jerarquías naturales se materializan Solo las jerarquías naturales se materializan en disco durante el procesamientoen disco durante el procesamiento
Las jerarquías no naturales se construyen al Las jerarquías no naturales se construyen al vuelo durante las consultas (se cachean en vuelo durante las consultas (se cachean en memoria)memoria)
El Servidor descompone internamente las El Servidor descompone internamente las jerarquías no naturales en componentes jerarquías no naturales en componentes naturalesnaturales
Opera esencialmente como una ruta de navegación ad hoc (pero Opera esencialmente como una ruta de navegación ad hoc (pero algo mejor)algo mejor)
Crear jerarquías naturales donde sea Crear jerarquías naturales donde sea posibleposible
Usando relaciones de atributosUsando relaciones de atributos
No siempre es lo apropiado (e.j. Edad-Sexo)No siempre es lo apropiado (e.j. Edad-Sexo)
DimensionesDimensionesConsolidar múltiples jerarquías en una única Consolidar múltiples jerarquías en una única dimensión (A no ser que estén relacionadas a través dimensión (A no ser que estén relacionadas a través de la tabla de hechos)de la tabla de hechos)Evitar el modo de almacenamiento ROLAP si el Evitar el modo de almacenamiento ROLAP si el rendimiento es una claverendimiento es una claveUsar dimensiones “role playing” (e.j. FechaPedido, Usar dimensiones “role playing” (e.j. FechaPedido, FechaFactura, FechaEntrega) – evita múltiples copias FechaFactura, FechaEntrega) – evita múltiples copias físicasfísicasUsar las dimensiones padre-hijo prudentementeUsar las dimensiones padre-hijo prudentemente
No hay soporte para un nivel de agregación intermedioNo hay soporte para un nivel de agregación intermedio
Usar dimensiones varios-a-varios prudentementeUsar dimensiones varios-a-varios prudentementeMás lentas que las dimensiones regulares, pero más rápidas que Más lentas que las dimensiones regulares, pero más rápidas que los cálculoslos cálculosGrupo de medidas intermedio debe de ser “pequeño” en relación Grupo de medidas intermedio debe de ser “pequeño” en relación con el grupo de medidas primariocon el grupo de medidas primario
AtributosAtributosDefinir todas las relaciones de atributo posibles!Definir todas las relaciones de atributo posibles!Marcar las relaciones de atributo como rígidas Marcar las relaciones de atributo como rígidas cuando sea posiblecuando sea posibleUsar campos clave de tipo integer (o numérico)Usar campos clave de tipo integer (o numérico)Configurar la propiedad AttributeHierarchyEnabled Configurar la propiedad AttributeHierarchyEnabled a falso en atributos no usados para navegación a falso en atributos no usados para navegación (e.j. Telf., Dirección)(e.j. Telf., Dirección)Configurar AttributeHierarchyOptimizedState a Configurar AttributeHierarchyOptimizedState a NotOptimized para atributos no usados NotOptimized para atributos no usados frecuentementefrecuentementeConfigurar AttributeHierarchyOrdered a falso si el Configurar AttributeHierarchyOrdered a falso si el orden de los miembros no es importanteorden de los miembros no es importante
JerarquíasJerarquíasUsar jerarquías naturales donde sea posibleUsar jerarquías naturales donde sea posible
MedidasMedidasUsar el tipo de datos numérico más Usar el tipo de datos numérico más pequeño posiblepequeño posible
Usar funciones de agregado semi-aditivas e Usar funciones de agregado semi-aditivas e lugar de cálculos MDX para conseguir el lugar de cálculos MDX para conseguir el mismo comportamientomismo comportamiento
Poner medidas distinct count en un grupo Poner medidas distinct count en un grupo de medidas separado (BIDS lo hace de medidas separado (BIDS lo hace automáticamente)automáticamente)
Evitar el uso de campos de tipo string para Evitar el uso de campos de tipo string para medidas distinct countmedidas distinct count
Arquitectura de Servidor y bases de UDMArquitectura de Servidor y bases de UDM
Optimizar el Diseño de CuboOptimizar el Diseño de Cubo
Particionado y AgregacionesParticionado y Agregaciones
ProcesamientoProcesamiento
Consultas y CálculosConsultas y Cálculos
ConclusiónConclusión
Mecanismo para romper los cubos en partes Mecanismo para romper los cubos en partes más manejablesmás manejables
Las particiones pueden ser añadidas, Las particiones pueden ser añadidas, procesadas y borradas independientementeprocesadas y borradas independientemente
La actualización de datos del últimos mes no afecta La actualización de datos del últimos mes no afecta a otras particionesa otras particiones
Podemos implementar un escenario de ventana de Podemos implementar un escenario de ventana de forma muy sencillaforma muy sencilla
E.j. ventana de 24 meses E.j. ventana de 24 meses añadir la partición de Junio de añadir la partición de Junio de 2006y borrar Junio 20042006y borrar Junio 2004
Las particiones pueden tener diferentes Las particiones pueden tener diferentes configuraciones de almacenamientoconfiguraciones de almacenamiento
Necesitamos la versión Enterprise!
Las particiones pueden procesarse y Las particiones pueden procesarse y consultarse en paraleloconsultarse en paralelo
Mejor utilización de recursos de servidorMejor utilización de recursos de servidor
Reducimos los tiempos de cargaReducimos los tiempos de carga
Consultas se aíslan a particiones Consultas se aíslan a particiones relevantesrelevantes menos datos que revisar menos datos que revisar
SELECT … FROM … WHERE [Tiempo].[Año].SELECT … FROM … WHERE [Tiempo].[Año].[2006][2006]
Consulta solo particiones de 2006Consulta solo particiones de 2006
Lo EsencialLo Esencial Las particiones posibilitan: Las particiones posibilitan:AdministraciónAdministración
RendimientoRendimiento
EscalabilidadEscalabilidad
No más de 20M de filas por particiónNo más de 20M de filas por particiónEspecificar el corte de la particiónEspecificar el corte de la partición
Opcional para MOLAP – servidor auto-detecta y Opcional para MOLAP – servidor auto-detecta y valida contra la especificada por el usuario (si valida contra la especificada por el usuario (si existe)existe)Debemos especificarla para ROLAPDebemos especificarla para ROLAP
Administrar las configuraciones de Administrar las configuraciones de almacenamiento utilizando patronesalmacenamiento utilizando patrones
Frecuentemente Consultadas Frecuentemente Consultadas MOLAP con MOLAP con muchas agregacionesmuchas agregacionesConsultadas Periódicamente Consultadas Periódicamente MOLAP con menos MOLAP con menos agregaciones o sin ellasagregaciones o sin ellasHistórico Histórico ROLAP sin agregaciones ROLAP sin agregaciones
Discos diferentes - usar múltiples Discos diferentes - usar múltiples controladores para evitar contención I/O controladores para evitar contención I/O
Definir todas las relaciones de atributo Definir todas las relaciones de atributo posiblesposibles
Propiedad AggregationUsage para guiar Propiedad AggregationUsage para guiar al diseñador de agregacionesal diseñador de agregaciones
Atributos menos utilizados NoneAtributos menos utilizados None
Atributos más utilizados UnrestrictedAtributos más utilizados Unrestricted
No crear demasiadas agregacionesNo crear demasiadas agregacionesSobre los 100s, no en los 1000s!Sobre los 100s, no en los 1000s!
No crear agregaciones más allá del 30% No crear agregaciones más allá del 30% del tamaño de la tabla de hechosdel tamaño de la tabla de hechos
Ciclo diseño de agregacionesCiclo diseño de agregacionesUsar asistente de diseño de Usar asistente de diseño de almacenamiento (~20% mejora almacenamiento (~20% mejora rendimiento) para el diseño inicial de rendimiento) para el diseño inicial de agregacionesagregacionesHabilitar el registro de consultas y ejecutar Habilitar el registro de consultas y ejecutar cargas de trabajo (pruebas con conjunto cargas de trabajo (pruebas con conjunto limitado de usuarios)limitado de usuarios)Usar el Asistente de Optimización basado en Usar el Asistente de Optimización basado en el uso para refinar agregadosel uso para refinar agregadosMayor ganancia de rendimiento (70-80%)Mayor ganancia de rendimiento (70-80%)Reprocesar nuevos agregadosReprocesar nuevos agregadosUsar el asistente periódicamenteUsar el asistente periódicamente
Arquitectura de Servidor y bases de UDMArquitectura de Servidor y bases de UDM
Optimizar el Diseño de CuboOptimizar el Diseño de Cubo
Particionado y AgregacionesParticionado y Agregaciones
ProcesamientoProcesamiento
Consultas y CálculosConsultas y Cálculos
ConclusiónConclusión
Optimización de Rendimiento de SQL ServerMejorar las consultas utilizadas para extraer datos
Comprobar los planes de ejecución e índicesRealizar un proceso normal de optimización
Mejoras de Procesamiento de ASUsa SP2 !!
Procesado de 20 particiones: SP1 1:56, SP2: 1:06
No dejar las opciones predeterminadas de procesado paraleloEn la pestaña avanzada
Monitorizar los valores:Maximizar el número de conexiones de orígenes de datosMaxParallel – Cuántas particiones se procesan en paralelo, no permitir que el servidor decida por él mismo.
Usa INT para las claves si es posible
Procesamiento paralelo requiere de versión Enterprise
Para un mejor rendimiento usar ASCMD.EXE y XMLA
Usar <Parallel> </Parallel> para agrupar tareas de procesamientoUso apropiado de <Transaction> </Transaction>
ProcessFact y ProcessIndex por separado en lugar de ProcessFull (para grandes particiones)
Consume menos memoria.
ProcessClearIndexes borra los índices existentes y ProcessIndexes genera o reprocesa los existentes
Procesado de ParticiónProcesado de ParticiónMonitorizar el uso de espacio temporal durante Monitorizar el uso de espacio temporal durante el procesamiento (contadores de monitor de el procesamiento (contadores de monitor de rendimiento para archivos temporales)rendimiento para archivos temporales)
Añadir Memoria, configurar /3GB, mover a x64/ia64Añadir Memoria, configurar /3GB, mover a x64/ia64
Periódicamente procesar completamente las Periódicamente procesar completamente las particionesparticiones
Consigue una mejor compresión frente al procesado Consigue una mejor compresión frente al procesado incrementalincremental
Orígenes de DatosOrígenes de DatosEvitar el uso de orígenes de datos .NET – OLEDB es Evitar el uso de orígenes de datos .NET – OLEDB es más rápido para procesadomás rápido para procesado
Arquitectura de Servidor y bases de UDMArquitectura de Servidor y bases de UDM
Optimizar el Diseño de CuboOptimizar el Diseño de Cubo
Particionado y AgregacionesParticionado y Agregaciones
ProcesamientoProcesamiento
Consultas y CálculosConsultas y Cálculos
ConclusiónConclusión
La mayoría de las herramientas cliente (Excel, La mayoría de las herramientas cliente (Excel, Proclarity) muestran las celdas vacías – Proclarity) muestran las celdas vacías – eliminar miembros sin datoseliminar miembros sin datosSin cálculos, non empty es más rápido – solo Sin cálculos, non empty es más rápido – solo chequea datos de hechos.chequea datos de hechos.Con cálculos, non empty puede ser más lento – Con cálculos, non empty puede ser más lento – requiere evaluar la fórmula para cada celdarequiere evaluar la fórmula para cada celdaNon_Empty_Behavior permite non empty en Non_Empty_Behavior permite non empty en cálculos solo para chequear los datos de cálculos solo para chequear los datos de hechoshechos
Nota: query processing hint – usar con cuidado!Nota: query processing hint – usar con cuidado!Create Member [Measures].[Internet Gross Profit]Create Member [Measures].[Internet Gross Profit] AAss[Internet Sales Amount][Internet Sales Amount] -- [Internet Total Cost],[Internet Total Cost],Format_String = "Currency",Format_String = "Currency",Non_Empty_Behavior =Non_Empty_Behavior = [Internet Sales Amount][Internet Sales Amount];;
Atributos/ Jerarquías dentro de una Atributos/ Jerarquías dentro de una dimensión siempre están juntosdimensión siempre están juntos
City.Seattle * State.Members returns {(Seattle, City.Seattle * State.Members returns {(Seattle, WA)}WA)}
(Seattle, OR), (Seattle, CA) do not “exist”(Seattle, OR), (Seattle, CA) do not “exist”
Explotar el poder de auto-existsExplotar el poder de auto-existsUsar Exists/CrossJoin en lugar de .Properties – es Usar Exists/CrossJoin en lugar de .Properties – es más rápidomás rápido
Requiere jerarquía de atributo habilitada en la Requiere jerarquía de atributo habilitada en la propiedad miembropropiedad miembroFilter(Customer.Members,Filter(Customer.Members,
Customer.CurrentMember.Properties(“Gender”) = “Male”)Customer.CurrentMember.Properties(“Gender”) = “Male”)
Exists(Customer.Members, Gender.[Male])Exists(Customer.Members, Gender.[Male])
Usar ámbitos en lugar de condiciones como Iif/CaseUsar ámbitos en lugar de condiciones como Iif/CaseÁmbitos se evalúan una vez estáticamenteÁmbitos se evalúan una vez estáticamente
Condiciones se evalúan dinámicamente para cada celdaCondiciones se evalúan dinámicamente para cada celda
Intentar forzar siempre que una de las ramas sea nulaIntentar forzar siempre que una de las ramas sea nula
Create Member Measures.Create Member Measures.Sales Sales AAss Iif(Currency.CurrentMember Is Currency.USD,Iif(Currency.CurrentMember Is Currency.USD, Measures.SalesUSD, Measures.SalesUSD * Measures.XRate);Measures.SalesUSD, Measures.SalesUSD * Measures.XRate);
Create Member Measures.Sales As Null;Create Member Measures.Sales As Null;Scope(Measures.Sales, Currency.Members);Scope(Measures.Sales, Currency.Members); This = Measures.SalesUSD * Measures.XRate;This = Measures.SalesUSD * Measures.XRate; Scope(Currency.USA);Scope(Currency.USA); This = Measures.SalesUSD;This = Measures.SalesUSD; End Scope;End Scope;End Scope;End Scope;
Usar miembros calculados en lugar de celdas calculadas Usar miembros calculados en lugar de celdas calculadas cuando sea posiblecuando sea posible
Usar .MemberValue para cálculos en atributos numéricosUsar .MemberValue para cálculos en atributos numéricosFilter(Customer.members, Salary.MemberValue > 100000)Filter(Customer.members, Salary.MemberValue > 100000)
Evitar el uso redundante de .CurrentMember y .ValueEvitar el uso redundante de .CurrentMember y .Value(Tiempo.CurrentMember.PrevMember, (Tiempo.CurrentMember.PrevMember, Measures.CurrentMember ).Value puede reemplazarse por Measures.CurrentMember ).Value puede reemplazarse por Tiempo.PrevMemberTiempo.PrevMember
Evitar LinkMember, StrToSet, StrToMember, StrToValueEvitar LinkMember, StrToSet, StrToMember, StrToValue
Reemplazar cálculos simples por campos calculados en DSVReemplazar cálculos simples por campos calculados en DSVEl cálculo se realiza en tiempo de procesadoEl cálculo se realiza en tiempo de procesado
Más guías:Más guías:Analysis Services Performance Whitepaper: http://download.microsoft.com/download/8/5/e/85eea4fa-b3bb-4426-97d0-7f7151b2011c/SSAS2005PerfGuide.doc
http://sqljunkies.com/weblog/moshahttp://sqljunkies.com/weblog/mosha
http://sqlserveranalysisservices.comhttp://sqlserveranalysisservices.com
AS2005 es una re-arquitectura de AS2000AS2005 es una re-arquitectura de AS2000
Debemos de diseñar teniendo en mente el Debemos de diseñar teniendo en mente el rendimiento y la escalabilidad desde el principiorendimiento y la escalabilidad desde el principio
Muchos de estos principios vienen de AS2000Muchos de estos principios vienen de AS2000Diseño Dimensional, Particiones, AgregadosDiseño Dimensional, Particiones, Agregados
Muchos nuevos principios en AS2005Muchos nuevos principios en AS2005Relaciones de Atributo, jerarquías naturalesRelaciones de Atributo, jerarquías naturales
Nuevas alternativas de diseño – role playing, varios a Nuevas alternativas de diseño – role playing, varios a varios, dimensiones referenciadas, medidas semi-aditivasvarios, dimensiones referenciadas, medidas semi-aditivas
Opciones de procesamiento flexibleOpciones de procesamiento flexible
MDX scripts, ámbitosMDX scripts, ámbitos
Usa Analysis Services con SQL Server Usa Analysis Services con SQL Server Enterprise Edition para obtener el máximo Enterprise Edition para obtener el máximo rendimiento y escalabilidadrendimiento y escalabilidad
SSIS
SQL Server Integration Services site http://msdn.microsoft.com/SQL/sqlwarehouse/SSIS/default.aspx
SSIS MSDN Forum: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=80&SiteID=1
SSIS MVP community site: http://www.sqlis.com
SSAS
BLOGS: http://blogs.msdn.com/sqlcatPROJECT REAL-Business Intelligence in PracticeAnalysis Services Performance GuideTechNet: Analysis Services for IT Professionals
Microsoft BI
SQL Server Business Intelligence public site: http://www.microsoft.com/sql/evaluation/bi/default.asp
http://www.microsoft.com/bi
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.