Icon View Incident Report

Serious Serious
Reported By: Tiago Ameller
Reported On: 3/17/2010
For: Version 2.03 Build 9
# 3176 Joins On Tables that are also Referenced in the WHERE Clause Can Cause Performance Issues

The following statement used to execute in a few seconds before 2.03.7.

Since 2.03.7 and also 2.03.9 this statement delays for more than 10 minutes (I stopped it) If you add JOINOPTIMIZECOSTS at the end it fires in 0.9 seconds.

SELECT
Matricula,
M.Nombre AS Nombre_Marca,
Modelo,
SUBSTRING(T.Nombre,1,15) AS Nombre_Tipo,
NumTarjeta,
Clase,
CaducidadTarjeta,
NOMBRECOMPLETO(C.RAZONSOCIAL,C.APELLIDO2,C.NOMBRE) AS Nombre_Completo,
DOMICILIOCOMPLETO(SV.Sigla,C.ViaPublica2,C.NumeroVia2,
 C.Escalera2,C.Piso2,C.Puerta2) AS Domicilio_Completo,
MUNICIPIOCOMPLETO(C.CPostal2,C.Municipio2,PR.Nombre) AS Municipio_Completo,
 ExpedicionTarjeta,
Ambito,
C.NIF
FROM
MAVEHICU
INNER JOIN MAMARVEH M ON (M.CODIGO = MARCA)
INNER JOIN MATIPVEH T ON (T.CODIGO = TIPOVEHICULO)
INNER JOIN MACLIENT C ON (C.NIF = PROPIETARIO)
INNER JOIN MASIGLAV SV ON (C.SiglaViaCod2 = SV.Codigo)
INNER JOIN MAPROVIN PR ON (C.Provincia2 = PR.Sigla)
WHERE 
CADUCIDADTARJETA BETWEEN :DFecha AND :HFecha AND
BLOQUEADO = FALSE AND HISTORICO = FALSE AND
C.NOQUIEREAVISOS = FALSE AND C.BLOQUEADO = FALSE AND C.HISTORICO = FALSE
ORDER BY C.NIF



Comments Comments
The engine was incorrectly re-evaluating certain WHERE conditions for each join.


Resolution Resolution
Fixed Problem on 3/18/2010 in version 2.03 build 10


Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB DAC Client-Server
ElevateDB DAC Client-Server with Source
ElevateDB DAC Standard
ElevateDB DAC Standard with Source
ElevateDB DAC Trial
ElevateDB LCL Standard with Source
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image