我有這個疑問:如何提高「具有和」查詢
Select
DescFornecedor, DescUsuario, Classificacao,
Sum(Tempo) as Tempo,
Case Classificacao
When 'Agendamento' Then 2
When 'Aguardando cadastro' Then 3
When 'Descarte' Then 8
When 'Desistência' Then 7
When 'Em Pausa' Then 4
When 'Em Volta' Then 10
When 'Entrevista' Then 1
When 'Filtro' Then 5
When 'Outros' Then 9
When 'Recusa' Then 6
When 'Sem Atividade' Then 11
End as Ordem
from
vwProducaoGeralTempoLogadoSemAtividade t1 With(NoLock)
Where
Not Exists (Select 0
from vwProducaoGeralTempoLogadoSemAtividade t2 With(NoLock)
Where T1.CodUsuario = t2.CodUsuario
Group by CodUsuario
Having Sum(tempo) <> MAx(tempoLogado))
Group By
DescFornecedor, DescUsuario, Classificacao
當我們使用它,它會返回在30〜1分鐘的結果。
現在,我已經做了一些調整:
Select DescFornecedor,DescUsuario,Classificacao,Sum(t1.Tempo) as Tempo,
Case Classificacao
When 'Agendamento' Then 2
When 'Aguardando cadastro' Then 3
When 'Descarte' Then 8
When 'Desistência' Then 7
When 'Em Pausa' Then 4
When 'Em Volta' Then 10
When 'Entrevista' Then 1
When 'Filtro' Then 5
When 'Outros' Then 9
When 'Recusa' Then 6
When 'Sem Atividade' Then 11
End as Ordem
from vwProducaoGeralTempoLogadoSemAtividade t1 With(NoLock)
inner join (
select CodUsuario, SUM(tempo) as Tempo, MAX(tempologado) as TempoLogado
from vwProducaoGeralTempoLogadoSemAtividade with(nolock)
group by CodUsuario
) t2
on t1.CodUsuario = t2.CodUsuario and
t2.Tempo = t2.TempoLogado
Group By DescFornecedor,DescUsuario,Classificacao
但是我社STIL慢!持續10〜20秒。
我該如何改進此查詢? 我出來的想法。
不知道如何處理時間比較。
非常感謝。
(指標和統計都OK,甚至沒有一絲可以幫我嗎)
您正在使用的SQL Server的版本? – 2014-12-03 17:19:31
表中的行數是多少,並且您是否擁有CodUsuario的索引?我也猜測命名爲vwProducaoGeralTempoLogadoSemAtividade是一個視圖。它是基於單個表還是您有一些連接? – CrimsonKing 2014-12-03 17:48:21
在視圖「vwProducaoGeralTempoLogadoSemAtividade」我有3,583行(4secs顯示結果)。 「CodUsuario」不是數據庫表中的一列,我們將它與視圖一起使用。我可以在視圖的列上添加索引嗎?這是「索引視圖」嗎? 「vwPercentualProducao」只返回11行。 我正在使用SQL 2008 r2 – 2014-12-03 17:54:15