2012-12-13 18 views
6

Ho un'azione nella mia applicazione .net che crea un record in 2 tabelle del server sql differnet. Qual è la migliore pratica qui?2 chiamate o una singola chiamata al server sql

Se una stored procedure crea entrambi i record? O Nel caso in cui una stored procedure diversa crei ciascun record nel database applicabile e avvolga entrambe le chiamate in una transazione, in tal modo se uno fallisce, entrambi falliscono?

Qual è il più performante?

+12

Probabilmente vuoi un tran sottrazione comunque. Questa è quasi certamente un'ottica prematura; fallo nel modo più pulito. Esegui un profiler utilizzando entrambi gli approcci per ottenere statistiche sulle prestazioni reali nel tuo ambiente operativo se sei davvero curioso. –

risposta

1

Un processo memorizzato sarà più performante, sicuramente. Porterà anche a meno codice che devi scrivere sul lato server. Lo svantaggio è che ora devi sapere come scrivere l'SQL tu stesso o avere un DBA con cui lavori con chi può scriverlo per te.

Per quanto riguarda l'altra domanda, sarebbe 1 processo memorizzato che si inserisce in entrambe le tabelle.

Un'altra cosa da considerare: se devi fare un sacco di cose come questa nel tuo codice, potrebbe valere la pena di imparare un buon ORM e fare tutto questo in codice (Opzione 2). Ma se si tratta di una cosa una tantum che fai solo in una manciata di posti, il proc memorizzato sarà un approccio più intelligente.

0

È meglio avere la logica in stored procedure in SQL Server e definire l'ambito della transazione e quando questa azione viene avviata in .net applicazione esegue l'operazione in stored procedure e se queste due azioni hanno esito positivo inviare la transazione, altrimenti questa transazione viene annullata. Perché in questo modo si hanno prestazioni migliori. utilizzando stored procedure, secondo i documenti di Microsoft ha alcuni vantaggi come di seguito elencati:

  • Esecuzione ritenzione piano e riutilizzare
  • Query parametrizzazione automatica
  • incapsulamento delle regole di business e politiche
  • modularizzazione Applicazione
  • condivisione di logica applicativa tra applicazioni
  • Accesso agli oggetti del database che è allo stesso tempo sicuro e uniforme
  • coerenti, dati sicuri Modifiche all'apparecchio
  • rete conservazione della larghezza di banda
  • supporto per l'esecuzione automatica all'avvio del sistema-up
  • avanzate funzionalità hardware e software
  • Maggiore sicurezza
  • Riduzione dei costi di sviluppo e una maggiore affidabilità
  • centralizzata sicurezza, amministrazione e manutenzione per le routine comuni
Problemi correlati