sql >> Database >  >> RDS >> Oracle

PLSQL:alternatief voor opgeslagen procedure voor optimale prestaties

In Oracle hoef je normaal gesproken geen globale tijdelijke tabellen te gebruiken voor dit soort dingen, maar je kunt bulkverwerking gebruiken met arrays:

declare
   cursor c is
      select col1, col2 from my_view;
   type t is table of c%rowtype;
   array t;
begin
   open c;

   loop
      fetch c bulk collect into array limit 1000;
      exit when array.count = 0;

      for i in 1..array.count loop
         null; -- Perform business logic on array(i) here
      end loop;

      forall i in 1..array.count
         insert into final_table (col1, col2)
            values (array(i).col1, array(i).col2);

   end loop;

   close c;
end;

Dat is slechts een minimaal voorbeeld - zie dit artikel voor meer details.




  1. Heroku pg:back-ups herstellen mislukt blijkbaar vanwege de time-out van de Rails-toepassing

  2. Kan geen verbinding maken met lokale MySql-server via socket '/run/mysqld/mysqld.sock' (2)

  3. Beveiliging op rijniveau werkt niet voor tafeleigenaar

  4. MySQL - Verbeter de prestaties van UPDATE-query's voor complexe berekeningen