GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

El tamaño de MODEL y el tiempo de creación de una nueva Base de Datos


Recientemente me encontré con un aparente problema de rendimiento en un Failover Cluster de SQL Server 2008 R2 sobre Windows Server 2008 R2. En principio, todo estaba funcionando perfectamente, pero empezamos a observar que la creación de una nueva base de datos vacía tardaba unos 10 minutos, algo completamente anormal, en una máquina física de última generación recién instalada, sin carga de trabajo, con 48 Cores y 72 GB de RAM, y con una velocidad de copia de ficheros de 130MB/s (es decir, casi 8GB por minuto o casi 500GB por hora). ¿Cuál es el problema?

No me lo creía. La creación de una nueva base de datos por defecto tardaba casi 10 minutos, y además, en esos 10 minutos se producían bloqueos que generaban ciertas molestias (ej: Time-Out al refrescar el Object Browser del SQL Server Management Studio, motivado por la creación de ciertos bloqueos).

Increíble, para ser un entorno recién instalado, sobre máquinas físicas de última generación, un generoso hardware a nivel de CPU y Memoria, sistema operativo Windows Server 2008 R2 completamente en soporte (ej: versiones de drivers de red, firmware de las HBA, parches, etc.). No vea en ningún lado el origen de este aparente Problema de Rendimiento en SQL Server. En fin.

La creación de una nueva base de datos vacía tardaba unos 10 minutos, en una máquina física de última generación recién instalada, sin carga de trabajo, con 48 Cores y 72 GB de RAM, y con una velocidad de copia de ficheros de 130MB/s

Tras varias pruebas, observé que el tamaño de la base de datos de MODEL era de 1GB, y que en consecuencia al crear una nueva base de datos se creaba del tamaño de 1GB. Aquí tuve un poco de efecto “borrachera”, ya que con tanto dígito, al principio me pareció que era una base de datos de 1MB, pero no, era de un 1GB.

Entonces, al hacer varias pruebas de acceso a los discos utilizados por SQL Server (discos compartidos, hospedados en una XP), se mostraba una velocidad de copia de ficheros de 130MB/s, por lo que aún siendo 1GB de base de datos, los 10 minutos seguían siendo más que desproporcionados.

El más, una vez creada la base de datos, aumentar su tamaño en 1GB no era tan costoso, ni de lejos, por lo que, en cierto modo, no parecía que el elevado tiempo de creación de una nueva base de datos pudiera estar realmente vinculado al tamaño de MODEL.

Incrédulo yo, decidí reducir el tamaño de la base de datos, y dejarla en 1MB, y tras esto probar a crear una nueva Base de Datos en SQL Server 2008 R2, y zás, instantáneo, como el café.

Tras esto, intenté reproducir el problema en una Máquina Virtual de PRE, también con SQL Server 2008 R2, aunque sin Failover Cluster, obteniendo el mismo resultado: al aumentar el tamaño de la base de datos MODEL, el tiempo de creación de una nueva base de datos aumentaba de forma desproporcionada.

En fin, una experiencia un poco desastrosa que tan sólo duró unos días, antes de la entrada en producción de la máquina. Por desgracia, no comprobé en aquel momento a reproducir el problema con y sin el Instant File Initialization de SQL Server, de hecho, tampoco recuerdo si dicha instancia ya tenía habilitado (o no) el Instant File Initialization.

Poco más por hoy. Como siempre, confío que la lectura resulte de interés.


]
[Autor: GuilleSQL]



Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.