Consultas SQL muy lentas en 2005 que funcionaban bien en 2000

29/07/2008 - 10:58 por zom | Informe spam
Buenos días,

Acabamos de migrar de SQL Server 2000 a 2005.
En concreto, tenemos un SQLServer 2005 Standard x64 Edition (en inglés)
versión 9.00.3257.00 sobre un Windows Server 2003 R2 Standard x64 Edition con
SP2.
En nuestro aplicativo, hemos creado mucho código en Transact-SQL y no
sabemos por qué, pero hay unas pocas consultas que contienen consultas
derivadas (sub-selects dentro de la cláusula FROM) y que el motor tarda
muchísimo tiempo en resolver.
En el 2000 no tardaban ni 1 segundo; y ahora en el 2005, tardan más de 7
minutos.

Hemos estado consultando el FIX con Id. de artículo : 942659. Y hemos
instalado los parches propuestos en él (el 941450 y el 937137) sin obtener
resultados positivos.

Gracias y un saludo!

Preguntas similare

Leer las respuestas

#11 Alejandro Mesa
30/07/2008 - 15:13 | Informe spam
zom,

En 2000 no era necesario que, como DBA, tuviera que estar "tan pendiente" del
tema de las Estadísticas.



Eso no tiene que ver con la version de SQL Server, sino con el cambio de la
data. Si tu data no cambia mucho de un dia a otro, en otras palabras si no se
insertan muchas filas y/o actualizan, entonces no sera necesario actualizar
las estadisticas diariamente, quizas semanal o una vez al mes. Ahora, lo que
dije es que si puedes hacerlo diariamente seria lo optimo. Puedes setear tu
base de datos para que las estadisticas se actualizen de forma automatica
(ver sp_dboption y auto create statistics), pero eso tampoco garantiza que
esten al dia, puesto que para que el mecanismo de actualizacion automatica se
dispare, el numero de cambios debe sobrepasar una quota. Poir ejemplo, en
tablas con mas de 500 filas, el numero de cambios debe llegar al 20% de el
numero total de filas existentes en la tabla, por lo que si la tabla es
contiene muchas filas, digamos un millon, entonces el lnumero de cambios
reflejados debe ser 200,000 filas. En esos casos es practico actualizar las
estadisticas manualmente si tu ventana de mantenimiento lo permite.

Estadísticas de distribución en SQL Server 2000 (I)
http://www.helpdna.net/sqlserver_20...ndices.htm

Estadísticas de Distribución en SQL Server 2000 (II
http://www.configuracionesintegrale...articulo34


AMB



"zom" wrote:

En 2000 no era necesario que, como DBA, tuviera que estar "tan pendiente" del
tema de las Estadísticas. Me parece "un disparate" la diferencia de
rendimiento después de actualizar las Estadísticas... Desconocía que fuera un
tema "tan crítico" en el rendimiento del 2005.

Muchísimas gracias por todo, Alejandro


"Alejandro Mesa" wrote:

> Crreccion,
>
> > 1 - Es necesario hacerlo si se migra de 7.9/2000 as 2005
>
> Se me fue el 9. Debio ser:
>
> 1 - Es necesario hacerlo si se migra de 7.0/2000 a 2005...
>
>
> AMB
>
> "Alejandro Mesa" wrote:
>
> > 1 - Es necesario hacerlo si se migra de 7.9/2000 as 2005 porque el mecanismo
> > de creacion de las estadisticas varia entre las versiones.
> >
> > 2 - En cuanto a hacerlo diariamente, es una buena practica siempre y cuando
> > tu ventana de mantenimiento lo permita.
> >
> > Statistics Used by the Query Optimizer in Microsoft SQL Server 2005
> > http://www.microsoft.com/technet/pr...stats.mspx
> >
> >
> > AMB
> >
> >
> > "zom" wrote:
> >
> > > Gracias Alejandro!
> > >
> > > Parece que la cosa funciona. He actualizado las estadísticas de las tablas
> > > implicadas y responde correctamente!!
> > >
> > > Incluso he probado en otro entorno sin hacer el "dbcc updateusage" y también
> > > me ha funcionado.
> > >
> > > Esto significa que las estadísticas hay que actualizarlas "a diario" en
> > > tablas que tengan mucha lectura/escritura, o simplemente esto es necesario
> > > después de haber hecho la migración y sería suficiente con actualizarlas de
> > > vez en cuando?
> > >
> > > Muchísimas gracias otra vez, Alejandro. Un saludo
> > >
> > >
> > >
> > >
> > > "Alejandro Mesa" wrote:
> > >
> > > > Lo primero que se recomienda es actualizar todas las estadisticas con
> > > > fullscan, para lo cual puedes usar la sentencia "update statistics" o el
> > > > procedimiento sp_updatestats. Tambien se recomienda que actualizes los
> > > > valores de espacio usado mediante el comando "dbcc updateusage".
> > > >
> > > >
> > > > AMB
> > > >
> > > >
> > > > "zom" wrote:
> > > >
> > > > > Buenos días,
> > > > >
> > > > > Acabamos de migrar de SQL Server 2000 a 2005.
> > > > > En concreto, tenemos un SQLServer 2005 Standard x64 Edition (en inglés)
> > > > > versión 9.00.3257.00 sobre un Windows Server 2003 R2 Standard x64 Edition con
> > > > > SP2.
> > > > > En nuestro aplicativo, hemos creado mucho código en Transact-SQL y no
> > > > > sabemos por qué, pero hay unas pocas consultas que contienen consultas
> > > > > derivadas (sub-selects dentro de la cláusula FROM) y que el motor tarda
> > > > > muchísimo tiempo en resolver.
> > > > > En el 2000 no tardaban ni 1 segundo; y ahora en el 2005, tardan más de 7
> > > > > minutos.
> > > > >
> > > > > Hemos estado consultando el FIX con Id. de artículo : 942659. Y hemos
> > > > > instalado los parches propuestos en él (el 941450 y el 937137) sin obtener
> > > > > resultados positivos.
> > > > >
> > > > > Gracias y un saludo!
> > > > >
> > > > >
> > > > >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida