none
stored procedure RRS feed

  • Pergunta

  • No caso de programação com VB6.0, qual a vantagem da utilização de stored procedure no lugar de usar cláusulas sql com ADO no próprio código VB?
    Valeu.
    Niguma.
    Niguma
    terça-feira, 11 de agosto de 2009 20:37

Respostas

  • Niguma,

    Espero que ajude:

    Alta Performance: As procedures são parseadas e otimizadas pelo banco de dados quando são criadas, então se você tiver uma grande quantidade de código, necessitar fazer o acesso repetidamente, se ganha muita velocidade utilizando stored procedures. À partir do momento que um procedimento é executado no banco, uma “versão” daquele procedimento continua na memória para ser aproveitado posteriormente.

    Redução do tráfego de rede: Quando o código SQL fica na aplicação, é necessário que o mesmo seja enviado ao banco (compilado e otimizado) a cada consulta, quando temos várias linhas de SQL isso gera um tráfego maior obviamente, é bem mais vantajoso uma pequena linha de código para executar uma stored procedure.

    Flexibilidade: Como todo o código fica no banco, o DBA tem maior flexibilidade para alterar a base, sem afetar a aplicação. Podemos também pensar em escalabilidade, já que a base pode aumentar sem interferir diretamente o que já está em funcionamento no sistema.

    Fonte: http://www.freelancersbrasil.com/category/sql-server/ 
    São 3 artigos indicando o porque ou o que são Stored Procedures

    Att,

    Fernanda


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Sugerido como Resposta Cleyton Esteves segunda-feira, 24 de agosto de 2009 00:38
    • Marcado como Resposta Fernanda Simões segunda-feira, 24 de agosto de 2009 18:30
    sexta-feira, 21 de agosto de 2009 14:53

Todas as Respostas

  • Nunca deixe seu código SQL "aberto" nos sistemas.....

    Quem tem que cuidar de Selects, Inserts, etc, etc, etc é o Banco de Dados, por isso tem artificios (SP por exemplo) para isso..... isso é segurança

    Imagina se você precisa trocar a versão do banco de dados???? Vai alterar e recompilar todos os sistemas???

    Se você tem alguma alteração em algum objeto do banco de dados que afeta uma grande parte das consultas ....  Vai alterar e recompilar todos os sistemas???

    Deixe os objetos (SP no exemplo em questão) para o banco de dados, ele cria estatisticas..., gera buffer...., recompila quando precisa....,etc, etc, etc

    Tem infinitos motivos para você deixar o que é de banco de dados no BD.... cada um que escrever aqui vai deixar um motivo justo.




    Tks. Fausto Fiorese Branco DBA - SQL Server 2k5 São Paulo - Brasil
    terça-feira, 11 de agosto de 2009 21:03
  • Niguma,

    Concordo com o Fausto.

    A vantagem esta relacionada diretamente com a segurança do seu ambiente e principalmente com o controle de acesso e operações que estão sendo realizadas em seu servidor de forma controlada por ele mesmo.

    Isso evita que sua aplicação possa ser utlizada com um mecanismo de invasão.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 12 de agosto de 2009 03:24
  • Muito interessante as respostas.
    Mas indo um pouco mais adiante.

    1. Se eu trocar a versão do banco, há de ter uma compatibilidade com a anterior,
       se eu usei padrão Ansi. Aí não tem necessidade de mexer em nada.
    2. A questão da alteração de objetos no banco: se as consultas são utilizadas por vários
       sistemas, eu coloco essa consulta em um módulo comum a todos os sistemas, não
       tendo necessidade de alterar todos os sistemas. Altero só o módulo.

    Uma grande desvantagem:
    a depuração de um programa em VB6 que usa stored procedure fica exponencialmente mais
    trabalhosa e demorada.


    Niguma
    quarta-feira, 12 de agosto de 2009 14:22
  • Niguma,

    1 - Sim, perfeitamente.

    2 - Acredito que você terá que realizar a alterações nos objetos que utilizam estas stored procedure, mas isso vai depender do tipo de alteração que você estará realizando.

    Desvantagens podem existir mesmo nada é 100%.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 12 de agosto de 2009 14:29
  • Mas ninguém tocou em um aspecto importante: performance.
    Uma stored procedure roda mais rápido que uma query no código vb acionada por ado? Tem um white paper que comprova isso?
    Valeu, galera.
    Niguma
    quarta-feira, 12 de agosto de 2009 19:45
  • Niguma,

    Espero que ajude:

    Alta Performance: As procedures são parseadas e otimizadas pelo banco de dados quando são criadas, então se você tiver uma grande quantidade de código, necessitar fazer o acesso repetidamente, se ganha muita velocidade utilizando stored procedures. À partir do momento que um procedimento é executado no banco, uma “versão” daquele procedimento continua na memória para ser aproveitado posteriormente.

    Redução do tráfego de rede: Quando o código SQL fica na aplicação, é necessário que o mesmo seja enviado ao banco (compilado e otimizado) a cada consulta, quando temos várias linhas de SQL isso gera um tráfego maior obviamente, é bem mais vantajoso uma pequena linha de código para executar uma stored procedure.

    Flexibilidade: Como todo o código fica no banco, o DBA tem maior flexibilidade para alterar a base, sem afetar a aplicação. Podemos também pensar em escalabilidade, já que a base pode aumentar sem interferir diretamente o que já está em funcionamento no sistema.

    Fonte: http://www.freelancersbrasil.com/category/sql-server/ 
    São 3 artigos indicando o porque ou o que são Stored Procedures

    Att,

    Fernanda


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    • Sugerido como Resposta Cleyton Esteves segunda-feira, 24 de agosto de 2009 00:38
    • Marcado como Resposta Fernanda Simões segunda-feira, 24 de agosto de 2009 18:30
    sexta-feira, 21 de agosto de 2009 14:53