Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Lentitud al migrar a Sql-Express

Estas en el tema de Lentitud al migrar a Sql-Express en el foro de SQL Server en Foros del Web. Buenos dias, tengo un problema que empieza a ser critico por que no doy con una solucion y la solucion apremia. Os cuento. Tengo una ...
  #1 (permalink)  
Antiguo 05/05/2008, 03:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 24
Antigüedad: 16 años, 2 meses
Puntos: 0
Lentitud al migrar a Sql-Express

Buenos dias, tengo un problema que empieza a ser critico por que no doy con una solucion y la solucion apremia. Os cuento.
Tengo una aplicacion que temporalmente corria en Sql-Server 2000 (ILEGAL) en servidor de test y iba muy bien. Bueno pues al pasarlo a produccion (LEGAL) va lento pero es problema del servidor que esta a tope.
Total que como solo tengo una licencia y no puedo moverla de ese servidor mi opcion fue instalar en Servidor de Test (donde iba muy bien) el Sql-Express que es free. Todo bien hasta que veo que el rendimiento es bastante menor que el esperado.
En el mismo servidor con SQL 2000 va perfecto pero con Express no.
Ahora estoy viendo la opcion de instalar la version personal de SQL-Server 2000 en vez la estandar que es la de pago. ¿que opinais? ¿es buena opcion? que diferencia hay exactamente con la vesion personal para que sea gratuita?
¿se os ocurre por que en Express va tan lento?
Gracias por todo.
  #2 (permalink)  
Antiguo 05/05/2008, 13:14
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Lentitud al migrar a Sql-Express

Dependera de como se haya migrado la informacion a la version Express, para tratar de determinar la causa de la lentitud, comunmente, es la regeneracion de indices y estadisticos.
  #3 (permalink)  
Antiguo 06/05/2008, 09:46
Avatar de usuariobaneado  
Fecha de Ingreso: diciembre-2007
Mensajes: 402
Antigüedad: 16 años, 4 meses
Puntos: 5
Re: Lentitud al migrar a Sql-Express

Islas me recomendó está página:

http://searchsystemschannel.techtarg...229039,00.html

Que hasta la vez la analizo pero la tengo en mis favoritas
__________________
Yo quiero ser el pelucón del barrio
  #4 (permalink)  
Antiguo 06/05/2008, 09:48
 
Fecha de Ingreso: febrero-2008
Mensajes: 24
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Lentitud al migrar a Sql-Express

El procedimiento que probe para el traslado fueron dos, en una hice copia de seguridad y restaure y fue lento, luego actualize estadisticas y siguio lento.
El segundo fue separar la base de datos y adjuntarla en el nuevo servidor y mas tarde tambien actualice y nada sigue lento.
Con la version personal funciona tambien muy rapido pero no tengo claro si es legal usarla para esto o no ya que creo que en teoria es solo para equipos no servers.
No he probado a regenerar indices, me puedes decir como se hace, muchas gracias.
  #5 (permalink)  
Antiguo 06/05/2008, 10:33
Avatar de usuariobaneado  
Fecha de Ingreso: diciembre-2007
Mensajes: 402
Antigüedad: 16 años, 4 meses
Puntos: 5
Re: Lentitud al migrar a Sql-Express

Regenerar indices... un tema interesante

La optimización de indices no es solamente la acción de regenerar indices, primero se debe de analizar cuales indices deben ser reorganizados y cuales reconstruidos.

Para tomar una desición primero debemos conocer el nivel de fragmentación de los indices. Si el porcentaje de fragmentación es menor o igual al 30% la mejor práctica es reorganizar los indices. Si el porcentaje es mayor al 30% reconstruir los índices.

Ahora, para conocer el porcentaje de fragmentación de un índices podemos utilizar el método del sistema sys.dm_db_index_physical_stats

Aquí te construí un select en el que hago join con sys.indexes, para obtener el porcentaje de fragmentación de los índices de la tabla Product de la base de datos que viene de ejemplo en sql server 2005 AdventureWorks:

Código PHP:
SELECT a.index_idnameavg_fragmentation_in_percent
FROM sys
.dm_db_index_physical_stats (DB_ID('AdventureWorks'),
    
OBJECT_ID('Production.Product'), NULLNULLNULL) AS a
    JOIN sys
.indexes AS b ON a.object_id=b.object_id AND a.index_id=b.index_id 
Luego, dependiendo de lo que muestre el select puedes hacerle un reorganize o un rebuild a los índices.

Para hacer un reorganize:

ALTER INDEX <NombreIndice> ON <NombreTabla> REORGANIZE

Para reorganizar todos los índices de una tabla, de una manera rápida la podemos hacer así:

ALTER INDEX ALL ON <NombreTabla>

Para hacer un rebuild:

ALTER INDEX <NombreIndice> ON <NombreTabla> REBUILD


Reorganizar un indice desfragmentado lo que hace es reordenar el nivel de hoja del indice clustered o nonclustered en las tablas físicas para tener las páginas de nivel de hoja en su orden lógico original, que es de izquierda a derecha. Reorganizar indices tambien compacta las páginas de indice, las paginas vacias creadas serán eliminadas. La compactación es basada en el valor del llamado FILL FACTOR que la podemos ver en la vista del sistema sys.indexes, pero bue... ese ya es otro tema.

Hacerle un rebuild al indice es dropearlo y crear uno nuevo. Al hacer esto, la fragmentación es eliminada y las paginas de indices son también son compactadas logrando liberar espacio.

Una herramienta útil es el Database Engine Tuning Advisor, hay mucho que hablar, se podría hacer un tema y ponerlo en las FAQS.

Espero haber sido de ayuda y que el tiempo tomado en escribir este post no haya sido escrito en vano.

Saludos Cordiales
__________________
Yo quiero ser el pelucón del barrio
  #6 (permalink)  
Antiguo 06/05/2008, 13:53
 
Fecha de Ingreso: febrero-2008
Mensajes: 24
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Lentitud al migrar a Sql-Express

No se si esto solucionara mi problema pero te aseguro que en vano no ha sido tu brillante explicación si no es ahora estoy seguro que en el futuro le dare buen uso.

El caso es no aun no comprendo por que si el indice estubiera fragmentado por que en sql 2000 funciona tan bien y en express tan mal. No obstante probare tu consejo aunque me va a suponer mucho trabajo pues tengo como 40 tablas y veo que hay que ir una a una recostruyecto indices.

Sobre la herramienta Database Engine Tuning Advisor me gustaria mas información si es posible creo que puede ser muy interesante si no para esta base de datos, que es pequeña, si para otras mas complejas.

Y lo dicho chapo por la explicación
  #7 (permalink)  
Antiguo 06/05/2008, 14:28
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Lentitud al migrar a Sql-Express

Ademas, por lo que comentas, si hiciste un RESTORE, debes cambiar el nivel de compatibilidad de tu base a 9.0
  #8 (permalink)  
Antiguo 06/05/2008, 16:38
Avatar de usuariobaneado  
Fecha de Ingreso: diciembre-2007
Mensajes: 402
Antigüedad: 16 años, 4 meses
Puntos: 5
Re: Lentitud al migrar a Sql-Express

Una pregunta, al actualizar se logra un mejor performance? Es que estaba viendo en mi base de datos, en la propiedades dice Actualizar Estadísticas Automáticamente => True. Entonces supongo que si migro de sql server 2000 a 2005 no necesito actualizar aquello.

Encontré esta opción porque estaba en propiedades buscando si por allí aparecía el nivel de compatibilidad, que según comentas debe de ser 9.0

Podrías por favor indicar que donde podemos encontrar dicho valor y que hay que hacer para cambiarlo en caso de estar desactualizado?

Gracias por la atención.

Saludos Cordiales
__________________
Yo quiero ser el pelucón del barrio
  #9 (permalink)  
Antiguo 06/05/2008, 17:11
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Lentitud al migrar a Sql-Express

En propiedades, revisa el nivel de compatibilidad, debe estar en 9.0

y de todos modos ejecuta: SP_UPDATESTATS
  #10 (permalink)  
Antiguo 07/05/2008, 02:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 24
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Lentitud al migrar a Sql-Express

Efectivamente por defecto en propiedades-opciones de la base de datos viene autoupdate estadisticas en true, ya aun asi lo ejecute a mano pero no soluciono mi problema. Tambien probe varios tipos de compatibilidad pero tampoco soluciono el problema.

Saludos.
  #11 (permalink)  
Antiguo 07/05/2008, 13:15
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Lentitud al migrar a Sql-Express

gonmor

el TIPO DE COMPATIBILIDAD, no es para estar PROBANDO, simplemente, si estas trabajando en 2005, la compatibilidad es 9.0, si estas en 2000, entonces es 8.0.

revisa tus indices, regeneralos de ser necesario

Siempre que se "mueve" una base, se deben actualizar los estadisticos de forma manual, siempre
  #12 (permalink)  
Antiguo 09/05/2008, 12:01
Avatar de usuariobaneado  
Fecha de Ingreso: diciembre-2007
Mensajes: 402
Antigüedad: 16 años, 4 meses
Puntos: 5
Re: Lentitud al migrar a Sql-Express

Cita:
Iniciado por iislas Ver Mensaje
gonmor

el TIPO DE COMPATIBILIDAD, no es para estar PROBANDO, simplemente, si estas trabajando en 2005, la compatibilidad es 9.0, si estas en 2000, entonces es 8.0.

revisa tus indices, regeneralos de ser necesario

Siempre que se "mueve" una base, se deben actualizar los estadisticos de forma manual, siempre

Unas consultas ya que se está tocando el tema:

Pude revisar y encontré en las propiedades de mi base de datos que el NIVEL DE COMPATIBILIDAD está seleccionado SQL SERVER 2000 (80). Según dice Islas, esto debe de estar en SQL SERVER 2000 (90)

Además me recomiendo actualizar las estadísticas. Pero además encontré esto:

Revisando los links encuentro que al migrar de sql 2000 a 2005 se debe de tener en cuenta:

Cita:
Volver a llenar los catálogos de texto: el proceso de actualización marca las bases de datos como deshabilitadas para texto. Debe volver a llenar los catálogos, pero el programa de instalación no ejecuta automáticamente esta operación porque puede tardar bastante tiempo. Dado que esta operación mejora el rendimiento de la instalación de SQL Server 2005, los administradores deben volver a llenar los catálogos de texto cada cierto tiempo.

Actualizar estadísticas: para ayudarle a optimizar el rendimiento de consultas, es recomendable actualizar las estadísticas de todas las bases de datos tras la actualización. Utilice el procedimiento almacenado sp_updatestats para actualizar las estadísticas de las tablas definidas por el usuario en las bases de datos de SQL Server 2005.

Actualizar contadores de uso: en las versiones anteriores de SQL Server, los valores del recuento de filas por tabla y por índice y del recuento de páginas pueden llegar a ser incorrectos. Para corregir cualquier recuento de filas o de páginas incorrecto, le recomendamos que ejecute DBCC UPDATEUSAGE en todas las bases de datos tras la actualización.
Entiendo solo el segundo punto, actualizar estadísticas, lo cual ya lo hemos hablado. Pero no entiendo de que se trata el primer y el tercer punto. También es necesario aquello? Lo pregunto porque Islas solo ha mencionado actualizar estadísticas
__________________
Yo quiero ser el pelucón del barrio
  #13 (permalink)  
Antiguo 09/05/2008, 18:25
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Lentitud al migrar a Sql-Express

Es por eso que Microsoft recomienda un plan de migracion, donde el primer punto y que es escencial para una migracion exitosa es ejecutar el SQL Server Upgrade Advisor, que nos dara un informe de que "tan trasparente" puede ser la migracion y evitarnos muchas molestias.

Los pasos que mencionas, son importantes, pero por ejemplo te pregunto, ¿Tienes busquedas de TEXTO activadas?, si tu repuesta es NO, entonces omite "Volver a llenar los catálogos de texto"

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:23.