Usuário com melhor resposta
stored procedure

Pergunta
-
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
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 -
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 -
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 -
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 -
-
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