Ir al contenido principal

Proqeu tarda tanto SQL Management Studio en abrirse?

Muchos usuarios de SQL Server 2005 (desarrolladores y administradores) se quejan de lo mismo ¿Por qué tarda mucho tiempo en abrirse SQL Server Management Studio (SSMS)? Aún en caso de trabajar con grandes servidores y sin carga de trabajo, la primera vez que se abre SSMS tarda muchísimo tiempo (más de un minuto) y las sucesivas veces sigue tardando mucho (45 segundos). ¿Por qué tarda en arrancar SSMS? ¿Se puede corregir este comportamiento? ¿Qué sentido tiene?

A todos nos ha incordiado este comportamiento típico de quizás nuestra herramienta preferida, SQL Server Management Studio, y sobre todo nos hemos hecho la misma pregunta ¿Por Qué? ¿Por qué tarda tanto tiempo en arrancar SSMS? ¿Por qué SSMS es tan lento en abrirse?
Como todos sabemos, SQL Server Management Studio es una aplicación de código gestionado, es decir, que está desarrollada con .Net Framework, siendo esta la clave de este problema. Parte del código de SSMS es código firmado digitalmente, lo cual implica, que al ejecutar dicho código, por defecto el .Net Runtime intentará conectarse a crl.microsoft.com para comprobar que el certificado es válido. Como en muchas veces no estamos conectados a Internet, como es el caso de servidores de bases de datos internos (por motivos evidentes de seguridad) o en Máquinas Virtuales aisladas de Laboratorios de pruebas, el intento de conexión a crl.microsoft.com generará un tiempo de espera (al no poder salir a Internet), siendo esta la fuente del problema.
Evidentemente, esta situación no es única de SQL Server Management Studio, sino que por el contrario, se trata de una situación propia de ejecutar código firmado: cualquier aplicación que utilice código firmado es susceptible de tardar mucho tiempo en abrirse.
Una vez que hemos identificado el problema ¿Qué formas tenemos de solucionarlo?
  • Configurar Internet Explorer para que no compruebe la revocación de certificados(atención, esto es una ñapa, aunque útil ;-). Esto se hace desde las opciones de Internet Explorer (Herramientas -> Opciones de Internet -> Opciones Avanzadas, o en inglés, Tools -> Internet Options -> Advanced), deshabilitando la opción Check publisher’s certificate revocation (en español, Comprobar si se revocó el certificado del editor).
  • Habilitar la salida a Internet, por ejemplo, hacia los destinos utilizados en la comprobación del código firmado (tampoco es necesario abrir completamente los servidores a Internet).
Con esto, el SQL Server Management Studio dejará de tardar tanto tiempo en iniciarse, y las siguientes veces que intentemos abrir SSMS será mucho más rápido.

Comentarios

Entradas populares de este blog

¿En qué puerto TCP escucha SQL Server 2005? ¿Cómo cambiar o configurar el puerto TCP de escucha de una Instancia de SQL Server 2005?

Una buena práctica inmediatamente después de instalar SQL Server 2005 es cambiar el Puerto TCP de escucha, por múltiples motivos: Seguridad, Configuración de reglas de acceso de Firewall, Aplicaciones cliente que requieren un puerto TCP estático para SQL Server, etc. En este Artículo se explica cómo averiguar en qué puerto TCP escucha SQL Server 2005, cómo cambiar el puerto TCP de escucha de SQL Server 2005, etc. Resulta de gran interés ser capaz de responder a la pregunta  ¿En qué puerto TCP escucha SQL Server?  Por defecto, una  Instancia por Defecto de SQL Server 2005  queda configurada durante la instalación para escuchar en el  puerto TCP-1433 , sin embargo,  las Instancias con Nombre  quedan configuradas durante el proceso de instalación para escuchar en  puertos TCP dinámicos , por lo tanto, cada vez que se inicie la Instancia puede que escuche en un puerto diferente. Esta situación puede resultar problemática, por un lado desde el punto de vista de la seguridad (el hecho d

¿Qué es el nivel de aislamiento (Isolation Level) de una Transacción? ¿Qué niveles de aislamiento ofrece SQL Server?

Esta capítulo explica qué es el nivel de aislamiento (isolation level) de una transacción, el comportamiento de SQL Server en operaciones de lectura o de escritura, se detallan los diferentes niveles de aislamiento basados en bloqueos (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE) y los niveles de aislamiento basados en versionado de filas (READ COMMITTED SNAPSHOT, SNAPSHOT), se explican los males de la concurrencia (lecturas sucias, lecturas no repetibles, lecturas fantasma, y conflictos de actualización), como establecer el nivel de aislamiento deseado (SET TRANSACTION ISOLATION LEVEL y las opciones de base de datos READ_COMMITTED_SNAPSHOT y ALLOW_SNAPSHOT_ISOLATION), cómo conecer el tiempo máximo de bloqueo (@@LOCK_TIMEOUT) y como establecer el tiempo máximo de bloqueo (SET LOCK_TIMEOUT), etc. El nivel de aislamiento de una transacción (transaction isolation level)  define el grado en que se aísla una transacción de las modificaciones de recursos o datos rea

Aumentar y Reducir la TempDB en SQL Server?

Una buena práctica después de instalar SQL Server (y que interesa revisar periódicamente) es tener bien dimensionada la base de datos TEMPDB, es decir que el  tamaño inicial de TEMPDB  sea suficiente, y en consecuencia no sea necesario que TEMPDB crezca ni tampoco reducir TEMPDB (SHRINK). Esta artículo explica brevemente  para qué sirve TEMPDB , explica camo cambiar el tamaño inicial de TEMPDB (aumentar o reducir),  cómo reducir TEMPDB , cuántos ficheros son recomendables para TEMPDB, etc. ¿Para qué sirve TEMPDB?  La base de datos TEMPDB es un elemento de gran importancia en una Instancia de SQL Server, ya que  TEMPDB es la encargada de almacenar tanto los objetos temporales  (tablas temporales, procedimientos almacenados temporales, etc.),  como los resultados intermedios  que pueda necesitar crear el motor de base de datos, por ejemplo durante la ejecución de consultas que utilizan las cláusulas GROUP BY, ORDER BY, DISTINCT, etc. (es decir, las tablas temporales o WorkTables que