Leer archivos .xlsx desde SQL Server es una tarea sencilla, aunque hay veces que puede requerir de cierta configuración inicial. En ester artículo vamos a ver cómo preparar una instancia de SQL Server para leer este tipo de archivos de forma nativa.
Sigue leyendoSQL Server
Bases de datos en contenedores – SQL Server en Windows
Este artículo es el primero de una serie sobre bases de datos en contenedores. Por ello, empezaremos revisando qué es un contenedor, para luego entrar en nuestro primer caso: SQL Server en contenedores Windows.
Sigue leyendoCloud SQL en Google Cloud Platform
Recientemente he estado considerando la opción de Cloud SQL para SQL Server ofrecida por Google Cloud Platform (GCP). Esta es la plataforma de servicios en la nube ofrecida por el gigante Google. En terminos de servicios cloud, parece que aún no está al nivel de Amazon Web Services (AWS) o Microsoft Azure. Sin embargo, el crecimiento de GCP en los último años dos años ha sido significativo. Sigue leyendo
SQL101: Full Recovery Model
Siguiendo el atículo anterior sobre fundamentos de SQL Server: SQL101: Simple Recovery Model, en este vamos a tratar sobre el modelo más extendido, Full Recovery Model.
Empecemos haciendo un repaso de las principales características de este modelo de recuperación: Sigue leyendo
SQL101: Simple Recovery Model
Antes de entrar en detalle sobre los diferentes Modelos de Recuperación de bases de datos en SQL Server, repasemos qué es el Modelo de Recuperación.
«A recovery model is a database property that controls how transactions are logged, whether the transaction log requires (and allows) backing up, and what kinds of restore operations are available.» MSDN
Un asunto pendiente de MS SQL Server Developer
Para este artículo empezaremos comentando como es un entorno común de trabajo, que de encaje al ciclo de desarrollo de SW elegido en vuestra empresa. Luego veremos que nos ofrece MS SQL Server. Y al final os comento mi opinión.
Si nos paramos a pensar como son los entornos de trabajo de una empresa de desarrollo, muchos de vosotros encajaréis en en lo siguiente:
- 1 Entorno de desarrollo: Volumen de datos reducido, esquema igual que producción + nuevos cambios. AKA Desarrollo,
- [0..N] Entornos de pruebas de integración: Volumen de datos reducido, esquema igual al de producción. AKA Integración.
- [0..M] Entornos de pruebas de carga: Volumen de datos similar a Producción, esquema clon de producción, configuración (servidor e instancia) igual a producción. AKA Load Test
- [1..P] Entornos de producción: entorno final del producto/aplicación. AKA Producción.
Por [0..N], nos referimos a cero o más. [1..M]: Al menos uno, etc. Basta decir la importancia que tiene la consistencia entre entornos es crucial para que el ciclo de desarrollo del SW funcione correctamente.
Ejemplo 1: la definición de una tabla o el código de un procedimiento almacenado en Desarrollo debe ser igual al del resto de los entornos antes de un nuevo cambio.
Ejemplo 2: La configuración del entorno de Load Test debe ser un clon al de Producción, en todos los sentidos: Esquema de BD, configuración de la instancia de SQL Server, configuración del servidor, etc. De lo contrario las pruebas realizadas aquí no tendrán valor o muy poco, ya que no nos servirá para predecir el comportamiento de Producción en situaciones de alta carga de trabajo.
Ahora que hemos planteado el escenario, veamos que nos ofrece SQL Server para cada entorno, resumido en dos líneas:
- Entornos de no Producción: MSSQL Developer.
- Entornos de Producción: MSSQL Standard o Enterprise.
Standard tiene muchas características/opciones y Enterprise las tiene todas. Por citar un ejemplo: El motor de SQL Server en Enterprise, para una consulta X, usará automáticamente una vista indexada, en caso de que exista y ayude a generar un mejor plan de ejecución y por tanto optimize el rendimiento de la consulta. En Standard no es así. Por eso la diferencia de costes de licencias entre una y otra. Aquí puedes ver todas las diferencias entre las ediciones, hay un buen número.
Pos su parte la edición MSSQL Developer funciona con todas las opciones de Enterprise, seguramente con algún matiz pero ahora no entraremos en eso. Lo cual está muy bien para ver qué es lo que ofrece el MSSQL, probar y tratar de convencer a tus jefes de lo bueno que es Enterprise para que lo compren.
Pero… ¿Qué pasa si el entorno de Producción tiene que ser Standard, sí o sí? Developer edition no tiene hasta la fecha ninguna opción para configurarlo como otra edición diferente. WTF!!??
¡Sí amigos! Esto es lo que hay por ahora… pero se puede hacer algo para que lo cambien. Para ello existe un ticket abierto (Editado 1-Mayo-2020: enlace actualizado debido a cambio de sitio de MS para peticiones en SQL Server), si te interesa como a mí ¡Vota!
Hasta el próximo post!