Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy możemy dynamicznie określić stopień równoległości?

Wiwek,

Możesz użyć dynamicznego SQL do zbudowania instrukcji INSERT w funkcji lub procedurze PL/SQL. W ten sposób możesz wykorzystać zmienną „stopień”, którą już pobrałeś.

Coś takiego:

DECLARE
   degree varchar2(1); 
BEGIN 
   select value-2 
     INTO degree 
     from v$parameter
    where name='cpu_count';              

   EXECUTE IMMEDIATE('INSERT /*+ APPEND PARALLEL (tst, '||degree||') */ '||
                     '  INTO test_table tst ( '||
                     '       **************  '||
                     '       **************  '||
                     '       **************  '||
                     '  ) '||
                     'SELECT /*+  PARALLEL (a, '||degree||') */ '||
                     '       DISTINCT '||
                     '       ************** '||
                     '       ************** '||
                     '       ************** '||
                     '  FROM src_table a');
END; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL*Plus nie wykonuje skryptów SQL, które robi SQL Developer

  2. Jak wydrukować kilka raportów z kodem kreskowym \ lub kilkoma kodami kreskowymi w jednym raporcie?

  3. Spring Security Login nie działa z Oracle

  4. Java w przykładzie bazy danych Oracle

  5. Globalne tabele temp — SQL Server vs Oracle