sql >> Databasteknik >  >> RDS >> PostgreSQL

Korrekt sätt att välja och uppdatera SQL

Först, som minst du borde göra en SELECT ... FOR UPDATE så du låser raderna mot andra SELECT ... FOR [SHARE|UPDATE] tillgång. Du måste göra detta i en transaktion och hålla kvar den transaktionen tills du uppdaterar den sista raden och commit .

Raderna du SELECT ... FOR UPDATE inte låst mot normal SELECT; de är fortfarande läsbara för andra transaktioner som inte använder FOR UPDATE eller FOR SHARE .

Ännu bättre, försök att omformulera det hela som en UPDATE ... FROM eller annan set-baserad operation där du gör allt arbete i en enda fråga. Det kommer i allmänhet att prestera mycket bättre än en SELECT ... FOR UPDATE följt av en ström av UPDATE s.




  1. Oracle-fråga för att gruppera datumskillnaden per timme

  2. När EXPLAIN körs, om fältvärdet för nyckel inte är null men Extra är tomt, används nyckeln?

  3. Kommer polling från en SQL DB istället för en fil för chattapplikation att öka prestandan?

  4. Hur visar jag hela innehållet i LOB-kolumnen i Oracle SQL*Plus?