- Este tópico contém 3 respostas, 3 vozes e foi atualizado pela última vez 16 anos atrás por
hudsona.
-
AutorPosts
-
12 de março de 2010 às 12:21 am #93107
facc
ParticipanteBoa tarde
Tenho esse SELECT
SELECT NROSORTE, SERIESORTEIO, LOJA, CODCLIENTE,
TO_CHAR(DATANRSORTE, 'DD/MM/YYYY') AS DATA, CPF,
NOMCLI, TELCLI AS TELEFONE FROM CYBELAR_NROSORTE
WHERE NROSORTE IN (SELECT MIN(NROSORTE)
FROM CYBELAR_NROSORTE
WHERE NROSORTE >= :NumSorte
AND EXTRACT(MONTH FROM MES_ANO) = :MesSorte
AND EXTRACT(YEAR FROM MES_ANO) = :AnoSorte
AND CPF IS NOT NULL
GROUP BY MES_ANO)
AND EXTRACT(MONTH FROM MES_ANO) = :MesSorte
AND EXTRACT(YEAR FROM MES_ANO) = :AnoSorte
AND FLGUSO = 1Mas notei que está dendo uma demora significativa na busca, seria possivel melhorar?
Breve explicação do Select
Esse Select serve para me trazer os dados do ganhador de um sorteio através da Loteria da Caixa, caso ele não encontre o ganhador do número sorteado, busca o próximo número.12 de março de 2010 às 6:47 am #93116fsitja
ParticipanteVou te dar um palpite abaixo, mas não tem como eu saber se atende você porque não tenho como testá-la.
Se você puder postar create table e inserts para testar o SQL o negócio se resolve muito mais fácil.
SELECT nrosorte, seriesorteio, loja, codcliente, to_char(datanrsorte, 'DD/MM/YYYY') AS data, cpf, nomcli, telcli AS telefone
FROM (SELECT row_number() over(PARTITION BY mes_ano ORDER BY nrosorte) rn, c.*
FROM cybelar_nrosorte c
WHERE nrosorte >= :numsorte
AND extract(MONTH FROM mes_ano) = :messorte
AND extract(YEAR FROM mes_ano) = :anosorte
AND cpf IS NOT NULL)
WHERE rn = 1 AND flguso = 1
O espaço para melhoria está em fazer só um scan na tabela, contra 2 na query inicial.
Pode existir 2 registros iguais, um com flguso = 1 e outro com flguso != 1?
Se não puder dá para jogar o filtro para a query interna, na in-line view, e melhorar mais o desempenho.12 de março de 2010 às 3:27 pm #93118facc
ParticipanteO flguso é apenas uma flag que diz se o número foi vendido ou não.
Irei testar essa SQL que me passou, tendo o resultado eu volto a postar.
Muito Obrigado.
12 de março de 2010 às 5:15 pm #93125hudsona
ParticipanteEm performance de query e afins não tem pra ninguém aqui no gpo o fsitja é o cara …
Abraços!!
-
AutorPosts
- Você deve fazer login para responder a este tópico.