Problema con una consulta | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

Problema con una consulta

Tengo un problema, hace poco adquirimos un servidor de mayor capacidad que el que veniamos usando tiempo atrás, así que transferí todas mis bases de datos a ese servidor. El nuevo servidor es de mucha mayor capacidad que el anterior y funciona bastante más rápido que el anterior, excepto en una consulta en particular, al ejecutar dicha consulta tarda más de 3 minutos en responder, pero si hago esa misma consulta sobre la base en el servidor anterior responde en 3 segundos…. Cabe mencionar que la base es exactamente la misma. Tal vez hace falta configuar algo que no haya hecho y no me he dado cuenta. ¿Alguien podría ayudarme a averiguar a que se debe este problema?
Al haber transferido las bases de un servidor a otro, mediante restore o attach, es necesario actualizar las estadísticas en el nuevo servidor, ya que las mismas no son transferidas en el acto de restore o attach.<br /><br />Para ello puedes usar:<br /><br />UPDATE STATISTICS table | view <br /> [ <br /> index <br /> | ( statistics_name [ ,…n ] ) <br /> ] <br /> [ WITH <br /> [ <br /> [ FULLSCAN ] <br /> | SAMPLE number { PERCENT | ROWS } ] <br /> | RESAMPLE <br /> ] <br /> [ [ , ] [ ALL | COLUMNS | INDEX ] <br /> [ [ , ] NORECOMPUTE ] <br /> ] <br /><br />Ejemplo: UPDATE STATISTICS ‘Nombre de la tabla’, una instrucción por cada tabla, o<br /><br /><br />sp_updatestats [[@resample =] ‘resample’]<br /><br />Return Code Values<br />0 (success) or 1 (failure)<br /><br />Arguments<br />[@resample=] ‘resample'<br /><br />Specifies that sp_updatestats will use the RESAMPLE option of the UPDATE STATISTICS command. New statistics will inherit the sampling ratio from the old statistics. If ‘resample’ is not specified, sp_updatestats updates statistics using the default sampling. This parameter is varchar(<img src=’/community/emoticons/emotion-11.gif’ alt=’8)’ /> with a default value of ‘NO’.<br /><br />Ejemplo:<br />USE Nombre_de_la_base_de_datos<br />EXEC sp_updatestats<br /><br />Luis Martin<br />Moderator<br />SQL-Server-Performance.com<br /><br /><font size="1">All postings are provided “AS IS” with no warranties for accuracy.</font id="size1"><br /><br />
Gracias Luis Martin por contestar mi post. Hice lo que me aconsejaste, pero las cosas siguen igual. ¿Alguna otra solución? De antemano gracias.
Verifica que la base tiene la opción auto create statistics prendida.
Fíjate, utilizando el Analizador de Consultas (Query Analyzer) los planes de ejecución de la consulta en ambos servidores.
De esta forma podrás comprobar si el plan es el mismo o es diferente.
De ser diferentes fíjate si en el servidor viejo se está utilizando algún índice que en el nuevo no lo utilize. De ser así, ejecuta DBCC DBREINDEX para la/s tabla/s en cuestión.
No te he preguntado antes, pero supongo que ambos servidores tienen la misma versión de SQL y de Service Pack.
Luis Martin
Moderator
SQL-Server-Performance.com All postings are provided “AS IS” with no warranties for accuracy.
Otra cosa: Si el primer servidor tiene un solo procesador y el segundo màs de uno, podrìa probar dejando en el segundo un solo procesador para procesamiento en paralelo de consultas (server, propiedades, procesador)
La mayorìa de la veces el procesamiento en paralelo de consultas, resulta màs lento. Luis Martin
Moderator
SQL-Server-Performance.com All postings are provided “AS IS” with no warranties for accuracy.
Muchisísimas gracias Luis Martin, ya resolví el problema, la causa del problema era el procesamiento en paralelo, seguí tu consejo y todo se solucionó. De nuevo muchas gracias y disculpa las molestias.
Bienvenida/o al Forum. Luis Martin
Moderator
SQL-Server-Performance.com All postings are provided “AS IS” with no warranties for accuracy.
¿Que te hubiese parecido aumentar el parametro
"cost threshold for parallelism" a 30 por ejemplo
en lugar de desactivar el segundo procesador? Gracias Otra cosa: Si el primer servidor tiene un solo procesador y el segundo màs de uno, podrìa probar dejando en el segundo un solo procesador para procesamiento en paralelo de consultas (server, propiedades, procesador)
La mayorìa de la veces el procesamiento en paralelo de consultas, resulta màs lento. Luis Martin
Moderator
SQL-Server-Performance.com
Puede resultar, depende de cada instalación y cada aplicación.
Luis Martin
Moderator
SQL-Server-Performance.com All postings are provided “AS IS” with no warranties for accuracy.
Asura, Me quedó una duda, ¿Conseguiste una importande diferencia de performance
anulando uno de los procesadores? Gracias

]]>