Implementazione di un insieme di processi in una stored procedure o tramite il codice?

3

Voglio sapere qual è il metodo adatto per implementare il seguente caso (best practice).

Se creo un insieme di processi come questo:

  1. seleziona i dati dal set di tabelle DB.

  2. loop sul risultato selezionato.

  3. Esegui alcuni controlli su ciascuna iterazione.

  4. Inserisci il risultato in un'altra tabella.

Implementare i passaggi precedenti in una stored procedure o in una transazione tramite il mio codice (asp.net)? Per quanto riguarda i problemi di prestazioni, sicurezza e affidabilità.

    
posta Anyname Donotcare 22.10.2013 - 16:57
fonte

2 risposte

7

Entrambe funzioneranno, la scelta dipende da altri fattori non specificati nella domanda.

Questi fattori includono (ma non sono limitati a)

  1. Requisiti prestazionali e altri fattori correlati (quanti dati deve essere mescolato avanti e indietro tra il server e il DB)
  2. Requisiti per supportare più backbend e / o modificare backend
  3. Talento disponibile per mantenere la base di codice
risposta data 22.10.2013 - 17:08
fonte
6

Ogni volta che devi spostare i dati dal server a un client e viceversa, stai per colpire un muro delle prestazioni. Potrebbe essere accettabile, potrebbe non esserlo. Dovrai fare il test per capirlo.

Personalmente rispondo alle stored procedure per l'accesso al mio database, perché mi piace mantenere la logica che circonda i dati con i dati, piuttosto che nel livello dell'applicazione, che consuma dati.

La cosa più preoccupante per la tua domanda è che vuoi eseguire il loop su righe: in genere, ciò significa che non stai utilizzando SQL correttamente. SQL funziona meglio sugli insiemi e i motori di database sono ottimizzati per il lavoro basato su set. A meno che tu non possa assolutamente lavorare sui dati in un approccio basato su set, ti consiglierei di evitare i loop.

    
risposta data 22.10.2013 - 17:35
fonte

Leggi altre domande sui tag