https://github.com/carroyo5/sql-db-space-analyzer
Este repositorio contiene un script SQL avanzado diseñado para analizar el uso de espacio en bases de datos de SQL Server. El script proporciona estadísticas detalladas sobre el almacenamiento consumido por las tablas, índices, y objetos internos, así como información sobre la fragmentación de índices.
https://github.com/carroyo5/sql-db-space-analyzer
dba sql sqlserver
Last synced: 4 months ago
JSON representation
Este repositorio contiene un script SQL avanzado diseñado para analizar el uso de espacio en bases de datos de SQL Server. El script proporciona estadísticas detalladas sobre el almacenamiento consumido por las tablas, índices, y objetos internos, así como información sobre la fragmentación de índices.
- Host: GitHub
- URL: https://github.com/carroyo5/sql-db-space-analyzer
- Owner: carroyo5
- Created: 2025-06-30T21:05:32.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-06-30T21:13:50.000Z (6 months ago)
- Last Synced: 2025-06-30T22:24:40.556Z (6 months ago)
- Topics: dba, sql, sqlserver
- Language: TSQL
- Homepage:
- Size: 5.86 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📊 SQL Server Database Space Usage Analyzer
## 🚀 Características
- Consulta el tamaño reservado, usado, y no utilizado por tabla.
- Identifica el tamaño ocupado por datos e índices.
- Incluye estadísticas de fragmentación de índices.
- Calcula el tamaño total por tabla en GB.
- Excluye tablas del sistema para centrarse en datos relevantes.
- Soporte para tablas internas y estructuras fragmentadas.
## 📌 Requisitos
- Permisos para ejecutar vistas del sistema como `sys.dm_db_partition_stats`, `sys.indexes`, `sys.dm_db_index_physical_stats`, etc.
## 📂 Estructura del script
El script incluye varias CTEs como:
- `TableStats`: Estadísticas de filas y páginas por tabla.
- `InternalTableStats`: Uso de espacio por tablas internas.
- `IndexedFragmentationDetails`: Detalles de fragmentación por índice.
- `IndexFragmentation`: Agregación de fragmentación de índices por objeto.
Al final, se genera un resultado con columnas como:
- `table_name`
- `Cantidad de Campos`
- `Reserved KB`, `Data KB`, `Index_size KB`, `Unused KB`
- `Tamaño Total GB`
- `Nombre del índice`, `Tipo de índice`, `Porcentaje de fragmentación`
## Ejemplo de salida
| table_name | Cantidad de Campos | Reserved KB | Data KB | Index_size KB | Unused KB | Tamaño Total GB | Nombre del índice | Tipo de índice | Porcentaje de fragmentación |
|----------------------|--------------------|-------------|---------|----------------|------------|------------------|--------------------|-----------------|-----------------------------|
| dbo.MyTable | 1500000 | 24000 | 16000 | 5000 | 3000 | 0.02 | 1- PK_MyTable | 1- CLUSTERED | 1- 89.5% |
## 🛠️ Uso
1. Cambia a la base de datos deseada con `USE [NombreDeTuBaseDeDatos]`.
2. Ejecuta todo el script.