sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL:Hur man använder mer än 1000 objekt i en IN-klausul

Det rekommenderade sättet att hantera detta i Oracle är att skapa en tillfällig tabell, skriva in värdena i denna och sedan gå med i denna. Använder dynamiskt skapad IN satser betyder att frågeoptimeraren gör en "hård analys" av varje fråga.

create global temporary table LOOKUP
(
    ID NUMBER
) on commit delete rows;

-- Do a batch insert from your application to populate this table
insert into lookup(id) values (?)

-- join to it
select foo from bar where code in (select id from lookup)


  1. Välja en databasproxy för MySQL &MariaDB

  2. Få ID från en villkorlig INSERT

  3. Nätverksmigrering utan driftstopp med MySQL Galera Cluster med hjälp av relänod

  4. Rails:FATAL - Peer-autentisering misslyckades för användaren (PG::Error)