Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
gabriel_as
Contributor III
Contributor III

Consulta bloquea SQLSERVER

Hago una consulta de ventas a nivel articulo, años 2014 y 2015, son poco mas de 2.5 millones de registros, para traer categoría del articulo nombre de clientes, etc hago INNER JOIN a otras tablas, en total la consulta dilata al rededor de 8 minutos.

El problema radica en que en ese tiempo como que se bloquea el SQLSERVER y no permite al resto de los usuarios hacer nada, detiene inclusive la facturación.

Agradeceré sus sugerencias a fin de que QV no absorba todos los recursos del servidor, estoy usando QV 11.

Saludos y Gracias

1 Solution

Accepted Solutions
Not applicable

Hola Gabriel,

Te recomiendo que uses ApplyMap en lugar de hacer joins. Es mucho más rápido. También, para no saturar al servidor de SQLServer, haz los cálculos en el script de carga en lugar de en las consultas SQL Select.

Para aplicar este método tendrías que hacer un mapping load con cada código y descripción de tus tablas.

Luego para aplicar cada código a cada descripción hacer un ApplyMap.

Viene bien explicado en el siguiente enlace:

Don't join - use Applymap instead

View solution in original post

4 Replies
Not applicable

Hola Gabriel,

Te recomiendo que uses ApplyMap en lugar de hacer joins. Es mucho más rápido. También, para no saturar al servidor de SQLServer, haz los cálculos en el script de carga en lugar de en las consultas SQL Select.

Para aplicar este método tendrías que hacer un mapping load con cada código y descripción de tus tablas.

Luego para aplicar cada código a cada descripción hacer un ApplyMap.

Viene bien explicado en el siguiente enlace:

Don't join - use Applymap instead

gabriel_as
Contributor III
Contributor III
Author

Te agradezco en verdad la ayuda, lo pruebo.

Saludos

El 6 de febrero de 2015, 5:59, Jose Federico Moreno <

qcwebmaster@qlikview.com> escribió:

jmmayoral3
Creator
Creator

Cuando haces una consulta a SQLSERVER (o cualquier otro gestor de Base de datos) con uniones entre tablas, es el servidor de base de datos el que resuelve esas uniones. Si son muchas y con muchos registros y el servidor anda un poco limitado de memoria, puede llegar a ralentizarse tanto que sea imposible trabajar para el resto de usuarios.

En estos casos, lo mejor es traerte la tabla de hechos y el resto de tablas a Qlikview por separado y luego que sea Qlikview el que se encargue de relacionarlas usando Mapping Load y Apply Map tal como comenta José Federico.

Al final tendrás el mismo resultado pero habrá sido el servidor de Qlikview el que haya resuelto las uniones en vez del servidor de SQLSERVER. Y después de terminar de unir tablas,  no ocuparán espacio en memoria porque QV las borra.

gabriel_as
Contributor III
Contributor III
Author

Bastante claro, estaba yo dejando todo el trabajo a SQLSERVER.

Gracias