Update di una tabella di 530000 record circa

giovedì 20 marzo 2014 - 22.45
Tag Elenco Tags  Oracle 10g

gianpaolo77 Profilo | Newbie

Salve a tutti ragazzi,
ho un problema:
devo eseguire un update di un campo di una tabella da circa 530000 record
e devo updatare praticamente tutti i record di questa tabella,
partendo da un'altra tabella creata da me contenente il valore da updatare(e che contiene circa 520000 record).
Faccio un esempio per farvi capire:
Tabella_1:
codice_pdr codice_dl
Tabella_2:
codice_pdr codice_dl e una serie di altri campi

in pratica devo aggiornare il valore del codice_dl della Tabella 2 con quello presente nella Tabella 1
per Tabella_1.codice_pdr=Tabella_2.codice_pdr

Come posso fare nella maniera più veloce possibile?
Fatemi sapere, sono abbastanza nella cacca,
grazie a tutti in anticipo!

alx_81 Profilo | Guru

>Salve a tutti ragazzi,
ciao e benvenuto su dotnethell.it!

>Come posso fare nella maniera più veloce possibile?
con una update nella forma:
UPDATE DEST
SET CAMPO_DA_AGGIORNARE = SRC.CAMPO_VALORE_NUOVO
FROM SCHEMA.TABELLA1 DEST
JOIN SCHEMA.TABELLA2 SRC ON DEST.CAMPO = SRC.CAMPO

Le righe non sono molte, quindi non dovresti avere problemi di tempistiche. Stai attento se devi farlo in produzione, perché potresti creare dei loco pesanti a chi utilizza la tabella che devi aggiornare. Inoltre cerca di fare un backup della porzione dei dati per sicurezza.

>grazie a tutti in anticipo!
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

gianpaolo77 Profilo | Newbie

grazie mille Alessandro sia per il benvenuto che per la risposta!
ma sbaglio, o lo statement che mi hai postato tu non è adatto ad Oracle?
non sono istruzioni di SqlServer quelle? (anche se non lo conosco... )
probabilmente ho inserito il theread in una sezione sbagliata...
anzi, credo proprio di non averlo specificato nel messaggio di ieri sera, mea culpa...
comunque nel frattempo ho fatto una procedurina PL/SQL con un cursore sulla tabella_1 e poi un update sulla tabella_2,
ma sta girando da quasi 17 ore...

alx_81 Profilo | Guru

>grazie mille Alessandro sia per il benvenuto che per la risposta!
>ma sbaglio, o lo statement che mi hai postato tu non è adatto ad Oracle?
Oops.. vedi se ti va meglio l'esempio che ti ho fatto per Oracle:
http://sqlfiddle.com/#!4/8248f/14

>anzi, credo proprio di non averlo specificato nel messaggio di
>ieri sera, mea culpa...
Nei tag c'era.. colpa mia.


Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5