Non dovrebbe essere questa domanda. Stai chiedendo "È meglio farlo nel modo giusto, o nel modo sbagliato, nel nome di un'idea nebulosa di 'più veloce'?"
Avete una domanda che è in qualche modo troppo lento? Per qualche ragione pensi che il problema sia dovuto al fatto che gli UPDATE impiegano troppo tempo? Hai effettuato misurazioni e benchmarking delle prestazioni delle interazioni del tuo database?
Quello che state facendo è l'ottimizzazione prematura della peggior specie, e si stanno facendo la vostra applicazione un disservizio in questo modo. Stai facendo ipotesi selvagge su come accelerare il tuo codice, con assolutamente nulla su cui basare.
scrivere il codice giusto. Quindi prova a trovare dove hai un problema di prestazioni. Hai mai avuto un problema di prestazioni, o stai facendo questa domanda semplicemente perché pensi che sia qualcosa che dovresti chiedere? Non dovresti.
Anche se specificamente avuto un problema con gli aggiornamenti di essere troppo lento, non siamo in grado di rispondere alla domanda di "è x più veloce di Y" perché non ci hai dato quasi abbastanza informazioni, come ad esempio:
- Cosa database in uso
- I layout di tabella
- Quali sono gli indici sulla base di dati
- Come stai interfacciarsi con il database
Scrivi il tuo codice correttamente, e poi tornare con specifiche su ciò che è troppo lento, piuttosto che indovinare micro-ottimizzazioni.
fonte
2010-10-09 04:00:52
Se è necessario aggiornare solo poche righe, non penso che le prestazioni contino tanto quanto se fosse necessario aggiornare tutte le 1 milione di righe. – BoltClock
Ho aggiornato la domanda per menzionare che sto mirando idealmente a SQL 2005/2008. –
Pensa a quello che stai chiedendo - sta facendo due operazioni più velocemente di una? Per eliminare un rec è necessario rimuoverlo dal datablock e dai blocchi di indice associati. Un inserto deve fare il contrario. Un aggiornamento è ottimizzato per l'aggiornamento sul posto proprio come è necessario, toccando solo gli indici se le colonne indicizzate cambiano. Quindi, in breve, l'aggiornamento è molto più veloce. – Will