Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thu thập thống kê giản đồ bằng FND_STATS trong EBS 11i và R12

Cách thu thập thống kê trong EBS

  • Để sử dụng Hiệu quả Trình Tối ưu hoá Dựa trên Chi phí, thống kê giản đồ phải hiện tại. May mắn thay, Oracle EBS đã cung cấp một số script và chương trình đồng thời (Gather Schema Statistics và Gather Table) để thực hiện công việc quản trị này dễ dàng hơn. FND_STATS là một gói PL / SQL dành cho Ứng dụng có nhiều chức năng sẽ hỗ trợ trong công việc quản trị này. Gói này có thể được gọi từ Chương trình đồng thời được gieo hạt hoặc trực tiếp từ SQL * Plus.
  • Bạn không nên sử dụng DBMS_STATS với Cơ sở dữ liệu ứng dụng Oracle.
  • Khi sử dụng chương trình đồng thời ‘Thu thập thống kê lược đồ’, bạn chỉ nên chuyển tham số tên lược đồ và để các tham số khác mặc định thành giá trị mặc định của chúng. Tên lược đồ được chuyển có thể là một tên lược đồ cụ thể (ví dụ:GL) hoặc 'TẤT CẢ' nếu bạn muốn thu thập số liệu thống kê CBO cho các mô-đun Ứng dụng. Lựa chọn này sử dụng phương pháp "ước tính" với kích thước mẫu là 10% (mặc định).
  • Khi sử dụng chương trình đồng thời ‘Thu thập Thống kê Bảng’, chỉ chuyển chủ sở hữu của bảng (tên lược đồ) và tên bảng. Để tất cả các tham số khác mặc định tự động, ngoại trừ khi bảng là bảng được phân vùng.

Để thực thi thủ công FND_STATS từ SQL * Plus để thu thập số liệu thống kê CBO cho một hoặc tất cả các lược đồ hoặc cho một bảng cụ thể, hãy sử dụng cú pháp sau:

Để thu thập thống kê cho lược đồ cụ thể

exec fnd_stats.gather_schema_statistics('AP');

Để thu thập thống kê cho TẤT CẢ lược đồ trong cơ sở dữ liệu

exec fnd_stats.gather_schema_statistics('ALL');

Để thu thập thống kê cho bảng cụ thể

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

Một số lệnh khác

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

Để thu thập số liệu thống kê ở mức 10%

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

Để thu thập số liệu thống kê ở mức 30%

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

Để thu thập số liệu thống kê ở mức 25% với 4 nhân viên song song

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

Để thu thập số liệu thống kê với auto_sample_size

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

Các lệnh tương tự

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);

Với Cơ sở dữ liệu 11g và 12c, bạn nên bắt đầu sử dụng KÍCH THƯỚC MẪU TỰ ĐỘNG GATHER và AUTO để thu thập số liệu thống kê

Điều này có thể được thực hiện thông qua yêu cầu đồng thời hoặc thông qua sql

Tập hợp cho lược đồ APPLICSYS:

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

Tập hợp cho TẤT CẢ các lược đồ:(có thể muốn hoặc không muốn làm điều này)

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

Điều này chạy khá nhanh hơn những cái khác ở trên và nó cũng rất chính xác. Nó nhanh hơn vì nó chỉ tạo số liệu thống kê cho các đối tượng cũ và điều đó cũng vậy với kích thước mẫu tự động

Nếu bạn muốn biết số liệu thống kê về thời gian thu thập được trên lược đồ, chúng tôi có thể sử dụng truy vấn bên dưới

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 ;

Thu thập thống kê hệ thống với 11i và R12

Đối với E-Business Suite, đối với cơ sở dữ liệu không phải Exadata, bạn nên thu thập thống kê hệ thống với tùy chọn NOWORKLOAD, như trong:

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

Nhưng đối với cơ sở dữ liệu Exadata, hãy sử dụng lệnh sau để thay thế:

execute DBMS_STATS.GATHER_SYSTEM_STATS ('EXADATA');

Thông thường, điều này chỉ cần được thực hiện một lần sau khi có bất kỳ thay đổi lớn nào về kiến ​​trúc đối với DB.

Thu thập thống kê từ điển với 11i và R12

  • Bạn phải có đặc quyền hệ thống SYSDBA (hoặc cả ANALYZE BẤT KỲ TỪ ĐIỂN và PHÂN TÍCH BẤT KỲ) để thực hiện quy trình này.
execute dbms_stats.gather_schema_stats(''SYS'', method_opt=>''for all columns size 1'', degree=>30,estimate_percent=>100,cascade=>true);
  • Nếu bạn đang sử dụng phiên bản Cơ sở dữ liệu 10g / 11g, bạn có thể sử dụng cú pháp sau để thay thế
execute dbms_stats.gather_dictionary_stats ();
  • Quy trình này sẽ thu thập số liệu thống kê cho tất cả lược đồ hệ thống, bao gồm SYS và SYSTEM cũng như các lược đồ tùy chọn khác, chẳng hạn như CTXSYS và DRSYS.
  • Thông thường, điều này chỉ cần được thực hiện một lần sau khi có bất kỳ thay đổi kiến ​​trúc lớn nào đối với DB.

Phần này kết thúc các bước để Thu thập thống kê trình tối ưu hóa trong môi trường Oracle EBS. Hy vọng bạn thích bài đăng trên Thu thập số liệu thống kê lược đồ sử dụng FND_STATS trong EBS 11i và R12

Cũng đã đọc
Trình quản lý đồng thời của Oracle
Gợi ý về Trình tối ưu hóa
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. Trang chủ của Oracle 10g express không xuất hiện

  2. Câu lệnh CASE và một câu lệnh DECODE có tương đương nhau không?

  3. Cách tạo một thủ tục bên trong một gói trong Oracle

  4. CriteriaQuery bộ lọc tháng và năm

  5. nhận một số giá trị duy nhất mà không cần phân tách các giá trị thuộc cùng một khối giá trị