Jump to content


vini_torres

Member Since 27/07/2010
Offline Last Active 05/08/2010, 09:39
-----

Topics I've Started

Otimizacao De Query

27/07/2010, 15:20

Olá, boa tarde.
Tenho a seguinte query abaixo, e gostaria de saber se da pra otimiza-la. Ela demora cerca de 7 seg pra rodar, dependendo da forma de pesquisa, que esta comentada. Nao é nem tanto o que voce usa pra pesquisar, porque se nao usar nada na clausula WHERE, ela demora apenas 1 seg a mais.

Agradeço desde ja.


SELECT
ltrim(rtrim(a.[num_seq_comprador])) AS 'num_seq_comprador',
ltrim(rtrim(case when isdate(b.[dat_inclusao]) = 1 then convert(varchar, b.[dat_inclusao], 103) else '' end )) as 'dat_inclusao',

-- Aqui tem cerca de 40 campos que eu pego na query,

ltrim(rtrim(replace(replace(replace(a.[num_cpf_pessoa_fisica], '.', ''), '/', ''), '-', '') ) ) AS 'num_cpf_pessoa_fisica',
ltrim(rtrim(a.[pai])) AS 'pai',
ltrim(rtrim(a.[mae])) AS 'mae',

ltrim(rtrim(l.nom_centro_custo)) AS 'nom_centro_custo'
FROM CAD_PARCELAS c
INNER JOIN VW_ALOCACAO_AGENCIA b with (NOLOCK) ON b.[num_seq_parcela] = c.[num_seq_parcela]
INNER JOIN VW_DADOS_COMPRADORES a with (NOLOCK) ON a.[num_seq_comprador] = c.[num_seq_cliente]
INNER JOIN DBSIAV..MOV_PROCESSO_VENDA d with (NOLOCK) ON c.num_seq_processo_venda = d.num_seq_processo_venda
INNER JOIN DBSIAV..CAD_EMPREENDIMENTO e with (NOLOCK) ON d.num_seq_empreendimento = e.num_seq_empreendimento
and e.ind_ativo = 1
INNER JOIN DBSIAV..CAD_DIVISAO f with (NOLOCK) ON d.num_seq_empreendimento = f.num_seq_empreendimento
and d.num_seq_divisao = f.num_seq_divisao
INNER JOIN DBSIAV..CAD_UNIDADE g with (NOLOCK) ON d.num_seq_empreendimento = g.num_seq_empreendimento
and d.num_seq_divisao = g.num_seq_divisao
and d.num_seq_unidade = g.num_seq_unidade
INNER JOIN DBSIAV..TAB_STATUS_PROCESSO_VENDA h with (NOLOCK) ON d.cod_status_processo_venda = h.cod_status_processo_venda

LEFT JOIN TAB_MEIO_PAGAMENTO_SAP i with (NOLOCK) ON c.num_seq_meio_pagamento_sap = i.num_seq_meio_pagamento_sap
LEFT JOIN Cad_Agencia_Dados_Parcelas j with (NOLOCK) ON j.num_seq_parcela = c.num_seq_parcela
LEFT JOIN CAD_CLIENTE_INCORPORADOR m with (NOLOCK) ON m.num_conta_cliente = c.num_conta_cliente
LEFT JOIN TAB_STATUS_COBRANCA k with (NOLOCK) ON k.num_seq_status_cobranca = j.status
LEFT JOIN tab_centro_custo l with (NOLOCK) ON l.num_seq_centro_custo = j.area_responsavel
LEFT JOIN Cad_Agencia_Obs_Cliente n ON n.num_conta_cliente = c.num_conta_cliente

WHERE m.num_conta_cliente is null

-- and ltrim(rtrim(a.nom_pessoa_fisica)) like 'BLABLA%'
-- and ltrim(rtrim(convert(varchar(10), j.data_baixa_cobranca, 103))) = '20/02/2010'

IPB Skin By Virteq