[firebase-br] Lentidão com Viwers

Pedro Rizatto Manoel pedrofrmanoel em gmail.com
Quarta Novembro 11 17:07:25 -03 2020


Estou fazendo alguns teste com a procedure e estou tendo um problema com o
modo que eu quero usar os parametros. "Não sei se é o modo correto".
 Fiz um exemplo no banco employee.

SET TERM ^ ;

create or alter procedure TESTE (
    DEPARTAMENTO varchar(100),
    SFILTRO varchar(1000))
returns (
    HEAD_DEPT char(25),
    DEPARTMENT char(25),
    MNGR_NAME char(20),
    TITLE char(5),
    EMP_CNT integer)
as
declare variable MNGR_NO integer;
declare variable DNO char(3);
BEGIN
    FOR SELECT h.department, d.department, d.mngr_no, d.dept_no
        FROM department d
        LEFT OUTER JOIN department h ON d.head_dept = h.dept_no
        WHERE h.department =:departamento || :SFILTRO
        ORDER BY d.dept_no
        INTO :head_dept, :department, :mngr_no, :dno
    DO
    BEGIN

        SUSPEND;
    END
END^
SET TERM ; ^

/* Following GRANT statements are generated automatically */
GRANT SELECT ON DEPARTMENT TO PROCEDURE TESTE;
/* Existing privileges on this procedure */
GRANT EXECUTE ON PROCEDURE TESTE TO SYSDBA;

----------------------------------------------
e estou executando a procedure deste modo  e  não está retornando nenhuma
informação
    select * from TESTE('European Headquarters',' and d.department =
''Field Office: France''')

caso eu execute sem o segundo parametro ele trás os dados
      select * from TESTE('European Headquarters','')



Desde já Agradeço.

Em qua., 11 de nov. de 2020 às 11:49, Pedro Rizatto Manoel <
pedrofrmanoel em gmail.com> escreveu:

> Sim estava abrindo a Viewrs sem um where e com isso acontece a lentidão.
>
> obrigado pela dica hpensador.
> Estava estudando o caso de Procedure pq nela eu consigo passar
> parametros e aparentemente melhorou muto a velocidade
>
> Em qua., 11 de nov. de 2020 às 11:13, Carlos H. Cantu via lista <
> lista em firebase.com.br> escreveu:
>
>> Analise o PLAN do seu select e veja se ele está otimizado. Obviamente
>> se você não tiver os indices necessários nas tabelas envolvidas, ou
>> não usar um WHERE pra limitar a quantidade de registros que serão
>> pesquisados/retornados, não poderá esperar que fique rápida.
>>
>> []s
>> Carlos H. Cantu
>> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
>> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>>
>> PRMvl> Bom dia !
>>
>> PRMvl> Estou com um banco de dados de 20 Gigas. Faço backup restore
>> periodicamente
>> PRMvl> e o banco não está corrompido.
>>
>> PRMvl> Fiz uma viwers que uni 5 tabelas financeiras caixa, boleto,
>> ctreceber,
>> PRMvl> cheque, cartão pq tenho que mostrar estas informações várias vezes.
>>
>> PRMvl> Ai quando eu uso a viwers eu passo o filtro de empresa e com isso
>> ela fica
>> PRMvl> muito lenta.
>>
>> PRMvl> Eu acho que a lentidão acontece pq a viwer carrega todas as
>> informações do
>> PRMvl> banco sem where e depois o sistema faz o filtro isso acontece
>> deste modo
>> PRMvl> mesmo ?
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas:
>> http://www.firebase.com.br/pesquisa_lista.html
>>
>


Mais detalhes sobre a lista de discussão lista