Conoce tu base de datos desde adentro

Clase 25 de 26Curso de Gestión de Bases de Datos con SQL Server

Resumen

Conocer la estructura interna de una base de datos antes de modificarla o administrarla es una habilidad fundamental para cualquier profesional que trabaje con SQL. Las preguntas sobre cuántas tablas existen, qué columnas tienen, qué restricciones aplican y cuánto espacio ocupan se responden directamente desde la propia base de datos, utilizando Information Schema y las tablas de sistema de SQL Server.

¿Cómo consultar tablas y columnas con Information Schema?

Information Schema es una vista estándar definida por SQL ANSI, lo que significa que funciona tanto en SQL Server como en PostgreSQL, MySQL y otros motores de base de datos [0:42]. Esta característica lo convierte en una herramienta ideal cuando se necesita comparar información entre distintos motores.

Para conocer todas las tablas de una base de datos, basta con ejecutar una consulta sobre INFORMATION_SCHEMA.TABLES. Es importante asegurarse de estar en la base de datos correcta usando USE nombre_base_de_datos o seleccionándola desde la interfaz [1:18].

Para obtener las columnas de una tabla específica, se consulta INFORMATION_SCHEMA.COLUMNS [1:48]. Esta vista devuelve:

  • El tipo de dato de cada columna (por ejemplo, VARCHAR 20 o DATETIME).
  • El ancho máximo de caracteres permitido.
  • La precisión numérica, que aplica a campos numéricos como enteros (un entero tiene precisión de diez) pero no a tipos como DATETIME, donde aparece nulo [2:28].
  • Si el campo permite valores nulos.
  • El valor por defecto: por ejemplo, GETDATE() para fechas o la cadena "pendiente" para un campo de estado [2:52].

¿Qué restricciones existen en la base de datos?

También desde Information Schema se pueden consultar todas las restricciones (constraints) definidas en la base de datos [3:17]. Esto incluye:

  • Llaves primarias (primary keys).
  • Llaves foráneas (foreign keys).
  • Restricciones de tipo check.
  • Restricciones de unicidad (unique).

Conocer estas restricciones permite planificar modificaciones futuras sobre las tablas cuando cambian las reglas de negocio o se requiere mantenimiento.

¿Qué información adicional ofrecen las tablas de sistema de SQL Server?

SQL Server cuenta con un sistema propio de metadatos que va más allá de Information Schema y entrega información mucho más detallada. A través de vistas como sys.tables, se puede consultar cada tabla con su número de columnas, cantidad aproximada de filas y espacio usado en disco [4:16].

Por ejemplo, una tabla de clientes con diez columnas y mil filas puede estar ocupando un megabyte. Este dato es muy práctico cuando se necesita planificar migraciones, backups o tareas de administración [4:33].

¿Cómo visualizar las llaves foráneas y sus relaciones?

Desde las tablas de sistema también se pueden consultar todas las llaves foráneas y sus relaciones [4:52]. La consulta devuelve:

  • Nombre de la llave foránea.
  • Tabla hijo y columna hijo.
  • Tabla padre y columna padre.

Esta información resulta esencial para entender las dependencias entre tablas antes de realizar cualquier cambio estructural.

¿Cómo medir el rendimiento con DMVs?

Las DMVs (Dynamic Management Views) permiten consultar el estado en tiempo real del servidor [5:33]. Entre las consultas más útiles están:

  • Sesiones activas: a través de la vista de ejecución de sesiones se puede saber cuántos usuarios están conectados y qué están haciendo en ese momento [5:46].
  • Índices más usados: esta consulta muestra qué índices se están utilizando y cuáles no [6:10]. Los índices que no se usan pueden afectar negativamente la performance y conviene eliminarlos. La columna de seeks y scans indica las consultas de lectura, mientras que las actualizaciones reflejan escrituras sobre el índice [6:40].

¿Qué script utilizar para conocer una base de datos nueva?

Un script de resumen ejecutado al comenzar a trabajar con una base de datos nueva permite obtener en una sola ejecución datos como [7:15]:

  • Nombre de la base de datos.
  • Cantidad total de tablas, vistas y stored procedures.
  • Tamaño total en megabytes.
  • Las cinco tablas más grandes por tamaño.

En el ejemplo con Tienda Latam, el resumen mostró doce tablas, cuatro vistas, dos procedimientos almacenados y un tamaño total de 8.25 megabytes [7:30]. Las cinco tablas más grandes fueron log de cierre, empleado, detalle pedido, cliente y categoría [7:55].

La base de datos es introspectiva: puede describirse a sí misma. Information Schema sirve para portabilidad entre motores, sys.* para los detalles específicos de SQL Server y las DMVs para el estado en tiempo real [8:15]. Comparte tu propio script de salud de base de datos en los comentarios.