Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle 11g - Как да оптимизираме избора на бавно паралелно вмъкване?

Подобрете статистическите данни. Прогнозният брой редове е 1, но действителният брой редове е над 7 милиона и се брои. Това кара плана за изпълнение да използва вложен цикъл вместо хеш присъединяване. Вложеният цикъл работи по-добре за малки количества данни, а хеш присъединяването работи по-добре за големи количества данни. Коригирането на това може да бъде толкова лесно, колкото да се гарантира, че съответните таблици имат точна, текуща статистика. Това обикновено може да стане чрез събиране на статистически данни с настройките по подразбиране, например:exec dbms_stats.gather_table_stats('SIRS_UATC1', 'TBL_RECON_PM'); .

Ако това не подобри оценката за мощността, опитайте да използвате намек за динамична извадка, като /*+ dynamic_sampling(5) */ . За такава продължителна заявка си струва да отделите малко повече време за предварително извадка на данни, ако това води до по-добър план.

Използвайте паралелизъм на ниво израз вместо паралелизъм на ниво обект. Това е може би най-честата грешка с паралелен SQL. Ако използвате паралелизъм на ниво обект, подсказката трябва да препраща към псевдоним на обекта. Тъй като 11gR2 няма нужда да се притеснявате за определяне на обекти. Това изявление се нуждае само от един намек:INSERT /*+ PARALLEL(16) APPEND */ ... . Обърнете внимание, че NOLOGGING не е истински намек.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция TO_CHAR(число) в Oracle

  2. DUPLICATE InMemory Объркване в Oracle RAC

  3. Oracle - ORA-06502:PL/SQL:числова или стойностна грешка (DBMS_OUTPUT)

  4. Вмъкване на изображение от Oracle в SQL Server

  5. ORA-01830:изображението с формат за дата завършва преди конвертиране на целия входен низ / Изберете сума, където датата е заявка