Ir para conteúdo
Fórum Script Brasil

galvao_em

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre galvao_em

galvao_em's Achievements

0

Reputação

  1. galvao_em

    Consulta Lenta

    Obrigado, esta consulta refiz de outra forma, mas uma outra que tinha que demorava quase 20 segundos fazendo o que falou baixou para menos de 4 segundos. To começando com postgres to apanhando bastante.
  2. Tenho a Consulta abaixo, que me retorna o extrato de uma conta corrente no sistema em um certo período, mas ela está muito lenta, chega a durar 30 segundos mesmo criando os indices em todos os campos utilizados na comparação, no SQLSERVER esta consulta demorava de 2 a 3 segundos, como faço pra otimizar isso? select cc.conta, b.nome, cc.agencia, cc.titular as empresa, mc.data, mc.descricao, mc.natureza, (mc.valor*mc.natureza) as valor, case natureza when -1 then (mc.valor*natureza) end as saida, case natureza when 1 then mc.valor end as entrada, (select sum(valor*natureza) from Financeiro_Movimentacao_Conta_Corrente where conta=mc.conta and data<mc.data) as saldoinicial, ((select sum(valor*natureza) from Financeiro_Movimentacao_Conta_Corrente where conta=mc.conta and data<mc.data)+(select sum(valor*natureza) from Financeiro_Movimentacao_Conta_Corrente where conta=mc.conta and data=mc.data))as saldoatual from Financeiro_ContaCorrente cc inner join Financeiro_Movimentacao_Conta_Corrente mc on(cc.codigo=mc.conta) inner join Bancos b on cc.banco=b.codigo where cc.codigo=:cod and (mc.data between :dataini and :datafim) order by mc.data, mc.codigo
  3. Olá, preciso colocar o código abaixo para ser executado automaticamente no servidor postgres, qual melhor forma de fazer isso? Diretamente na query no Delphi funciona perfeitamente, mas não sei como fazer isso direto no banco, preciso que seja executado a cada 3 minutos. Tentei fazer via view, mas no select da view a consulta demora mais de 10 segundos devido ao grande numero de registros da tabela monitoramento_posicoes que tem mais de 20 milhões de linhas. delete from temp_posicoes; insert into temp_posicoes SELECT v.placa, m.nome, cr.razaosocial as remetente, cd.razaosocial as destinatario, vi.dtprevisaodescarga as previsaodescarga, ms.nome AS status, vo.nome AS operacao, v.status AS codstatus, v.viagem, (((mp.data::character varying(11)::text || ' - '::text) || mp.posicao::text))::character varying(250) AS posicao, mp.latitude, mp.longitude, mp.velocidade, mp.temperatura FROM motorista m inner JOIN veiculos v ON v.placa=m.placacavalo inner JOIN monitoramento_posicoes mp ON mp.idrastreador = v.idrastreador inner JOIN monitoramento_status ms ON ms.codigo = v.status inner JOIN veiculos_operacao_dedicada vo ON vo.codigo = v.operacaodedicada left join viagens vi on vi.codigo=v.viagem left join clifor cr on cr.codigo=vi.remetente left join clifor cd on cd.codigo=vi.destinatario WHERE m.status = 0 AND mp.codigo = (( SELECT max(monitoramento_posicoes.codigo) AS expr1 FROM monitoramento_posicoes WHERE monitoramento_posicoes.idrastreador = v.idrastreador))
  4. Olá, sou novo na programação em PHP e estou tendo problemas com o resultado de um select, segue abaixo o código, na coluna data não resulta em nada sai em branco, não sei como faço pra aparecer. <?PHP /* Cria a conexão Substitua pelo seu próprio nome de host, nome de usuário e senha */ $timezone = new DateTimeZone("GMT"); $serverName = "localhost"; $connectionInfo = array( "Database"=>"frete", "UID"=>"galvao", "PWD"=>"wess@88039"); $conn = sqlsrv_connect( $serverName, $connectionInfo); $sql = "SELECT nome, rg, cpf, cnhvalidade FROM motorista where motoristatrabalhando=0 order by nome"; $resultado = sqlsrv_query($conn,$sql) or die ("Não foi possível executar a consulta"); echo "<TABLE BORDER=1> <TR><TH>NOME</TH> <TH>RG</TH> <TH>CPF</TH><TH>Data Nascimento</TH>"; while ($linha = sqlsrv_fetch_array($resultado)) { $nome = $linha["nome"]; $rg = $linha["rg"]; $cpf = $linha["cpf"]; $cnhvalida = date($linha["cnhvalidade"]); echo "<TR><TD>$nome</TD> <TD>$rg</TD> <TD>$cpf</TD> <TD>$cnhvalida</TD> </TR>"; } echo "</TABLE>"; sqlsrv_free_result($resultado); sqlsrv_close($conexao); ?>
×
×
  • Criar Novo...