Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Stored Procedures com PostgreSQL: Porque usar.

Stored Procedures com PostgreSQL: Porque usar.

Nesta apresentação é levantado uma discussão a respeito do uso de functions dentro do banco de dados utilizando o PostgreSQL, abordando de forma sucinta os pós e consequentemente os contras, ao se decidir usar essa prática.

Atmos Maciel

June 22, 2016
Tweet

More Decks by Atmos Maciel

Other Decks in Programming

Transcript

  1. None
  2. Atmos Maciel • Ciência da Computação; • Delphi / SQLServer;

    • Programação Web; • Mundo Ágil;
  3. O que é uma Stored Procedure?

  4. Notação SQLServer create procedure “procedurename“ ( < parâmetro1 TIPO >,

    < parâmetro2 TIPO > ... ) AS BEGIN < declare @variavelRetorno; > < procedure_body > < RETORNO OPCIONAL(return @variavelRetorno) > END; GO execute[exec] procedurename (param1, param2);
  5. FUNCTIONS

  6. Functions PostgreSQL • Funções escritas em SQL; • Funções em

    linguagens de procedimento(PL/pgSQL, PL/php, PL/Java); • Funções internas( round(), count(), max(), avg() ); • Funções na Linguagem C;
  7. Notações Em PHP: CREATE FUNCTION plphp_max(integer, integer) RETURNS integer AS

    $$ if ($args[0] > $args[1]) { return $args[0]; } else { return $args[1]; } $$ STRICT LANGUAGE 'plphp' SELECT plphp_max(parameter0, parameter1); Suporte a arrays PHP: CREATE FUNCTION php_array() RETURNS text[ ][ ] AS $$ $return = array(array("Steven", "Klassen"), array("Jonathan", "Daugherty")); return $return; $$ LANGUAGE 'plphp'; SELECT php_array();
  8. Notação CREATE FUNCTION func_escopo() RETURNS integer AS $$ DECLARE quantidade

    integer := 30; BEGIN quantidade := 50; < body_function > DECLARE quantidade integer := 80; BEGIN < body_function > END; RETURN quantidade; END; $$ LANGUAGE plpgsql; SELECT func_escopo();
  9. Notação CREATE FUNCTION instr(varchar, integer) RETURNS integer AS $$ DECLARE

    v_string ALIAS FOR $1; index ALIAS FOR $2; BEGIN < body_function> END; $$ LANGUAGE plpgsql;
  10. Ambiente: Banco de Dados bem feito

  11. Pesquisa

  12. Treta que ainda existe….

  13. Quando é interessante usar Functions no BD?

  14. Linguagens diferentes

  15. Reduz o código da aplicação

  16. Reduz o código da aplicação

  17. Ganho em processamento

  18. Segurança

  19. Performance?

  20. O lado negro da Força...

  21. Escalabilidade da Equipe

  22. Dependência do SGBD

  23. Sem suporte a OOP

  24. Testes automatizados

  25. Testes automatizados

  26. O que se faz hoje?

  27. Banco de Dados Aplicação

  28. Equilibrar no Banco de Dados

  29. Fim...