Pergunta

Antigamente acessávamos o banco de dados através de procedimentos armazenados.Eles eram vistos como “a melhor” forma de gerenciar os dados.Mantemos os dados no banco de dados, e qualquer linguagem/plataforma pode acessá-los através de JDBC/ODBC/etc.

No entanto, nos últimos anos, mecanismos de recuperação de armazenamento baseados em reflexão em tempo de execução/metadados, como Hibernate/DataNucleus, tornaram-se populares.Inicialmente, estávamos preocupados com a lentidão deles devido às etapas extras envolvidas (a reflexão é cara) e como eles recuperam dados desnecessários (o objeto inteiro) quando tudo o que precisamos é de um campo.

Estou começando a planejar um grande projeto de armazenamento de dados que usa J2EE, mas não tenho certeza se devo optar por procedimentos armazenados ou JDO/JPA e similares.Recentemente, tenho trabalhado com o Hibernate e, para ser sincero, não sinto falta de escrever procedimentos armazenados CRUD!

Basicamente se resume a:

Procedimentos armazenados
+ Pode ser otimizado no servidor (embora apenas as consultas)
- É provável que existam mais de mil procedimentos armazenados:adicionar, excluir, atualizar, getById, etc, para cada tabela.

JDO
+ Não vou passar os próximos meses escrevendo parâmetros.add("@firstNames", customer.getFirstName());...
- Será mais lento que SPs (mas a maioria suporta paginação)

O que você escolheria na minha situação.Nesse caso eu acho que é muita coisa.

Obrigado,

John

Nenhuma solução correta

Outras dicas

No SharePoint Designer, eu fui capaz de reverter para a página inicial original fazendo o seguinte:

    .
  1. Navegar para todos os arquivos
  2. Abra a pasta Páginas
  3. Clique com o botão direito do mouse no default.aspx
  4. Clique em "Set como home page" no menu de contexto.

    Exemplo

Rod Johnson em seu "J2EE Design adn Development" escreveu uma análise muito clara sobre ORM/StoredProcedures.Ele disse que

Os procedimentos armazenados só devem ser usados ​​em um sistema J2EE para executar operações que sempre usarão muito o banco de dados, sejam elas implementadas no banco de dados ou em código Java que troca muitos dados com o banco de dados.

Como você está planejando implementar um datawarehouse, acho que a abordagem de procedimentos armazenados é a escolha certa.

Eu sugeriria o uso dos metadados para gerar os scripts que você usa para carregar no data warehouse. Isso permite que você obtenha benefícios de desempenho do uso de ferramentas de carga especializadas e talvez de procedimentos armazenados (se você estiver usando um banco de dados suficientemente antigo). Além disso, você provavelmente acabará com codificação manual pelo menos alguns SQL. Ter seus scripts genéricos como Procs armazenados permitirá que você agende todos eles da mesma maneira e não precisará se preocupar em mudar a maneira como eles são invocados quando você reescrever algum código gerado para torná -lo melhor.

Quanto a divulgar os dados, se o que você está construindo no J2EE é uma ferramenta de relatório, poderá estar melhor usando o JDO. Embora eu não esteja muito familiarizado com o lado do relatório das coisas, um benefício que posso ver é que será mais fácil permitir que seus usuários finais façam relatórios personalizados que você não antecipou com antecedência (embora você ainda precise ter Alguns limites para o que eles podem fazer para que não derrubem o banco de dados no processo).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top