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.


  1. -- Seleccionamos base de datos de contenido  
  2. use WSS_Content  
  3. GO  
  4. -- Comprobamos la consistencia de la base de datos  
  5. dbcc checkdb  
  6. GO  
  7.   
  8. -- Comprobamos la fragmentación  
  9. SELECT * FROM sys.dm_db_index_physical_stats  
  10.     (DB_ID(N'WSS_Content'), OBJECT_ID(N'AllDocs'), NULLNULL , 'DETAILED');  
  11. GO  
  12.   
  13. -- Defragmentamos si alguno de los valores supera el 10% (Que va a ser siempre)  
  14. ALTER INDEX ALL ON AllDocs  
  15. REBUILD WITH (FILLFACTOR = 70, SORT_IN_TEMPDB = ON,  
  16. STATISTICS_NORECOMPUTE = ON)  
  17. GO  
  18.   
  19. -- Comprobamos la fragmentación para sentirnos orgullosos al ver que se ha corregido  
  20. SELECT * FROM sys.dm_db_index_physical_stats  
  21.     (DB_ID(N'WSS_Content'), OBJECT_ID(N'AllDocs'), NULLNULL , 'DETAILED');  
  22. GO  
  23.   
  24. -- Y por último "encogemos" la base de datos para compactarla y reducir su peso  
  25. DBCC SHRINKDATABASE (0, 20, NOTRUNCATE)  
  26. 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:

  1. 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...

  1. -- Miramos el tamaño del/los sitios (en MB)  
  2. SELECT FullUrl, (DiskUsed/(1024*1024)) AS DiskMB  
  3. FROM  Sites  
  4. ORDER BY Diskused DESC  
  5. GO  
  6.   
  7. -- Miramos el TOP10 de bibliotecas (en MB)  
  8. SELECT TOP 10 D.DirName, (S.Size/(1024*1024)) AS DiskMB  
  9. FROM ALLDOCS as D, AllDocStreams as S  
  10. WHERE D.Id=S.Id  
  11. ORDER BY S.Size DESC  
  12. 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.