Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

SQL Server Express: la base de datos empresarial gratuita de Microsoft

SQL Server es el servidor de datos empresarial de Microsoft. Ofrece diversas ediciones que se orientan a diferentes necesidades:

  • Enterprise: es la edición dirigida a las muy grandes empresas, con características de alta disponibilidad, alta escalabilidad y alto rendimiento.
  • Standard: orientada a empresas con necesidades altas de gestión de datos e inteligencia de negocio pero que no necesitan todas las características de alta disponibilidad de la anterior.
  • Express: es una edición gratuita del sistema gestor de bases de datos, y que es más que suficiente para la mayor parte de las aplicaciones que puedas tener en una PYME.

Microsoft indica que la edición Express está orientada a "nivel de entrada, ideal para pequeñas bases de datos", lo cual puede hacer pensar que se trata de una base de datos de juguete. Nada más alejado de la realidad, si te estás planteando aprender SQL Server y practicar aprovechando la edición Express, que esto no sea lo que te eche para atrás.

SQL Server Express ofrece toda la potencia de sus hermanas mayores Enterprise y Standard pero con unas pocas limitaciones en cuanto a tamaño y escala, como veremos enseguida.

sql-express-hero

Mitos y leyendas sobre las limitaciones de SQL Server Express

Las únicas restricciones en lo que respecta al motor de datos entre la edición Express y sus hermanas de pago son las siguientes:

  • Está limitada a trabajar con 1 procesador, con 4 núcleos como máximo, sin importar su velocidad o rendimiento.
  • Puede emplear como máximo 1 GB de memoria RAM para almacenar cachés de información, lo cual limita su rendimiento si manejamos conjuntos de datos muy grandes.
  • El tamaño de cada base de datos que creemos puede ser de como máximo 10 GB.

Aunque estas restricciones limitan su escalabilidad, que es de lo que se trata, son bastante generosas y permiten crear aplicaciones de un tamaño bastante grande, considerando lo que es una PYME o una startup. Además, 1 procesador de 4 núcleos hoy en día da para mucho, 1 GB de información cacheada en RAM es mucha información y podemos suplirlo en parte usando discos rápidos y separando los archivos de la base de datos en varios discos, y 10 GB de datos en una base de datos que almacena textos, enteros y datos de este tipo, da para mucho.

Además, y éste es un mito recurrente que se oye sobre esta edición Express, podemos crear tantas bases de datos como queramos. Es decir, no estamos limitados a una única base de datos, sino que podemos tener tantas bases de datos como necesitemos, cada una de ellas con un tamaño máximo de 10GB. Es más, podemos instalar más de una instancia de SQL Server Express si lo consideramos necesario, la cual sacará partido a 1 Gb de memoria y un procesador.

Tampoco es cierto otro rumor que se oye a veces de que esta edición Express está limitada a tan solo 10 conexiones simultáneas: puede soportar tantas conexiones como sea posible con el hardware donde la hayamos instalado.

¿De qué otras cosas carece la edición Express?

En esta página de Microsoft tenemos una comparativa entre ediciones, pero básicamente las características de las que carece son solo las relativas a alta escalabilidad y disponibilidad:

  • Alta disponibilidad básica.
  • Alta disponibilidad avanzada: que solo está disponible en la Enterprise.
  • OLTP en memoria y avanzado: tampoco la tiene la Standard, solo en la Enterprise.
  • Enterprise Data Management: solo en la Enterprise.
  • Seguridad a nivel de fila: así como auditoría y algunos detalles sobre gestión avanzada de seguridad.
  • Integración avanzada de datos: solo en la Enterprise.
  • PolyBase: una característica avanzada nueva que permite unir como si fuera un solo origen datos relacionales y otros datos no-relacionales como datos de Hadoop o de Azure Blob Storage.
  • Business Intelligence.
  • Integración de datos.
  • No tiene programador de tareas (SQL Job Scheduler), aunque incluye la utilidad de línea de comandos sqlcmd.exe que permite usar el programador de tareas del sistema para llevar a cabo tareas programadas basadas en archivos de script.

Sin embargo sí que tiene todo lo demás e incluso capacidades de reporting, interfaz de gestión, integración básica con el lenguaje R (para informes estadísticos y de Machine Learning) e incluso capacidades híbridas en la nube que permiten combinar de manera transparente bases de datos locales con otras que están en Azure (Stretch Database).

¿Cómo la descargo?

La edición Express de SQL Server 2016 está disponible para descarga directa y gratuita desde aquí. Se ofrecen tres variantes:

  • LocalDB: muy útil durante el desarrollo. De hecho viene integrada con Visual Studio. Es una edición ligera del gestor de datos que se lanza bajo demanda en lugar de estar todo el tiempo funcionando y ocupando memoria, con menos requisitos que la edición real y con una instalación directa (sin necesidad de configurar nada). Trae lo estrictamente necesario por lo que ni siquiera tiene herramientas de administración, pero podemos conectarnos a ella con Visual Studio o con SQL Server Management Studio si lo tenemos instalado por otro lado. Descarga esta si vas a desarrollar.
  • Express: es una versión esencial del motor que no incluye herramientas. Es decir, es como la anterior pero ya pensada para ser instalada en un entorno de producción, donde funcionará todo el rato. Como está pensada para producción no incluye tampoco herramientas de gestión ni nada accesorio: el motor de bases de datos puro y duro y listo para ser usado en una aplicación real. Descarga esta si vas a poner en producción una aplicación que ya has desarrollado.
  • Express con Advanced Services: este es el  paquete completo: el motor de bases de datos anterior y las herramientas de gestión, generación de informes y el añadido de permitir los servicios de búsqueda de texto completo. Descárgala tanto para desarrollar (pero teniendo herramientas de gestión en la descarga, sin recurrir a otras), o bien incluso para producción si quieres gestionarla desde el propio servidor en algún momento.

En resumen

SQL Server Express es una edición gratuita y muy capaz de SQL Server con la que podemos desarrollar todo tipo de aplicaciones (de escritorio o web) con las únicas limitaciones del tamaño de la base de datos y la escalabilidad. Puedes crear tantas bases de datos como necesites y también crear varias instancias.

Para la mayor parte de las aplicaciones que puede crear una pequeña o mediana empresa o una startup es más que suficiente en cuanto a tamaño y rendimiento, incluso en aplicaciones web ya que no hay límite de conexiones simultáneas.

Es posible utilizarla en aplicaciones comerciales e incluso redistribuirla integrada con tu aplicación, por lo que las posibilidades son muy amplias.

Si trabajas en entornos y lenguajes Microsoft es una herramienta inexcusable, e incluso en otros entornos puede ser una mejor opción que MySQL o incluso la versión gratuita de Oracle (que te limita tan solo a 1 core, aunque te da 1 GB más de tamaño en la base de datos) ya que suele haber conectores excelentes con este gestor de datos.

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Acceso a Datos

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Comentarios (8) -

Jaime Bermejo
Jaime Bermejo

Estupendo artículo. La verdad es que ya sólo intentar descargar SQL Server era un odisea. Aunque con las versiones de 2017 han simplificado un poco el proceso. Un saludo

Responder

Buen dia amigos, tengo una pregunta, si quiero migrar a la version standard o enterprise, ¿Como es el metodo de licenciamiento? es que la pagina oficial de Microsoft menciona las licencias CAL y no logo entender como funcion. Lo que pasa es que tengo una base de datos que ya esta a punto e cumplir los 10G y tengo que migrar los mas pronto posible.
Gracias por compartir este articulo, esta bien explicado.

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola Aniel:

El tema de licenciamiento lo debes comentar con Microsoft, pero básicamente:

- Las CAL se usan para cuando quieres comprar licencias de acceso por usuario individual. Típicamente en entornos cerrados de empresa donde cada usuario accede con una cuenta.
- Lo más habitual es licenciar por procesador/core, que limita el uso a uno o varios procesadores del servidor. Cada uno tiene un coste.

También se pueden alquilar licencias a través de revendedores que tienen el contrato SPLA con Microsoft (mira en el directorio de partners) y por fin Azure ofrece un servicio de SQL Server gestionado que está muy bien aunque el pago es mensual y sale más caro, pro te olvidas de gestionarlo tú, actualizaciones e incluso backups (van incluidos).

Espero que te sirva.

Saludos.

Responder

Aniel Perez
Aniel Perez

Haber si me queda claro, las CAL tienen que ver con conexiones, o tiene que ver con administracion? o ambas, porque si fuera SQL Server para web seria muy limitado y muy costoso la migracion si fuera basadas en conexiones. Ahora si se a desarrollado una app en WinForm creo que tambien seria muy complicado. o ando confundido.

Saludos.

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola de nuevo:

CAL = Client Access License

O sea: acceso desde un equipo determinado. Si por ejemplo tienes una app de gestión que van a usar 4 personas/equipos solamente, necesitas 4 CALs para ellos y te saldrán más baratas que comprar una versión atada a un procesador.

Si es una aplicación web o similar a la que van a acceder potencialmente miles de usuarios entonces necesitas licencias por procesador.

Una buena opción: alquilar el software por un precio mensual o directamente alquilarlo en Azure (azure.microsoft.com/en-us/services/sql-database/).

De nada.

Saludos.

Responder

una base de datos sqlexpress gratuita se maneja con CAL?

Responder

Con la versión community se pueden ejecutar en producción los Jobs de packages desarrollados ? Pregunto porque he tratado y no he podido

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola:

En teoría sí podrías hacerlo usando sqlcmd desde la línea de comandos y utilizando la instrucción:

EXEC msdb.dbo.sp_start_job 'tu_trabajo'

pero claro, siempre que lo que haga ese "Job" utilice cosas que están soportadas en la edición Community.

Aunque la edición Community carezca de programador de tareas siempre puedes hacerlo todo con el programador de tareas de Windows y sqlcmd. Por ejemplo, puedes programar backups lo complejos que quieras como explico en este post: www.jasoft.org/.../SQL-Server-Express-Hacer-backups-programados-y-con-retencion

Saludos.

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.