CASOS DE BODEGAS
DE DATOS CON SQL
SERVER
Dr. Eduardo Castro, MSc
ecastro@simsasys.com
http://ecastrom.blogspot.com
http://...
Derechos de autor
• Este presentación se basa en las siguientes fuentes
• Prácticas reales: la escala del rendimiento MICR...
Gestión Multi concurrencia usuario
• El escalado horizontal
• Sincronización
• De sólo lectura de DB
• Instantáneas SAN y ...
El aumento Requisitos de hardware
• El uso de SSD
• Tamaño de bloque
• ROLAP

DBI407 Mejores prácticas para la construcció...
Resumido de E / S Actividad de niveles
de RAID y su uso recomendado
Niveles de RAID
Confiabilidad

RAID0
Más bajo.
La falt...
La partición para DW
1 Partition per Day
31 Partitions, 1 Month of Data
Facts Database
Current Day Partition
ALTER PARTITI...
Concurrencia consulta multiusuario
• Escalar Analysis Services: Sólo Lectura

Diseñar los cubos servicio de análisis escal...
Tiempo implicaciones reales
• Las técnicas para Tiempo real
• Almacenamiento en caché automático
• ROLAP
• Procesamiento I...
Estrategias probadas - Estudios de casos
• Lo más destacado de SQLCAT (Ejemplos de grandes

instalaciones)
• AdCenter
• Xb...
SQLCAT
Estudios de caso
ESTUDIO DE CASO ADCENTER
Cómo funciona AdCenter manejar dos Cubos
de 3,2 TB?

Diseñar los cubos servicio de análisis escal...
Microsoft AdCenter
• Como una plataforma de Internet para campañas de

publicidad en línea en Microsoft ® Bing ™, Microsof...
Legado escalable
• Este entorno a gran escala incluye numerosos mercados de datos

que consolidan la información de divers...
Situación
• Con volúmenes de datos superiores a dos terabytes por mes y un

número creciente de usuarios de data mart,
• a...
Objetivo
• Mejorar la escalabilidad de usuario mediante el

mantenimiento actual del cubo de consulta, mientras que
la res...
Infraestructura
• Sistema de base de datos compartida escalable utiliza un

servidor de procesamiento y tres servidores de...
Estudio de caso - AdCenter
• EMC DMX V-Max para manejar la E / S
• V-Max son dedicados a la aplicación
• Cientos de discos...
Cubo adCenter

PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT A...
EMC Symmetrix VMAX
• Cada servidor está conectado a una EMC Symmetrix

VMAX a través de bus con doble adaptadores
• El ser...
Diseño del cubo
• Múltiples data marts alimentan el procesamiento OLAP y

•
•

•
•

presentación de informes sistema.
Anál...
Carga de datos diaria
• Cada trimestre una operación de ProcessUpdate se utiliza

para actualizar dimensión datos

PRÁCTIC...
Consulta de datos

PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSO...
Esquema
OLAP

PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT AD...
Administración
• La actualización de datos del cubo multidimensional del

servidor de procesamiento soporta las tareas de ...
Actualización diaria de datos

PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services d...
Montaje diario por medio de clonar cubos

PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis...
Centro de Producción adCenter
adCenter Production Environment
OLAP Standby Server

OLAP Processing Server

Windows Server ...
ESTUDIO DE CASO: E & D
Xbox Live el uso del servicioDatos, de
compra, y los logros
Estrategia de Particiones
• Uniformemente distribuida, continuo y no se solapan

Diseñar los cubos servicio de análisis es...
Xbox Live - SSD Performance
3000

Run Tme (seconds)

2500

2000

1500

1000

500

0

Day

Week

Month

Quarter

7 months

...
Concurrencia de consulta
• Usando SSD para que cada servidor para manejar más

consultas simultáneas

Diseñar los cubos se...
ESTUDIO DE CASO:
YAHOO!
12 TB Cube
Yahoo - Datos Masivos de Escala Intense
Oracle 10g

CDF

Archivo1

SSAS Cube Constructor

Partición 1

Partición 1

Partic...
ESTUDIO DE CASO
Bloqueo en Analysis Services

Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
Cierre
• SWITCH / MERGE debe tomar bloqueo SCH-M (pero se mantuvo sólo unos

pocos ms)
• Provocar el bloqueo de las colas
...
MOLAP conmutación En Acción
• Idea básica:
• Utilizar MOLAP para los datos históricos
• Proceso últimas particiones MOLAP ...
Cube Particiones
• Particiones tanto por el tiempo y región
• Procesamiento completo se puede hacer en Particiones

"activ...
Cube Flipping
• Recall: Bloqueo nivel de servidor necesaria para proceso
• Solución alternativa:
• Dos copias del cubo, po...
+ MOLAP ROLAP en Acción
• Utilice MOLAP con fines históricos / datos antiguos
• Utilizar ROLAP para los datos actualizados...
Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
Resumiendo
• Usted tiene que conseguir el diseño correcto si desea escalar
• El particionamiento es absolutamente fundamen...
Resumiendo
• Bloqueo es su enemigo
•

Considere servidor de procesamiento con sincronización vs
procesamiento servidores I...
DATAWAREHOUSE
ESTUDIO DE CASO
Dr. Eduardo Castro, MSc
ecastro@simsasys.com
http://ecastrom.blogspot.com
http://comunidadwi...
Upcoming SlideShare
Loading in...5
×

Casos de bodegas de datos con SQL Server

663

Published on

En esta presentacion vemos casos de arquitecturas de bodegas de datos con SQL Server.

Saludos.

Eduardo Castro
Microsoft SQL Server MVP

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
663
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Casos de bodegas de datos con SQL Server

  1. 1. CASOS DE BODEGAS DE DATOS CON SQL SERVER Dr. Eduardo Castro, MSc ecastro@simsasys.com http://ecastrom.blogspot.com http://comunidadwindows.org http://tiny.cc / comwindows Facebook: ecastrom Twitter: edocastro
  2. 2. Derechos de autor • Este presentación se basa en las siguientes fuentes • Prácticas reales: la escala del rendimiento MICROSOFT SQL Server 2008 Analysis SERVICIOS EN MICROSOFT ADCENTER • DBI407 Mejor Prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con el análisis de Microsoft SQL Server Servicios, Adán Jorgensen • El diseño escalable y complejo Cubos servicio de análisis, Denny Lee, Thomas Kejser • http://msdn.microsoft.com/en-us/library/dd758814 (v = SQL.100).aspx • http://technet.microsoft.com/en-us/library/cc966414.aspx
  3. 3. Gestión Multi concurrencia usuario • El escalado horizontal • Sincronización • De sólo lectura de DB • Instantáneas SAN y conos FE Heavy (80 cc users) 238.5 63487 5 300 250 150.3 14839 4 200 150 101.9 16998 1 SE Heavy • Ingeniería de Sistemas 100 120 • Heap / Memoria Virtual 50 100 0 One Two Three Four 102.02 23114 50 88.177 996 CC U… 80 60 28.354 25.125 25396 48352 40 20 0 One Two Three Four DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  4. 4. El aumento Requisitos de hardware • El uso de SSD • Tamaño de bloque • ROLAP DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  5. 5. Resumido de E / S Actividad de niveles de RAID y su uso recomendado Niveles de RAID Confiabilidad RAID0 Más bajo. La falta de resultados de tolerancia a fallos en la pérdida de datos. Eficiencia del almacenamiento 100% Leer Random Excelente Escritura aleatoria Excelente. RAID1 RAID5 RAID 10 Muy bueno. Aún mejor, con impresión a doble cara. Bueno. Puede tolerar fallos sola máquina. Excelente. 50% > 50%, <100% (Unidades -1 # / # unidades) 50% Excelente. Excelente. Feria Lo peor de los niveles RAID, pero mejor que una sola unidad. Feria. Peor que un solo disco pero mejor que algunos niveles de RAID. Feria. En general mejor con tamaños Muy bueno. mayores de stripe. Muy bueno. En general, mejor con tamaños más pequeños de la raya Excelente. Feria. Muy bueno. Lectura secuencial Excelente. Feria. Comparable a una sola unidad. Escritura secuencial Excelente. Bueno. Mejor que otros niveles de RAID. Más bajo. Moderada. Relativamente alto costo debido a las unidades Moderada. redundantes, sin embargo, no requiere controlador caro Costo Bueno para datos no críticos o datos inactivamente actualizados que obtiene una copia de seguridad con Se recomienda su uso regularidad o los datos que requiere el desempeño de escritura rápida a muy bajo http://technet.microsoft.com/en-us/library/cc966414.aspx Bueno para los datos que requiere la alta tolerancia a fallos a un costo relativamente bajo de hardware Muy bueno para leer sólo los (redundancia utilizando la datos. paridad requiere hardware más caro). Lo mejor para los High. Los datos que requieren un alto rendimiento para leer y escribir, y una excelente fiabilidad mientras que el comercio de la eficiencia del almacenamiento y el costo.
  6. 6. La partición para DW 1 Partition per Day 31 Partitions, 1 Month of Data Facts Database Current Day Partition ALTER PARTITION FUNCTION PerDay () SPLIT RANGE(CAST(CONVERT(varchar, GETDATE()+1, 112) AS int)) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 8 Parallel Partition Processing Jobs Cube Current Day Partition Set ... WHERE [date] = CAST(CONVERT(varchar, GETDATE(), 112) AS int) AND [hour] IN (0, 11, 17) 0 11 17 1 14 18 2 5 22 3 12 21 4 13 19 6 15 23 7 9 20 8 10 16 8 Evenly Distributed Partitions per Day 3120 Partitions, 13 Months of Data DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  7. 7. Concurrencia consulta multiusuario • Escalar Analysis Services: Sólo Lectura Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  8. 8. Tiempo implicaciones reales • Las técnicas para Tiempo real • Almacenamiento en caché automático • ROLAP • Procesamiento Incremental MOLAP/ROLAP DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  9. 9. Estrategias probadas - Estudios de casos • Lo más destacado de SQLCAT (Ejemplos de grandes instalaciones) • AdCenter • Xbox Live • Yahoo! DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  10. 10. SQLCAT Estudios de caso
  11. 11. ESTUDIO DE CASO ADCENTER Cómo funciona AdCenter manejar dos Cubos de 3,2 TB? Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  12. 12. Microsoft AdCenter • Como una plataforma de Internet para campañas de publicidad en línea en Microsoft ® Bing ™, Microsoft adCenter ofrece a los clientes una amplia gama de herramientas de análisis para apuntar, alcanzar y atraer a la audiencia correcta con el anuncio correcto en el momento adecuado y de la inteligencia. • Entorno complejo y multifacético procesamiento analítico en línea (OLAP) basado en SQL Server ® 2008 Analysis Services impulsa el adCenter soluciones de inteligencia.
  13. 13. Legado escalable • Este entorno a gran escala incluye numerosos mercados de datos que consolidan la información de diversas fuentes a través Server 2008 Integration Services de SQL. • adCenter mercados de datos, basados ​en SQL Server 2008 Enterprise Edition, mantienen hasta dos terabytes de datos en bases de datos relacionales, lo que equivale a un mes de las actividades Web a una tasa de acumulación actual de aproximadamente 60 a 70 gigabytes por día. • La Cubos OLAP construida encima de estas tiendas relacionales contienen 13 meses de datos y son hasta tres terabytes de tamaño.
  14. 14. Situación • Con volúmenes de datos superiores a dos terabytes por mes y un número creciente de usuarios de data mart, • adCenter problemas de rendimiento experimentados con su infraestructura existente de Analysis Services de SQL Server 2005. • Con 500 usuarios por cada cubo, adCenter comenzó a notar problemas de rendimiento, desafiando a una base de usuarios en constante crecimiento • Pregunta capacidad de respuesta y el rendimiento no cumplían SLAs durante el uso máximo. • Lo resultado difícil aumentar la escalabilidad más allá de los niveles establecidos.
  15. 15. Objetivo • Mejorar la escalabilidad de usuario mediante el mantenimiento actual del cubo de consulta, mientras que la respuesta SLAs apoyo hasta 4 veces el número de preguntas del mismo patrón. • Aumentar el tiempo de actividad de manera significativa. • Eliminar impacto negativo rendimiento de las consultas a los usuarios finales durante el procesamiento diario del cubo. Aparte no se debe afectar al rendimiento de las consultas del usuario durante la carga / procesamiento del cubo.
  16. 16. Infraestructura • Sistema de base de datos compartida escalable utiliza un servidor de procesamiento y tres servidores de presentación de informes. • Cada servidor es un servidor HP BL460 con 32 GB de memoria RAM instalada, funcionamiento ocho procesadores
  17. 17. Estudio de caso - AdCenter • EMC DMX V-Max para manejar la E / S • V-Max son dedicados a la aplicación • Cientos de discos y ejes dedicados a este proceso • Discos para asegurarse rápido de E / S • Trabaja en estrecha colaboración con EMC directamente (presente en el EMC World regularmente) • Pruebas con EMC EFDs (Enterprise Flash Drives) • Equipo de Ingeniería de Sistemas dedicado al proceso de DW • Trabajar en estrecha colaboración con varios proveedores (EMC, HDS, etc) • Referencias • Acelerar Microsoft adCenter con Microsoft SQL Server 2008 Analysis Services. • PRÁCTICAS REALES: prestaciones de escalado de Microsoft adCenter con Microsoft SQL Server 2008 Analysis Services de EMC VMAX
  18. 18. Cubo adCenter PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  19. 19. EMC Symmetrix VMAX • Cada servidor está conectado a una EMC Symmetrix VMAX a través de bus con doble adaptadores • El servidor utiliza un volumen de 3 TB organizado en 80 400 GB 10000 rpm Fibra Discos de canal en una configuración duplicada y rayas (RAID 1 + 0). • Cada 24 horas el volumen replica los cambios en un volumen de informes 3 TB hecho por nueve EFDs 400 GB configurado en una configuración de paridad distribuida (RAID 5) PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  20. 20. Diseño del cubo • Múltiples data marts alimentan el procesamiento OLAP y • • • • presentación de informes sistema. Análisis Services proporciona servicios de indicador clave de rendimiento (KPI) La carga de datos se basa en SQL Server Integration Services (SSIS) Cada hora, las cargas de paquetes SSIS cargan hechos en una base de datos relacional de producción. Paquetes SSIS Independiente carga datos de otras fuentes PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  21. 21. Carga de datos diaria • Cada trimestre una operación de ProcessUpdate se utiliza para actualizar dimensión datos PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  22. 22. Consulta de datos PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  23. 23. Esquema OLAP PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  24. 24. Administración • La actualización de datos del cubo multidimensional del servidor de procesamiento soporta las tareas de carga de datos (carga de datos de los datos relacionales) y el procesamiento del cubo PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  25. 25. Actualización diaria de datos PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  26. 26. Montaje diario por medio de clonar cubos PRÁCTICAS REALES: prestaciones de escalado de Microsoft SQL Server 2008 Analysis Services de AT MICROSOFT ADCENTER
  27. 27. Centro de Producción adCenter adCenter Production Environment OLAP Standby Server OLAP Processing Server Windows Server 2003 x64 SP2 SQL Server Analysis Services 64GB RAM, 8 Xeon procs (16 cores) HBA A HBA A HBA B HBA B Staging Data Warehouse Windows Server 2003 x64 SP2 SQL Server Analysis Services 64GB RAM, 8 Xeon procs (16 cores) Windows Server 2003 x64 SP2 SQL Server Enterprise Edition 32 GB RAM, 8 Xeon procs (16 cores) HBA AA HBA HBA BB HBA HBA AA HBA Data Feeds Windows Server 2003 x64 SP2 SQL Server Integration Services Network Load Balancing HBA BB HBA Host Bus Adapters: 400 MB/sec each SAN Fabric B SAN Fabric A Standby OLAP LUN RAID 1 19200 Max Reads 9600 Max Writes 180 300GB 10K Drives Storage Area Network OLAP LUN RAID 1 DW LUN 19200 Max Reads 9600 Max Writes 180 300GB 10K Drives RAID 1 2560 Max Reads 2560 Max Writes 32 300GB 10K Drives DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  28. 28. ESTUDIO DE CASO: E & D Xbox Live el uso del servicioDatos, de compra, y los logros
  29. 29. Estrategia de Particiones • Uniformemente distribuida, continuo y no se solapan Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  30. 30. Xbox Live - SSD Performance 3000 Run Tme (seconds) 2500 2000 1500 1000 500 0 Day Week Month Quarter 7 months Dev SSD 14 29 101 203 506 Dev HDD 14 29 104 610 1191 UAT SAN 9 73 445 1025 2800 V2 Cube, SSD 5 10 15 31 72 V2 Cube, HDD 5 7 30 244 540 Amount of Data DBI407 Mejores prácticas parade construcción 1 empresascomplejas,de inteligencia Thomas Kejser Diseñar los cubos servicio la análisis escalables y soluciones Denny Lee, empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  31. 31. Concurrencia de consulta • Usando SSD para que cada servidor para manejar más consultas simultáneas Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  32. 32. ESTUDIO DE CASO: YAHOO! 12 TB Cube
  33. 33. Yahoo - Datos Masivos de Escala Intense Oracle 10g CDF Archivo1 SSAS Cube Constructor Partición 1 Partición 1 Partición 2 Partición 2 Partición N Partición N 1.2TB/day Archivo2 Filen 12 TB cubo NAS 50 GB /hr Servidores de consultas SSAS HW NLB DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  34. 34. ESTUDIO DE CASO
  35. 35. Bloqueo en Analysis Services Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  36. 36. Cierre • SWITCH / MERGE debe tomar bloqueo SCH-M (pero se mantuvo sólo unos pocos ms) • Provocar el bloqueo de las colas • Si aumenta volumen en la tabla de particiones - puede causar una operaciones de ordenamiento (use lotes pequeños) • Solución: partición de tiempo real en una tabla separada. Mantener datos obsoletos en particionado distinto Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  37. 37. MOLAP conmutación En Acción • Idea básica: • Utilizar MOLAP para los datos históricos • Proceso últimas particiones MOLAP menudo • Latencias típicas en minutos • Preocupaciones: • Cómo al cubo de partición para una rápida y MOLAP frecuentes tratamiento • Manejo el bloqueo del proceso cuando necesite actualizar los datos Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  38. 38. Cube Particiones • Particiones tanto por el tiempo y región • Procesamiento completo se puede hacer en Particiones "activos" Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  39. 39. Cube Flipping • Recall: Bloqueo nivel de servidor necesaria para proceso • Solución alternativa: • Dos copias del cubo, por turnos • “Intercambiar"entre ellos • Dos maneras de mover • Utilice ASLB de CodePlex • Excel Plug-in
  40. 40. + MOLAP ROLAP en Acción • Utilice MOLAP con fines históricos / datos antiguos • Utilizar ROLAP para los datos actualizados con frecuencia Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  41. 41. Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  42. 42. Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  43. 43. Diseñar los cubos servicio de análisis escalables y complejas, Denny Lee, Thomas Kejser
  44. 44. Resumiendo • Usted tiene que conseguir el diseño correcto si desea escalar • El particionamiento es absolutamente fundamental • • • • Partición de velocidad de procesamiento Partición de latencia de los datos (en tiempo real frente a rancio) Partición de archivos de datos antiguos Preocupación secundaria para arriba: partición de velocidad de las consultas • Hardware realmente importa para grandes cubos • • • Dispositivos NAND. Las pruebas muestran dos CPU core con frecuencia puede soportar cientos de usuarios Con cuidado equilibrio IOPS frente memoria, considere parte caliente del cubo DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  45. 45. Resumiendo • Bloqueo es su enemigo • Considere servidor de procesamiento con sincronización vs procesamiento servidores Individual • Considerar cómo voltear • Para baja latencia, ROLAP • Configuración de usuario • Considere la posibilidad de ajustar • Keep it Simple DBI407 Mejores prácticas para la construcción 1 empresas soluciones de inteligencia empresarial de nivel con Microsoft SQL Server Analysis Services, Adam Jorgensen
  46. 46. DATAWAREHOUSE ESTUDIO DE CASO Dr. Eduardo Castro, MSc ecastro@simsasys.com http://ecastrom.blogspot.com http://comunidadwindows.org http://tiny.cc / comwindows Facebook: ecastrom Twitter: edocastro

×