Social Icons

viernes, 31 de octubre de 2008

Mantenimiento de bases de datos de SharePoint

Las bases de datos son el corazón de SharePoint y a él también le gusta tener sano su corazoncito.

Para ello, lo que yo suelo recomendar a los administradores es que ejecuten esta serie de comandos una vez al mes por lo menos.


-- Seleccionamos base de datos de contenido
use WSS_Content
GO
-- Comprobamos la consistencia de la base de datos
dbcc checkdb
GO

-- Comprobamos la fragmentación
SELECT * FROM sys.dm_db_index_physical_stats
(DB_ID(N'WSS_Content'), OBJECT_ID(N'AllDocs'), NULL, NULL , 'DETAILED');
GO

-- Defragmentamos si alguno de los valores supera el 10% (Que va a ser siempre)
ALTER INDEX ALL ON AllDocs
REBUILD WITH (FILLFACTOR = 70, SORT_IN_TEMPDB = ON,
STATISTICS_NORECOMPUTE = ON)
GO

-- Comprobamos la fragmentación para sentirnos orgullosos al ver que se ha corregido
SELECT * FROM sys.dm_db_index_physical_stats
(DB_ID(N'WSS_Content'), OBJECT_ID(N'AllDocs'), NULL, NULL , 'DETAILED');
GO

-- Y por último "encogemos" la base de datos para compactarla y reducir su peso
DBCC SHRINKDATABASE (0, 20, NOTRUNCATE)
GO


Una pena que no salgan los colores del SQL Query, pero qué se le va a hacer.

Éstas querys están aprobadas por microsoft y se pueden hacer en caliente, obviamente es mejor hacerlas cuando el servidor no está a tope.

Algo que a Microsoft no le gusta nada es que trunquemos el log de la base de datos, pero es que hay veces que para una base de datos de 500 megas tenemos un log de 5 gigas y eso no es mu normal. En estos casos podemos hacer:

BACKUP LOG WSS_Content WITH TRUNCATE_ONLY
Que me perdone Steve Ballmer

Y otra cosa que podemos hacer ya que estamos aqui es curiosear por las bases de datos...

-- Miramos el tamaño del/los sitios (en MB)
SELECT FullUrl, (DiskUsed/(1024*1024)) AS DiskMB
FROM Sites
ORDER BY Diskused DESC
GO

-- Miramos el TOP10 de bibliotecas (en MB)
SELECT TOP 10 D.DirName, (S.Size/(1024*1024)) AS DiskMB
FROM ALLDOCS as D, AllDocStreams as S
WHERE D.Id=S.Id
ORDER BY S.Size DESC
GO
por ejemplo.



Bueno, me voy a comer.

2 comentarios:

Daniel Sabater dijo...

Eres grande, Chan. Contrariamente a lo que se suelen quejar las madres desarrolladoras, "Mi SQL me comía demasiado".

Por otro lado, para que le saques los colores a SQL, te he buscado esto:

http://odyssi.blogspot.com/2008/09/syntax-highlighting-in-blogger.html

A ver si eres hombre para hacerlo funcionar.

Er Chan dijo...

Como siempre que se pone en tela de juicio mi hombría he acometido raudo :)

Así es mucho más fácil que con mi método anterior, además da las opciones esas de copiar, imprimir etc.

Muchas gracias.