Quelques commandes pour gérer les urgences
transaction log full
DBCC OPENTRAN ('database')
Vérifie d'éventuelles transactions ouvertes sur la base, qui pourraient expliquer une augmentation anormale de la taille du log.
DBCC LOGINFO ('database')
Affiche des informations détaillées sur le log de transactions. Non documenté
DBCC UPDATEUSAGE ('database')
EXEC sp_spaceused
pour vérifier la taille de la base de données
DBCC SQLPERF(LOGSPACE)
vérifie la taille du log de transaction, et sa partie non utilisée
BACKUP LOG database WITH TRUNCATE_ONLY
tronque le log. A utiliser avec prudence: cette commande invalide une straégie de backup basée sur les logs de transaction. Vous perdrez ainsi la chaîne des backup de log vous permettant de restaurer la base. Il vaut mieux faire un vrai backup de log dans ce cas
Indexes
EXEC sp_helpindex 'table_name'
liste les indexes d'unetable
EXEC sp_statistics @table_owner = 'dbo', @table_name = 'table_name'
liste les statistiques attachées à une table, sur des indexes, ou des colonnes non indexées
DBCC SHOW_STATISTICS (table_name, index_name)
affiche les détails des statistiques sur un index
DBCC SHOWCONTIG ('table_name')
analyse la fragmentation interne et externe des pages de la table
DBCC SHOWCONTIG ('table_name', 'index_name')
analyse la fragmentation sur un index spécifique
DBCC SHOWCONTIG ('table_name') WITH ALL_INDEXES
analyse la fragmentation sur tous les indexes de la table
DBCC DBREINDEX ('table_name')
supprime et recrée les indexes d'une table. Atomique; lockant
DBCC INDEXDEFRAG ('table_name')
réarrange les indexes. Permet une bien meilleure concurrence des accès à la table
processus
Liste les processus actifs dans sysprocesses
SELECT blocked, loginame, hostname, program_name, kpid, waittime, lastwaittype, db_name(dbid) AS db, cpu, physical_io, open_tran, STATUS, cmd, spid FROM master.dbo.sysprocesses WITH (readuncommitted) WHERE kpid > 0 ORDER BY kpid
problèmes de bases et de fichiers avec SQL 2005
SELECT * FROM sys.DATABASES WHERE name = 'nom_de_ta_base' SELECT * FROM sys.master_files WHERE database_Id = DB_ID('nom_de_ta_base') SELECT * FROM sys.server_principals



