Mục đích:
+ Gather là việc quan trọng đối với database, dữ liệu statistic bảng phải luôn được cập nhật
+ Oracle có lập lịch hàng ngày gather nhưng hay bị lỗi, bị dừng nếu gặp bảng to dẫn đến các bảng khác không được gather
Hoạt động:
+ Mỗi ngày thực hiện gather các bảng theo danh sách tự động tìm kiếm: bảng nào có DML (insert, update, delete) lớn nhất thì gather trước, bảng ít thay đổi gather sau
+ Thực hiện vào giờ thấp tải, dừng nếu thời gian chạy quá cho phép để không gather vào lúc cao tải
Bước 1: Xây dựng/Test thủ tục
declare
--p_gather_date DATE := sysdate;
-- Gather cac bang xac dinh
CURSOR c_tables
IS
SELECT owner, table_name, last_analyzed,
'begin
dbms_stats.gather_table_stats
(ownname=>''' || owner || ''',
tabname=>''' || table_name || ''',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => ''FOR ALL COLUMNS SIZE AUTO'',
cascade=>true,
degree=>10);
end;
'
script
FROM dba_tab_statistics
where owner='BINH_OWNER' and table_name in ('TAB1','TAB2')
-- and table_name='TAB1'
--and num_rows<10000000
and stale_stats='YES';
CURSOR c_tab_partitions
IS
SELECT table_name, partition_name, last_analyzed,num_rows,
'begin dbms_stats.gather_table_stats(ownname =>'''||owner||''',tabname =>'''||table_name||''',partname'||'=>'''
|| PARTITION_NAME
|| ''',granularity=>''partition'',cascade=> TRUE,force=>TRUE,estimate_percent=>10,'
|| 'method_opt=>''FOR ALL COLUMNS SIZE AUTO'',degree => 8); end;'
script
FROM dba_tab_statistics
where
(
(owner='BINH_OWNER'
and table_name in ('TAB1_PAR','','TAB2_PAR','TAB3_PAR'))
or
(owner='BINH2_OWNER'
and table_name in ('TAB4_PAR')
)
)
-- and table_name='TAB1_PAR'
--and num_rows<10000000
and partition_name like '%2021%'
and stale_stats='YES';
v_table_name VARCHAR2 (100);
v_partition_name varchar2(100);
v_count number :=0;
BEGIN
FOR c1 IN c_tables
LOOP
--v_table_name := c1.table_name;
EXECUTE IMMEDIATE c1.script;
dbms_output.put_line(c1.script);
v_count := v_count+1;
END LOOP;
for c2 in c_tab_partitions
loop
--v_partition_name := c2.partition_name;
--dbms_output.put_line('Start:'||c2.script);
EXECUTE IMMEDIATE c2.script;
--dbms_output.put_line('Complted:'||c2.script);
v_count := v_count+1;
end loop;
--dbms_output.put_line(v_count);
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
Bước 2: Tạo Scheduler Job trên SYS để chạy tự động
Job này định kỳ 00h sáng chạy hoặc 4h-8h chạy 1 lần tùy nghiệp vụ cần thông tin realtime hay không.
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
hoặc
https://bit.ly/oaz_fp
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle dataguard, oracle goldengate, oracle weblogic, oracle exadata, hoc solaris, hoc linux, hoc aix