sql >> Databasteknik >  >> RDS >> Oracle

Oracle-frågeresultat paginering utan TABLE FULL SCAN-dataåtkomstmetod

Först och främst:En fullbordsskanning är inte alltid djävulen.

  1. Kontrollera kostnaderna för din fråga utan sidnumrering vid din förklara plan
  2. Kontrollera det i din pagineringslösning

Även när du gör tester, försök att använda stora tabeller med höga värden på sidnumrering

Ytterligare punkter:

  • Sökning utan beställning är alltid farlig eftersom du inte kan vara säker, i vilken ordning Oracle tillhandahåller ditt resultat för din nästa "sida" -> möjliga ej reproducerbara resultat
  • Också i ett ordnat resultat är det möjligt att en "ny post" på en sida före din nuvarande "vy" påverkar din "nästa sida"

Jag förutom att du gillar att "lagra" en fråga i DB och hämta data, sida för sida, tills något ändrats i den understrukna datan?




  1. Kontrollera om ett objekt inte finns i en annan tabell

  2. Hur indexerar man en strängmatriskolumn för pg_trgm `'term' % NÅGON (array_column)`-fråga?

  3. Hur man skript SQL-server databas roll?

  4. MySQL Trigger - radera efter uppdatering