Pregunta

¿Hay algún procedimiento almacenado del sistema para informar las estadísticas y metadatos de una base de datos en SQL Server 2005?

Lo que necesito es una forma rápida de generar una lista de tablas, el tamaño de cada tabla, el número de filas en cada tabla, etc. Los procedimientos almacenados para tablas y metadatos individuales también serían útiles.

Consejos apreciados.

¿Fue útil?

Solución

Sí, las tablas del diccionario de datos le permitirán hacer esto. Las tablas principales en el diccionario de datos son sys.objects , sys.columns , sys.indexes , sys.foreign_keys y sys.sql_modules . Para ver un ejemplo de una variedad de consultas que utilizan el diccionario de datos del sistema para realizar ingeniería inversa de una base de datos a un script SQL, eche un vistazo a esta publicación de stackoverflow.

Obtener el uso del espacio es un poco más complicado de hacer desde el diccionario de datos, pero sp_spaceused lo hará para una sola tabla. Puede envolver esto con sp_msforeachtable para iterar sobre un conjunto de tablas y obtenga el informe de todas las tablas.

Otros consejos

Eche un vistazo a las vistas del sistema, particularmente information_schema.tables. Estos procesos también obtendrán muchos de los datos que está buscando.

sp_helpdb dbname
sp_help objectname
sp_spaceused tablename

En lugar de consultar directamente las tablas sysobjects etc ..., puede usar la vista INFORMATION_SCHEMA .

De hecho, el sysobjects era una tabla en SQL SErver2000 , pero en SQL 2005 , se implementa como una vista , y se mantiene para preservar la compatibilidad con versiones anteriores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top