Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Kumpulkan Statistik Skema Menggunakan FND_STATS di EBS 11i dan R12

Cara Mengumpulkan statistik di EBS

  • Agar dapat menggunakan Pengoptimal Berbasis Biaya secara efektif, statistik skema harus terkini. Untungnya, Oracle EBS telah menyediakan beberapa skrip dan program bersamaan (Mengumpulkan Statistik Skema dan Mengumpulkan Statistik Tabel) untuk mempermudah tugas administratif ini. FND_STATS adalah paket PL/SQL untuk Aplikasi yang memiliki banyak fungsi yang akan membantu tugas administratif ini. Paket ini dapat dipanggil baik dari Program Serentak yang diunggulkan, atau langsung dari SQL*Plus.
  • Tidak disarankan untuk menggunakan DBMS_STATS dengan Database aplikasi Oracle.
  • Saat menggunakan program bersamaan 'Kumpulkan Statistik Skema', disarankan agar Anda hanya meneruskan parameter nama skema dan membiarkan parameter lain default ke nilai defaultnya. Nama skema yang diteruskan dapat berupa nama skema tertentu (mis. GL) atau 'SEMUA' jika Anda lebih suka mengumpulkan statistik CBO untuk modul Aplikasi. Pilihan ini menggunakan metode “perkiraan” dengan ukuran sampel 10% (default).
  • Saat menggunakan program bersamaan 'Kumpulkan Statistik Tabel', hanya berikan pemilik tabel (nama skema) dan nama tabel. Biarkan semua parameter lainnya default secara otomatis, kecuali jika tabel adalah tabel yang dipartisi.

Untuk mengeksekusi FND_STATS secara manual dari SQL*Plus guna mengumpulkan statistik CBO untuk satu atau semua skema, atau untuk tabel tertentu, gunakan sintaks berikut:

Untuk mengumpulkan statistik untuk skema tertentu

exec fnd_stats.gather_schema_statistics('AP');

Untuk mengumpulkan statistik untuk SEMUA  skema dalam database

exec fnd_stats.gather_schema_statistics('ALL');

Untuk mengumpulkan statistik  untuk tabel tertentu 

exec fnd_stats.gather_table_stats('GL','GL_JE_LINES');

Beberapa perintah lagi 

exec apps.fnd_stats.GATHER_TABLE_STATS('GL','GL_POSTING');

Untuk mengumpulkan statistik sebesar 10%

exec apps.fnd_stats.GATHER_TABLE_STATS('QP','QP_LIST_HEADERS_TL',10);

Untuk mengumpulkan statistik sebesar 30%

exec apps.fnd_stats.GATHER_TABLE_STATS('CSM','CSM_MTL_SYSTEM_ITEMS_ACC',35);

Untuk mengumpulkan statistik sebesar 25% dengan 4 pekerja paralel

exec apps.fnd_stats.GATHER_TABLE_STATS('ONT','OE_TRANSACTION_TYPES_ALL',25,4);

Untuk mengumpulkan statistik dengan ukuran_sampel_otomatis

exec apps.fnd_stats.GATHER_TABLE_STATS('HR','PAY_RUN_BALANCES',dbms_stats.auto_sample_size);

Perintah serupa

exec apps.fnd_stats.GATHER_TABLE_STATS('HR','PAY_PAYROLL_ACTIONS',10,4);
exec apps.fnd_stats.GATHER_TABLE_STATS('HR',HR_CODES',35);
exec apps.fnd_stats.GATHER_TABLE_STATS('CS','CS_INCIDENT_TYPE_TL');
exec apps.fnd_stats.GATHER_SCHEMA_STATS('GL',25);

Dengan Basis Data 11g dan 12c, Disarankan untuk mulai menggunakan GATHER AUTO dan AUTO SAMPLE SIZE untuk mengumpulkan statistik

Ini dapat dilakukan melalui permintaan bersamaan juga atau melalui sql

Berkumpul untuk skema APPLSYS:

exec apps.fnd_stats.gather_schema_statistics(schemaname=> 'APPLSYS',estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE ,options => 'GATHER AUTO');

Kumpulkan untuk SEMUA skema:(mungkin atau mungkin tidak ingin melakukan ini)

exec apps.fnd_stats.gather_schema_statistics(schemaname=> 'ALL',estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE ,options => 'GATHER AUTO');

Ini berjalan cukup cepat ke yang lain di atas dan juga sangat akurat. Ini lebih cepat karena menghasilkan statistik untuk objek basi saja dan itu juga dengan ukuran sampel otomatis

Jika Anda ingin mengetahui statistik pengumpulan waktu yang diambil pada skema, kita dapat menggunakan kueri di bawah ini

select owner, min(last_analyzed) , max(last_analyzed) ,( max(last_analyzed) - min(last_analyzed))*24 hours_took
from dba_tables
where last_analyzed is not null
and trunc (last_analyzed) = '&enter_date_DD-MON-YY' -- Example : '01-APR-19'
group by owner
order by hours_took ;

Mengumpulkan statistik sistem dengan 11i dan R12

Untuk E-Business Suite, untuk database non-Exadata, disarankan untuk mengumpulkan statistik sistem dengan opsi NOWORKLOAD, seperti pada:

execute DBMS_STATS.GATHER_SYSTEM_STATS (gathering_mode => 'NOWORKLOAD');

Tetapi untuk database Exadata gunakan perintah berikut sebagai gantinya:

execute DBMS_STATS.GATHER_SYSTEM_STATS ('EXADATA');

Biasanya, ini hanya perlu dilakukan sekali setelah perubahan arsitektur besar dilakukan pada DB.

Mengumpulkan statistik kamus dengan 11i dan R12

  • Anda harus memiliki hak istimewa sistem SYSDBA (atau keduanya ANALYZE ANY DICTIONARY dan ANALYZE ANY) untuk menjalankan prosedur ini.
execute dbms_stats.gather_schema_stats(''SYS'', method_opt=>''for all columns size 1'', degree=>30,estimate_percent=>100,cascade=>true);
  • Jika Anda menggunakan Database versi 10g/11g, Anda dapat menggunakan sintaks berikut sebagai gantinya
execute dbms_stats.gather_dictionary_stats ();
  • Prosedur ini akan mengumpulkan statistik untuk semua skema sistem, termasuk SYS dan SYSTEM, dan skema opsional lainnya, seperti CTXSYS dan DRSYS.
  • Biasanya, ini hanya perlu dilakukan sekali setelah perubahan arsitektur besar dilakukan pada DB.

Ini menyimpulkan langkah-langkah untuk Mengumpulkan Statistik pengoptimal di lingkungan Oracle EBS. Semoga Anda menyukai posting di Kumpulkan Statistik Skema Menggunakan FND_STATS di EBS 11i dan R12

Juga Dibaca
Pengelola bersamaan Oracle
Petunjuk pengoptimal
https://docs.Oracle.com/cd/E18727_01/doc.121/e12893/T174296T174306.htm


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernasi, id, oracle, urutan

  2. Pesanan Kustom di Oracle SQL

  3. Beberapa sisipan SQL oracle

  4. Cara Membuat Tabel Bersarang Sebagai Objek Database Di Oracle

  5. ORA-28001:Kata sandi telah kedaluwarsa