SQLite Forum

Help speeding up this query
Login
Greetings!

Any thoughts on how I can make this query faster? I would really appreciated.  Thanks.
`
SELECT a.*,b.*,c.*
  FROM Project_List AS a 
  LEFT JOIN Project_Dashboard AS b ON a.ProjID = b.ProjID
  LEFT JOIN Project_Extras AS c ON a.ProjID = c.ProjID
  AND
    a.PMO_Board_Report != 'No' 
  AND
    a.Status = 'Acknowledged' 
  AND
    Project_Type != 'Outside IT perimeter'
  AND
    a.Start_date < date('now')
  AND
  (
    (a.Target_Go_Live_Date > substr(date('now'),1,4) || '-01-15') OR
    (a.Target_Go_Live_Date = '' AND a.Finish_Date >  substr(date('now'),1,4) || '-01-15')
  )
  AND
  (
    b.TimeIndicator = '0'
    OR
    b.CostIndicator = '0'
  )
  AND
    a.InsertDate = 
      (SELECT MAX(InsertDate) FROM Project_List WHERE a.ProjID = ProjID)
  AND
    b.InsertDate = 
      (SELECT MAX(InsertDate) FROM Project_Dashboard WHERE b.ProjID = ProjID)
  AND
    c.InsertDate = 
      (SELECT MAX(InsertDate) FROM Project_Extras WHERE c.ProjID = ProjID)
  WHERE a.ProjID = b.ProjID AND a.ProjID = c.ProjID 
group BY a.Manager, a.ProjID
ORDER BY a.Manager, a.ProjID
;
`
This is what I get from the .expert function:

```
(no new indexes)

MULTI-INDEX OR
INDEX 1
SEARCH TABLE Project_Dashboard AS b USING INDEX PDash_TimeIndicator (TimeIndicator=?)
INDEX 2
SEARCH TABLE Project_Dashboard AS b USING INDEX PDash_CostIndicator (CostIndicator=?)
CORRELATED SCALAR SUBQUERY 2
SEARCH TABLE Project_Dashboard USING COVERING INDEX PDash_ProjID_InsertDate (ProjID=?)
SEARCH TABLE Project_List AS a USING INDEX PL_ProjID_InsertDate (ProjID=?)
CORRELATED SCALAR SUBQUERY 1
SEARCH TABLE Project_List USING COVERING INDEX PL_ProjID_InsertDate (ProjID=?)
SEARCH TABLE Project_Extras AS c USING INDEX sqlite_autoindex_Project_Extras_1 (ProjID=?)
CORRELATED SCALAR SUBQUERY 3
SEARCH TABLE Project_Extras USING COVERING INDEX sqlite_autoindex_Project_Extras_1 (ProjID=?)
USE TEMP B-TREE FOR GROUP BY
```

josé