Domanda

Esistono processi memorizzati nel sistema per segnalare statistiche e metadati di un database stesso in SQL Server 2005?

Ciò di cui ho bisogno è un modo rapido per generare un elenco di tabelle, le dimensioni di ciascuna tabella, il numero di righe in ciascuna tabella e così via. Anche i proc memorizzati per singole tabelle e metadati sarebbero utili.

Consiglio apprezzato.

È stato utile?

Soluzione

Sì, le tabelle del dizionario dei dati ti consentiranno di farlo. Le tabelle principali nel dizionario dei dati sono sys.objects , sys.columns , sys.indexes , sys.foreign_keys e sys.sql_modules . Per un esempio di una serie di query che utilizzano il dizionario dei dati di sistema per decodificare un database in uno script SQL, dai un'occhiata a questa pubblicazione di stackoverflow.

L'utilizzo dello spazio è un po 'più complicato rispetto al dizionario dei dati, ma sp_spaceused lo farà per un singolo tavolo. Puoi racchiuderlo con sp_msforeachtable per iterare su un set di tabelle e ottieni il rapporto per tutte le tabelle.

Altri suggerimenti

Dai un'occhiata alle viste di sistema, in particolare information_schema.tables. Questi proc riceveranno anche molti dei dati che stai cercando.

sp_helpdb dbname
sp_help objectname
sp_spaceused tablename

Invece di interrogare direttamente le tabelle sysobjects ecc ..., puoi utilizzare la vista INFORMATION_SCHEMA .

In effetti, sysobjects era una tabella in SQL SErver2000 , ma in SQL 2005 , è implementato come una vista ed è mantenuto per preservare la compatibilità con le versioni precedenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top