Pues eso, que dispuesto a complementar lo que normalmente publico aquí aparte de las tecnologías Microsoft con las que suelo trabajar diariamente (léase .NET y SQL Server), voy a adentrarme más en profundidad en las próximas semanas en el apasionante mundo de la programación Java y las Bases de Datos ORACLE. He reservado para tal fin en el menú del Blog distintos apartados, claramente diferenciados donde expondré recursos necesarios (y futuras actualizaciones), cuestiones a modo de pequeños ejercicios prácticos y claro, sus soluciones, sobre cada tecnología, conjuntamente con lo que vaya publicando en los posts. Espero os sea de utilidad y, como siempre, se aceptan sugerencias o comentarios sobre ejercicios, trucos, etc. Mi intención es que sea éste, tu Blog, un sitio de encuentro en el que podamos conseguir y afianzar un mayor conocimiento entre todos. Nos vemos.
Blog de José Gaitán: reflexiones sobre Analytics, Big Data, Business Intelligence, Data Science, Software Development, Databases, Data Engineering...y mucho más.
Instalación de SQL Server
Lo primero para tener instalado este motor de base de datos, en su versión gratuita, es visitar este enlace. Ahí encontraremos la última versión actualmente del SQL Server 2008 Express (ya está disponible en la Red Denali, el nuevo R2 CTP3, pero esta versión Express cubrirá nuestros propósitos educativos). Nos servirá para tener un entorno en el que crear nuestras pruebas para ejecutar incluso pequeñas aplicaciones de acceso a datos. Como requisitos previos a la instalación debemos tener ya en nuestra máquina el .NET Framework 3.5 SP1 y el Windows Installer 4.5
Al logarnos en el SMSS, vemos el completo IDE desde donde desarrollaremos nuestras actividades.
Adicionalmente recomiendo descargar el Microsoft SQL Server Management Studio Express (SMSS) como IDE desde el que realizar (Intellisense incluido) todas las gestiones que necesitarán nuestras bases de datos: scripts, diseño de tablas, etc. Aparte de los requisitos previos anteriormente citados hará falta el Windows PowerShell 1.0
Los pasos de ambas instalaciones son intuitivos. En mi caso he optado (aunque lo recomendado es siempre usar Autenticación SQL) por una autenticación con mi mismo usuario de Windows. Fijaros cómo el servidor local que os crea por defecto es nombre_de_vuestra_máquina\SQLEXPRESS
Ahora vamos a crear nuestra propia base de datos de pruebas para las prácticas del Blog, donde posteriormente iremos creando las tablas, índices, procedimientos almacenados, y todo lo que necesitemos para los ejercicios. Llamémosla, por ejemplo, dbtest (original, ¿verdad?, jejeje). Abramos el SMSS, y sobre el Explorador de objetos, pulsaremos con el botón derecho sobre Bases de Datos, y elegiremos Nueva Base de Datos. Introducimos el nombre, pulsamos Aceptar ¡y listo!.
¡A programar en JAVA!
Empezamos descargando NetBeans, el IDE más recomendado y usado por la comunidad de desarrolladores (mantenido por ORACLE aunque OpenSource sobre "su" JDeveloper propio) para aplicaciones, no sólo en Java, sino también en PHP, C/C++, Ruby, etc. Eclipse es otra buena opción pero había que elegir una, ¿no?. En concreto estoy bajándome la versión 6.9.1 versión full para mi Windows 7 Professional 64 bits. Son algo más de 300Mb...y voy, mientras se baja, echándole un ojo a las instrucciones de instalación.
Al no tener previamente instalado el JDK (Java Development Kit) Standard Edition, que es necesario, lo bajo de aquí, en su versión 7, y ya se pone en marcha el NetBeans.
¡Y por fin mi nuevo IDE en funcionamiento!
Instalar ORACLE
Voy a proceder a instalar Oracle Database 11g Release 1 en mi Windows 7 Professional 64bits. Es gratuito para uso personal, así que vamos adelante. Son 2 ficheros zipeados que hay que descargar y descomprimir en un mismo directorio (cada fichero ocupa 1Gb aproximadamente). Como siempre, mientras se van descargando, echamos un vistazo a la documentación y guía de instalación. Si no tenías creada una cuenta Oracle es momento de hacerlo, y si ya la tenías....pues nada ¡a logarse para descargar!.
Una vez descomprimidos los 2 archivos ejecutamos el setup.exe como administrador, introducimos si así lo deseamos nuestro mail para recibir actualizaciones, información, etc, y en el segundo paso seleccionamos la opción por defecto "Crear y Configurar Base de Datos". A continuación, como la instalación la hago en mi propio portátil elijo "Clase de Escritorio".
En la siguiente pantalla podemos dejar los valores de las carpetas por defecto o cambiarla a donde deseemos, pero lo importante es introducir la password del administrador, y que sea "segura" para Oracle (minúsculas y mayúsculas, longitud mínima de 8 caracteres, etc). Pulsamos el botón "Terminar" y comienza la base de datos a instalarse:
Es muy probable que el Firewall te de un aviso para que le des permiso al Java Platform. ¡Hazlo!.
El asistente copia los archivos de la base de datos e inicia la instancia Oracle
Es muy probable que el Firewall te de un aviso para que le des permiso al Java Platform. ¡Hazlo!.
Al finalizar, el asistente nos informa, entre otros datos, de la URL desde donde controlar la base de datos creada, las carpetas implicadas y cómo gestionar las contraseñas. A continuación se completará automáticamente el "Oracle Configuration Manager" y concluirá la instalación.
Cambiar configuración de estilos en Visual Studio
Como desarrolladores, en muchas ocasiones necesitamos cambios para aumentar la productividad. Uno de los principales que podemos afrontar es cambiar cada cierto tiempo el aspecto visual de nuestro IDE favorito, Visual Studio, para ver nuestro código "más claro", y esto depende de cada persona.
Aquí os dejo un enlace donde podéis descargar cientos de nuevos estilos y aplicarlos a vuestro entorno (Herramientas -> Importar y Exportar Configuraciones). ¡A tunear!.
Barcelona, capital mundial "móvil"
Pues sí, ha sido seleccionada por GSMA como la Mobile World Capital desde 2012 hasta 2018. Económicamente es una noticia estupenda: previsión de más de 300M € y cientos de puestos de trabajo, y ésto solo el primer año....Contará, además del Mobile World Congress, de dos elementos adicionales: el Centro Mundial del Móvil y el Festival Mundial del Móvil.
El Centro Mundial del Móvil contará con exposiciones permanentes y temporales que entrelazan la cultura y la innovación tecnológica, facilidades para el desarrollo e incubación de soluciones móviles, y lugares comerciales y de hostelería. Por su parte, el Festival Mundial del Móvil, que se dirige al público en general, incorporará una serie de actividades que incluyen eventos deportivos, festivales de música y arte.
¡Enhorabuena a los responsables de la candidatura!.
Datacenters: cómo son las apuestas de Google, Microsoft y Dell
Por alguna razón hoy me ha venido a la mente el impresionante video que nos mostró José Parada (el "Padre" Parada), responsable de Seguridad Corporativa de Microsoft Ibérica, en la Asegur@IT 9, del pasado 5 de Mayo, aquí en Málaga.
Allí pudimos ver insitu este vídeo, donde Microsoft nos presenta cómo son, cómo se montan y cómo se gestionan, de forma totalmente modular los gigantescos Datacenters, bosques de servidores virtuales donde albergar toda la Cloud Computing, todo lo que necesitamos guardar "en la nube", y todos los mecanismos asociados para garantizar la seguridad, disponibilidad, etc.
Puesta a punto de los índices en SQL Server
Para tener una base de datos óptima en términos de rendimiento ya sabemos que es imprescindible definir los índices correctamente en todas las tablas. Dichos índices los crearemos con aquellos campos sobre los que vamos a hacer un mayor número de consultas. Los índices pueden ser de uno o varios campos: lo importante es crear los necesarios ya que toda ventaja tiene sus inconvenientes, y uno de ellos es el espacio que ocupan dichos índices en la base de datos, y que además hay que hacerles un mantenimiento. Veamos cómo hacerles "una puesta a punto". Hay disponibles tres funciones y vistas clave, sys.dm_db_index_physical_stats, sys.dm_db_index_usage_stats y sys.dm_db_index_operational_stats para ayudarnos a comprobar si los índices funcionan tal y como esperamos.
(1) sys.dm_db_index_physical_stats (estudio de la fragmentación).
SELECT * FROM sys.dm_db_index_physical_stats (DB_ID('database_id'')
,OBJECT_ID('nombre_tabla')
,NULL -- NULL para ver todos los índices (en otro caso introducir el número del índice)
,NULL -- NULL para ver todas las particiones de un índice
,'DETAILED') -- Extraemos toda la información
El examen de los valores de las columnas avg_page_space_used_in_percent y avg_fragmentation_in_percent para la fragmentación de índices que quedan fuera del umbral lógico y de densidad aceptado nos ayudará a determinar qué operación hacer con el índice.
El examen de los valores de las columnas avg_page_space_used_in_percent y avg_fragmentation_in_percent para la fragmentación de índices que quedan fuera del umbral lógico y de densidad aceptado nos ayudará a determinar qué operación hacer con el índice.
(2) sys.dm_db_index_usage_stats (uso de los índices).
La prioridad, como administradores de la base de datos, es ver qué índices son útiles realmente. Para ver todos los índices de una instancia que no se han utilizado desde la última vez que se reinició el servicio de SQL Server, usaríamos:
SELECT DB_NAME(database_id),OBJECT_NAME([object_id] FROM sys.dm_db_index_usage_stats
WHERE user_seeks = 0 AND user_scans = 0 AND user_lookups = 0 AND system_seeks = 0
AND system_scans = 0 AND system_lookups = 0
Pero ¡ojo!, quizás índices que no salgan en los resultados de esta consulta sí sean muy necesarios, por ejemplo en consultas específicas que se ejecutan periódicamente de forma quincenal, mensual, etc.
(3) sys.dm_db_index_usage_stats (actividad funcional de los índices).
Con esta DMF podremos estudiar la E/S y bloqueos en los índices. Una consulta interesante sería:Pero ¡ojo!, quizás índices que no salgan en los resultados de esta consulta sí sean muy necesarios, por ejemplo en consultas específicas que se ejecutan periódicamente de forma quincenal, mensual, etc.
(3) sys.dm_db_index_usage_stats (actividad funcional de los índices).
SELECT page_latch_wait_count --contador de cerrojos de página
,page_latch_wait_in_ms --tiempos de espera de cerrojos de página
,row_lock_wait_in_ms --tiempos de espera de bloqueos de fila
,page_lock_wait_in_ms --tiempos de espera de bloqueos de página
,row_lock_count --contador bloqueos de fila
,page_lock_count --contador bloqueos de página
,page_io_latch_wait_count --contador de espera E/S
,page_io_latch_wait_in_ms --tiempo de espera E/S
FROM sys.dm_db_index_operational_stats (DB_ID('database_id')
,OBJECT_ID('yourtable')
,NULL -- NULL para ver todos los índices, en otro caso introduce número de índice
,NULL -- NULL para ver todas las particiones de un índice
)
En base a los valores obtenidos podremos detectar índices problemáticos que pueden llegar a causar cuellos de botella imprevistos.
Blog renovado
Hola, después de más de un mes desconectado del Blog (por diversas razones, vacaciones de por medio incluido) volvemos a la carga dispuesto a poner aquí todo lo relacionado con las novedades tecnológicas y aquello que crea interesante y, como siempre, dispuesto a compartirlo con vosotros. Espero que os guste el nuevo diseño del Blog y lo dicho: ¡aquí estamos de nuevo!. Nos vemos.
Suscribirse a:
Entradas
(
Atom
)






