Реструктуризация SQL Запрос, чтобы быть быстрее - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть следующий запрос SQL, который в настоящее время выполняется и для его завершения требуется 1:17 (1 минута и 17 секунд).

SELECT R.SAMPNUM, count(R.SAMPNUM) as CTE1_O_Count 
FROM Results R 
Join SAMPLES O on R.SAMPNUM = O. SAMPNUM 
Join Files F on F.fileno = O.fileno 
where 
(R.SA = 'Released' OR (R.SA = 'Rejected' AND R.Test like '%Grass%'))
AND R.S in ('Okay',  'Good')
AND F.Type <> 'Fruit'
AND Month(F.FDATE) = Month(getdate()) AND Year(F.FDATE) = Year(getdate())
GROUP BY R.SAMPNUM

После некоторого тестирования запроса я заметил, что изменение первый оператор , где оператор значительно изменил время выполнения.

1: 17-

(R.SA = 'Released' OR (R.SA = 'Rejected' AND R.Test like '%Grass%'))

0: 10-

(R.SA = 'Released'

0: 11-

(R.SA = 'Released' OR (R.SA = 'Rejected'))

1: 16-

(R.SA = 'Released' OR (R.SA = 'Rejected' AND R.Test = '%Grass%'))

С предоставленными результатами тестирования оператор AND R.Test значительно влияет на запрос. Есть ли лучший способ реструктурировать этот запрос, чтобы он работал более эффективно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...