Empezar a trabajar con SQL Server puede resultar abrumador, por eso me he decidido a crear esta página dentro del blog donde recopilar las preguntas más comunes que os pueden ir surgiendo a medida que recorréis este camino. La idea de esta página es recopilar en un solo sitio los artículos más interesantes en este sentido que vamos publicando en el blog. De esta manera podréis tener en un solo sitio la respuesta a vuestras preguntas y siempre en español.
Esta página os va a servir, o al menos eso voy a intentar, como manual para llevar vuestros conocimientos sobre SQL Server tanto a nivel de uso como de administración a un nivel profesional. Las preguntas que aquí se van a responder están elegidas por mi en un principio pero, estoy abierto a vuestras peticiones y sugerencias. Si hay algo que queréis que respondamos solo tenéis que pedirlo. Por mi parte, y la de los colaboradores del blog, intentaremos dar las respuestas de una manera accesible para todos los públicos sea cual sea su experiencia. Guarda esta página en favoritos y recurre a ella tantas veces como necesites, que nadie nace sabiendo y todos hemos tenido que leer mucho para llegar donde estamos.
Antes de empezar con las preguntas y respuestas déjame recordarte como contactarnos. Lo principal es que puedes dejarnos un comentario en esta o cualquier página del blog pero también tenemos una dirección de mail, una cuenta en Twitter y un canal de Telegram para la comunidad. Puedes encontrar también respuestas a algunas de tus preguntas en nuestro canal de YouTube.
¿Qué edición de SQL Server elegir?
Microsoft ofrece una variedad de soluciones de bases de datos para satisfacer las necesidades de las empresas de todos los tamaños. Desde la edición Express de SQL Server 2022 para las necesidades de pequeñas aplicaciones, hasta las Instancias Administradas de Azure para las empresas que buscan la máxima flexibilidad y control, hay una solución para cada situación. Además no son excluyentes y en la mayoría de los casos nos encontraremos con escenarios híbridos que combinan varias de estas soluciones tanto locales como en la nube. La elección depende de las necesidades específicas de tu empresa y espero que, tras leer este artículo, estés más preparado para tomar la decisión.
¿Qué son los modos de recuperación y cúal elegir?
Los modos de recuperación en SQL Server son un aspecto clave en la estrategia de administración de bases de datos. Elegir el modo adecuado y gestionarlo de manera efectiva pueden marcar la diferencia entre una recuperación exitosa y una pérdida de datos importante. Comprender las ventajas y desventajas de cada modo y aplicar las mejores prácticas nos asegurará la integridad y disponibilidad de nuestros datos, garantizando así un rendimiento óptimo y una respuesta eficiente ante cualquier incidente.
¿Qué son los niveles de aislamiento?
Elegir el nivel de aislamiento ideal para nuestra base de datos es un pulso entre rendimiento y coherencia de los datos. Recuerda que debes elegir el nivel adecuado para cada caso, teniendo en cuenta las ventajas e inconvenientes de cada uno. Un nivel de aislamiento serializable sería lo más seguro pero prácticamente imposibilita la concurrencia entre varios procesos, mientras que un Read Uncommitted ofrece el mejor rendimiento a un precio demasiado alto.A partir de aquí, en tu mano está elegir el nivel de aislamiento ideal para tu base de datos.
Te recomiendo también estos otros artículos:
Bloqueos e Interbloqueos
Los bloqueos e interbloqueos son aspectos inevitables en cualquier sistema de gestión de bases de datos relacionales, pero no por ello debemos resignarnos a sufrir sus consecuencias negativas. Con un buen diseño, una correcta elección del nivel de aislamiento y una constante monitorización podremos mejorar el rendimiento y la fiabilidad de nuestras bases de datos.
Te recomiendo también este otro vídeo sobre cómo detectar bloqueos en SQL y Azure SQL
Normalización de bases de datos
La normalización es el proceso de organizar los datos en una base de datos de forma que se eviten las redundancias, las inconsistencias y las anomalías. Se basa en aplicar una serie de reglas, llamadas formas normales, que definen cómo deben estructurarse las tablas y las relaciones entre ellas. La normalización tiene muchos beneficios, como mejorar el rendimiento, facilitar el mantenimiento, garantizar la integridad y optimizar el espacio de almacenamiento.
Campos Identity y Secuencias
Tanto la propiedad IDENTITY como las secuencias son herramientas poderosas en SQL Server para la generación de valores únicos. Cada una tiene sus propias ventajas y desventajas, y la elección entre una y otra depende de las necesidades específicas del proyecto. Al entender estas herramientas y cómo funcionan, podemos hacer un uso más efectivo de ellas y diseñar bases de datos más eficientes y flexibles.
Importar Excel en SQL
Excel es uno de los software más usados para almacenar e intercambiar información. A lo largo de nuestra carrera nos encontraremos en muchas ocasiones con datos en Excel que tenemos que importar a la base de datos. Por suerte para nosotros, el SQL Server Management Studio (SSMS) incorpora un asistente de importación para hacernos la vida más fácil.
También puedes ver este articulo donde te enseño el proceso en vídeo.
Tipos de datos numéricos en SQL Server
Como sabemos tenemos varios tipos de datos que nos van a permitir almacenar números en SQL Server. Vamos a ir viendo uno a uno.
Trabajar con fechas y horas en SQL Server
Manejar correctamente los tipos de datos de fecha y hora en SQL Server o Azure SQL es esencial para mantener la integridad de los datos y realizar cálculos precisos. Aunque puede parecer un tema sencillo al principio es más complejo cuando empiezas a trabajar con ello y a profundizar. Sin embargo, como todo, con un poco de práctica y estudio, se puede dominar. Espero que este artículo te ayude en el dominio de los tipos de datos de fecha en SQL Server y Azure SQL.
También te recomiendo estos artículos:
¿Qué es una instancia, base de datos y esquema?
Cuando hablamos de bases de datos, términos como instancia, base de datos (BBDD) y esquema son fundamentales, pero no en todos los sistemas tienen los mismos significados, lo que genera confusión entre los desarrolladores y administradores de bases de datos principiantes. Cuando trabajamos con SQL Server o Azure SQL, es crucial entender cómo están organizados los datos y las estructuras que los contienen. A menudo, los términos “instancia”, “base de datos” y “esquema” se utilizan indistintamente, pero cada uno tiene un significado específico y una función distinta. Veámoslo.
¿Qué son los Logins y los Users de SQL? ¿En qué se diferencian?
Puede parecer que son lo mismo pero no lo son y, entender sus particularidades y diferencias va a ser clave para nuestra labor. Además, a estos conceptos tenemos que sumarle uno nuevo, los usuarios independientes, que se han implementado en las soluciones SQL en Azure y que harán que cambiemos nuestra forma de actuar en muchos casos. Los Logins son los objetos que nos van a permitir iniciar sesión y tener permisos sobre la instancia mientras que los usuarios lo hacen sobre las bases de datos.
También te recomiendo leer estos artículos:
¿Cuáles son y qué hacen las bases de datos de sistema?
Las bases de datos del sistema en SQL Server son un conjunto de bases de datos predefinidas que almacenan información interna sobre la configuración del servidor, los metadatos de las bases de datos de usuario y otros aspectos críticos de la operación del sistema. Estas bases de datos son fundamentales para el funcionamiento del servidor y la gestión de los datos que este contiene.
SQL Server necesita varias bases de datos del sistema, entre las que vamos a encontrar a las conocidas master, msdb, model, tempdb pero también alguna oculta como Resource Database y otras que solo aparecen si usamos características concretas como la SSISDB o la base de datos distribution. Cada una de estas bases de datos tiene una función específica que desempeñar y, en conjunto, permiten el correcto funcionamiento del servidor.
También te recomiendo leer este artículo sobre cómo mover las bases de datos de sistema
¿Qué mantenimiento necesitan las bases de datos?
El mantenimiento de bases de datos en SQL Server, como en todos los sistemas de bases de datos, es una actividad crítica para garantizar el rendimiento y la estabilidad de las aplicaciones que dependen de ellas. Un enfoque proactivo en la gestión de índices, estadísticas, integridad y copias de seguridad nos permite a los administradores evitar problemas potenciales antes de que se conviertan en fallos costosos.
¿Por qué SQL consume tanta RAM?
Las instancias de SQL tienden a consumir tanta RAM como puedan y una vez consumida no la liberan. Este comportamiento garantiza que siempre va a tener los recursos disponibles para resolver nuestras consultas. Sin embargo, esto no quiere decir que no podamos controlar el consumo de recursos.
¿Por qué SQL consume tanta CPU?
El consumo excesivo de CPU en SQL Server puede afectar significativamente el rendimiento y la estabilidad del sistema. Para poder localizar el problema, tenemos que comprobar si el consumo viene del proceso de SQL o de otros procesos, si es de SQL deberemos localizar de que consulta viene el problema.
¿Por qué SQL mis bases de datos crecen tanto?
El crecimiento descontrolado de las bases de datos es una preocupación común para los administradores de sistemas y bases de datos. El aumento natural de los datos puede ser una explicación pero, en ocasiones, este crecimiento puede estar influenciado por errores de modelado, configuraciones inadecuadas y prácticas de gestión poco eficaces.
También te recomiendo leer este artículo sobre cómo reducir las bases de datos.
¿Qué son las transacciones?
Una transacción es un conjunto de operaciones SQL que se ejecutan como una unidad indivisible. El principio básico es que todas las operaciones dentro de una transacción deben completarse con éxito; de lo contrario, ninguna de ellas se aplicará. Este comportamiento garantiza la integridad y consistencia de los datos.
Copias de seguridad
Una de las tareas más importantes que debemos hacer como DBAs son las relacionadas con las copias de seguridad. Tenemos que saber cómo hacer copias de seguridad y cómo restaurarlas. Esto nos permitirá recuperar nuestras bases de datos a un momento anterior en caso de incidente que podría ir desde un borrado accidental de un dato hasta un fallo total del servidor.
También te recomiendo:
Restaurar Copias de Seguridad
Restaurar copias de seguridad es una de las tareas más críticas que debemos conocer ya que son el último recurso ante un desastre. Tenemos que tener muy claro como podemos hacerlo y que es lo que necesitamos.
También te recomiendo:
¿Qué hacen cada uno de los servicios de SQL Server?
Cuando instalamos SQL Server en nuestro ordenador o en un servidor vamos a ver que se instalan varios servicios que no teníamos antes. Esto es porque SQL Server es mucho más que un motor de base de datos relacional (RDBMS) sino que hay todo un ecosistema a su alrededor que hace posible la ejecución de todas las capacidades adicionales de las que dispondremos. Estos servicios trabajan en conjunto para proporcionarnos las capacidades de automatización, escalabilidad, seguridad, y analítica avanzada, permitiendo que SQL Server sea más que un simple motor de base de datos, como decíamos antes. A continuación, vamos a ver en detalle cada uno de estos servicios y componentes, desglosando su rol dentro del ecosistema de SQL Server para que como administradores de base de datos tengáis un mayor control
¿Qué es la collation?
a collation (intercalación) es uno de esos conceptos cruciales de SQL Server y Azure SQL sin embargo, a menudo se pasa por alto o se confunde con otros términos como idioma o codificación. Dado que la collation impacta directamente en la forma en que se procesan las consultas de texto, su correcta configuración es vital para evitar problemas de rendimiento y coherencia en nuestras aplicaciones. En resumen, la collation define cómo se ordenan y comparan los datos de texto en una base de datos, incluyendo reglas sobre la sensibilidad a mayúsculas, acentos y otros caracteres especiales. Es de esas configuraciones de las que uno solo se acuerda cuando tiene un error y ya es tarde para solucionarlo.
¿Qué son los jobs?
Cualquiera que haya trabajado con SQL Server y haya necesitado algo más que un simple almacén donde leer y escribir datos sabe que los jobs son un aliado indispensable para automatizar tareas repetitivas o programadas. Dentro de este contexto, los jobs juegan un papel crucial al permitirnos ejecutar de manera automática una variedad de tareas, desde copias de seguridad hasta la ejecución de scripts complejos. Sin embargo, más allá de crear y ejecutar jobs básicos, el manejo avanzado de estos, así como asignar bien permisos sobre el agente y el uso de proxys y credenciales, son aspectos que pueden marcar la diferencia en la administración eficiente y segura de nuestro entorno de bases de datos.
También te recomiendo leer este post sobre el agente de SQL Server.
¿Cómo leer el log de errores de SQL Server?
Si hay una herramienta imprescindible para un administrador de bases de datos esa es, sin duda, el log de errores. Este archivo nos proporciona un registro detallado de los eventos que ocurren en el sistema, permitiéndonos identificar problemas, realizar diagnósticos precisos y, en definitiva, mantener la estabilidad y el rendimiento de nuestras instancias de SQL Server. Sin embargo, para aprovechar al máximo esta herramienta, es fundamental comprender cómo configurarla adecuadamente, cómo interpretar la información que nos ofrece y qué hacer cuando necesitamos reiniciarla. En este artículo, profundizaremos en estos aspectos para que podamos sacarle todo el partido posible al log de errores.
¿Qué son los Linked Server?
Una de esas características interesantes de SQL Server que a menudo pasan desapercibidas es la capacidad de conectarse y consultar datos de diversas fuentes de datos ajenas a nuestra instancia. Esto se consigue gracias a los Linked Servers (Servidores Vinculados) que facilitan la integración de datos distribuidos, permitiéndonos interactuar con otras bases de datos como si fueran parte de nuestra instancia local de SQL Server. Ya sea porque necesitemos acceder a datos de otro servidor SQL, de Oracle, archivos Excel o incluso consultas LDAP los Linked Server son una herramienta imprescindible.

