SQL Server - CONSULTAS LENTAS EN SQL SERVER

 
Vista:

CONSULTAS LENTAS EN SQL SERVER

Publicado por TONI (3 intervenciones) el 31/03/2017 14:36:55
Buenos días, tengo un servidor con 10 gb de ram procesador de última generación, instalado sql server, etc.. la pregunta es la siguiente: ¿Es normal que una consulta contra 1200 registros buscando un valor "Como 16" tarde 50 segundos? en el monitor de recursos el disco, ram y procesador están como si nada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.523
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

CONSULTAS LENTAS EN SQL SERVER

Publicado por Isaias (4204 intervenciones) el 31/03/2017 17:45:39
Hola Toni

¿De que version-edicion+service pack de SQL Server estamos hablando?

Dependera de muchos factores, no solamente de los "fierros".

¿Cuantos registros tiene la tabla(s) que intervienen en la consulta?
¿Que indices tiene la tabla(s)?

¿Nos puede mostrar su query?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CONSULTAS LENTAS EN SQL SERVER

Publicado por TONI (3 intervenciones) el 31/03/2017 20:00:07
Microsoft SQL Server Management Studio 11.0.5058.0
Herramientas cliente de Microsoft Analysis Services 11.0.5058.0
Microsoft Data Access Components (MDAC) 6.3.9600.17415
Microsoft MSXML 3.0 5.0 6.0
Microsoft Internet Explorer 9.11.9600.18618
Microsoft .NET Framework 4.0.30319.36366
Sistema operativo 6.3.9600

1400 registros

Gracias por contestar, desgraciadamente no me dedico a la programación, soy de sistemas, el problema es que los del RP dicen que es un problema de sistemas, red, etc.. ya he comprobado la red (Gigalan y certificado) la consulta se ejecuta igual de lenta en el propio servidor, cuando ejecutan la consulta en el monitor de recursos el disco lee a 2 mb por segundo, es decir va sobrado, no hay problema en aumentar ram, son servidores en Hyper-V, y tiene un procesador Intel Xeon CPU-E5 v2 a 2 GHz con 6 nucleos.

Lo único que veo es que la consulta utiliza uno de los 6 procesadores, pero si cambiara el procesador de 2 a 3 Ghz la consulta mejoraría en 10-15 segundos, pero por esta regla de tres seguiría tardando 35 segundos en vez de 50.

Lo que no puedo entender es como una consulta a una tabla de lotes con 1400 registros, si es con la condición "Como" puede tardar tanto y la misma tabla con una consulta de access tarda menos de un segundo.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.523
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

CONSULTAS LENTAS EN SQL SERVER

Publicado por Isaias (4204 intervenciones) el 03/04/2017 18:00:40
Tienes un SQL Server 2012, aplica el utlimo service pack:

https://www.microsoft.com/en-us/download/details.aspx?id=49996

¿Cuantos archivos NDF tiene tu base TEMPDB?

Microsoft recomienda que la base TEMPDB tenga tantos archivos NDF como procesadores tenga el servidor, hasta un maximo de 8.

¿Puedes compartir tu consulta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CONSULTAS LENTAS EN SQL SERVER

Publicado por TONI (3 intervenciones) el 20/04/2017 13:39:27
CONSULTA LENTA:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT  L.*,
     A.Descrip AS ArtículoDescrip,
     PD.Proveedor AS Proveedor,
     LE.Descrip AS EstadoDescrip,
     LC.Cantidad,
     isnull(S.UnidadesAceptadas, 0) AS UnidadesAceptadas,
     isnull(S.UnidadesCuarentena, 0) AS UnidadesCuarentena,
     isnull(S.UnidadesRechazadas, 0) AS UnidadesRechazadas
FROM    Lotes L LEFT JOIN
     Artículos A ON L.Idartículo = A.IdArtículo LEFT JOIN
     Prov_Datos PD ON L.IdProveedor = PD.IdProveedor  LEFT JOIN
     Lotes_Estados LE ON L.IdEstado = LE.IdEstado LEFT JOIN
     vLotes_Cantidades LC ON l.NumLote = LC.Lote /* 201170126 masimeon*/ OUTER
     apply funPers_StockConsulta_datosArtículoLote(0, NULL, NULL, L.NumLote) S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar