Declaração de Variaveis

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
marcelo0906
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 34
Registrado em: Qua, 02 Set 2009 3:29 pm
Localização: São José - SC

Bom dia Pessoal,

mais uma informação... hehehe
em uma procedure se eu declarar variáveis e não utiliza-las? diminui a performance da procedure??? ou não tem efeito nenhum sobre a procedure???


abraços
SergioLBJr
Rank: Oracle Guru
Rank: Oracle Guru
Mensagens: 448
Registrado em: Ter, 16 Jun 2009 3:07 pm
Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS

[]s

Cara, eu não sei te dizer se piora performance ou não.

Mas, pra que declarar uma variável se tu sabe que não vai usar????

Se realmente perder performance, o que eu não acredito, a diferença não é algo que vai realmente fazer a cair a performance.

E se tu só vai usar a variável em alguns casos não tem por que pensar em tira - la.
marcelo0906
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 34
Registrado em: Qua, 02 Set 2009 3:29 pm
Localização: São José - SC

Não é que vou declarar essas variáveis, estou fazendo um estudo sobre algumas procedures, já criadas, e encontrei variáveis não utilizadas mas declaradas, para remove - las preciso saber se afetam o desempenho..

mas vlw pela dica !!
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Não deve interferir muito no desempenho, porém torna o código mais enxuto e mais limpo, dando mais qualidade neste aspecto, eu removeria,

=]
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Até o Oracle 9i o compilador só obedecia o seu código, mas a partir do 10g o compilador tem um otimizador que "arruma" seu código e remove coisas desnecessárias e rearranja seu PL/SQL da melhor forma. A partir do Oracle 10g polui o código só, o compilador dá um warning e omite o uso da variável como otimização, inclusive atribuições de valores que não sejam usados mais tarde. Exemplo:

Selecionar tudo

  declare
    a number := 5; -- será omitido pois não é usado
  begin
    a := 1; -- vai ser omitido também
    a := 2;
    dbms_output.put_line(a); -- apenas o valor 2 é usado
  end;
Depende da variável PLSQL_OPTIMIZE_LEVEL estar setada para 2 ou 3.
http://download.oracle.com/docs/cd/E118 ... ams191.htm

Com um alter session ou dbms_session se modifica ela, caso não esteja em 2 ou 3. 2 é o default.
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Corrigindo... o 1 também faz essas otimizações mais simples, mas a 2 e 3 fazem mudanças estruturais mais avançadas no código.
Avatar do usuário
NightSpy
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 49
Registrado em: Ter, 09 Set 2008 4:18 pm
Localização: SP

Se eu for fazer uma manutenção na sua procedure, vou perder uns minutos tentando adivinhar onde ela esta sendo usada... heheheheheh..sou bem curuioso.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes