![]() |
Consulta lenta
Hola a todos, me podran comentar si la siguiente consulta la ven bien realizada? Porque a traves de distintos test me da que es lenta la misma.
Son 2 tablas en cuestion NOMENCLADOR (CODIGO Y DESCRIPCION) ----------------CLAVE PRIMARIA (CODIGO) VALORES (CODIGO, PRECIO, CODIGO_OBRASOCIAL) ------ (INDICE SOBRE CODIGO)
Muchas gracias |
Vamos, que sin más información, no se puede saber... |
NOMENCLADOR ORDER "DESCRI" INDEX ("TIPO"), VALORES INDEX ("CODIGO", "CODIGO_OBRASOCIAL")
|
Deberías tener un código integer como clave primaria en ambas tablas, además una clave foránea en 'valores' enlazando a 'nomenclator'.
Eso independientemente del campo varchar(15) que tienes, que también debería ser clave foránea en 'valores'. Aparte, esa consulta sql no está muy bien hecha, tal y como te han aconsejado antes. Aunque sin más detalle, es difícil aconsejar. |
Tienes índices por nomenclator.tipo?
Y por nomenclator.descripcio? Has probado los tiempos quitando el order by? |
Cita:
Un saludo. |
Les comento, si el filtro "v.codigo_obrasocial = 40" lo saco del left join, hay valores que no me los da cuando no existe en la tabla de valores.
Por ej. tengo el codigo 600 que es VARIOS, por lo tanto no tiene ningun valor en la tabla de valores. Al trasladar el filtro como ustedes dicen el codigo 600 no aparece en la consulta, si lo dejo en el LEFT JOIN si. Muchas gracias por sus respuestas. |
La franja horaria es GMT +2. Ahora son las 05:56:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi