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

voir sql-server-performance.com

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
 
sql_server/urgence.txt · Dernière modification: 2006/07/24 10:39 (édition externe)