sql >> Database teknologi >  >> RDS >> Oracle

Oracle-forespørgselsresultater paginering uden TABLE FULD SCAN-dataadgangsmetode

Først og fremmest:En fuld bordscanning er ikke altid djævelen.

  1. Tjek i din forklaringsplan for omkostningerne ved din forespørgsel uden paginering
  2. Tjek det i din pagineringsløsning

Også når du laver test, så prøv at bruge store tabeller med høje værdier for paginering

Yderligere punkter:

  • Søgning uden bestilling er altid farligt, fordi du ikke kan være sikker på, i hvilken rækkefølge Oracle leverer dit resultat til din næste "side" -> mulige ikke reproducerbare resultater
  • I et ordnet resultat er det også muligt, at en "ny post" på en side før din nuværende "visning" påvirker din "næste side"

Jeg undtager, at du kan lide at "lagre" en forespørgsel i DB og hente dataene side for side, indtil der er ændret noget i de understregede data?




  1. LINQ Brug like i stedet for (( NVL(INSTR(x, y), 0) ) =1)

  2. SQL-valg fra to tabeller returnerer duplikerede værdier - Codeigniter

  3. Behøver MySQL INSERT - SELECT-forespørgsel til tabeller med millioner af poster

  4. Google Apps Script til eksport af regneark til mySQL udføres på flere filer