ĐĂNG KÝ ĐỂ NHẬN THÔNG TIN MỚI NHẤT

Demo scripts kiểm tra và cập nhật statistics cho Partition Table

Bài viết này tôi sẽ Demo các scripts kiểm tra thông tin và cập nhật statistics cho Partition Table. Các scripts đã được kiểm nghiệm và áp dụng trong dự án thực tế của Wecommit, do đó bạn có thể tự tin khi sử dụng.

 

1. Scripts kiểm tra thông tin các Partition của một bảng

select table_owner, table_name, partition_name, tablespace_name,num_rows, last_analyzed from dba_tab_partitions
where table_owner='HUYTQ'

Kết quả

thông itn partition table

Các thông tin trả ra có ý nghĩa như sau:

  • Cột TABLE_OWNER: Đây là chủ sở hữu của bảng. Hiểu đơn giản thì đây là USER đã tạo ra các Table tương ứng.
  • TABLE_NAME: tên của bảng.
  • PARTITION_NAME: tên của partition. Trong ví dụ trên ta thấy rằng bảng EMP_RANGE_PARTITION được chia thành 4 partition với tên tương ứng là Q3_20212, Q1_2012, Q4_2012 và Q2_2012
  • TABLESPACE_NAME: Tên của tablespcae đang lưu trữ dữ liệu các partition table
  • NUM_ROWS: Số lượng bản ghi tương ứng trong partition (tính tới lần cập nhật cuối cùng của Cơ sở dữ liệu).
  • LAST_ANALYZED: Thời gian mà Partition tương ứng được cập nhật các thông tin thống kê (gather statistics).

Theo kết quả trên ta thấy rằng:

  • Partition Q3_2012 của bảng EMP_RANGE_PARTITION được lưu trong tablespace tên là DATA, hiện tại hệ thống ước lượng partition này có 250 bản ghi. Thời gian cuối cùng hệ thống đi cập nhật thông tin của bảng là lúc 16 giờ 15 phút ngày 05/01/2023.

2. Kiểm tra thông tin của Partition

Thực hiện kiểm tra só bản ghi hiện tại của partition Q3_2012

select count(*) from EMP_RANGE_PARTITION partition (Q3_2012);

Kết quả:

Thời điểm hiện tại partition này đang có 250 bản ghi, giống với thông tin mà hệ thống ghi nhận bên trên.

Chúng ta sẽ thử xóa 1 bản ghi trong partition Q3_2012, và kiểm tra lại xem mọi thứ diễn ra như thế nào nhé.

delete EMP_RANGE_PARTITION partition (Q3_2012) where rownum=1;
commit;

select count(*) from EMP_RANGE_PARTITION partition (Q3_2012);
Kết quả:


select table_owner, table_name, partition_name, tablespace_name,num_rows, last_analyzed from dba_tab_partitions where table_owner='HUYTQ'

Kết quả:

Nhận xét:

  • Hệ thống vẫn ghi nhận partiton Q3_2012 có 250 bản ghi
  • Thực tế partition lúc Q3_2012 lúc này chỉ có 249 bản ghi !!
  • Việc sai khác với số lượng nhỏ có thể chưa ảnh hưởng đến hiệu năng và hoạt động của Cơ sở dữ liệu, tuy nhiên nếu việc hệ thống ước lượng và thực tế có sự khác biệt lớn (đã diễn ra trong nhiều dự án), hiệu năng và chiến lược thực thi của các câu lệnh SQL có thể bị ảnh hưởng trầm trọng.

3. Làm thế nào để cập nhật statistics cho Partition Table

Các bạn có thể sử dụng scripts sau:

select ‘exec SYS.DBMS_STATS.GATHER_TABLE_STATS (”’||table_owner||”’,”’||table_name||”’,”’||partition_name||”’,null,null,null,8,”PARTITION”,TRUE);’ from dba_tab_partitions where
table_owner=’&table_owner’ and table_name=’&table_name’ and partition_name like ‘&partition_name%’;

Khi thực hiện điền các giá trị tương ứng:
– &table_owner -> Điền tên của USER đang sở hữu Table cần cập nhật statistics -> Điền giá trị HUYTQ
– &table_name -> Điền tên của Table có Partition cần cập nhật statistics -> Điền giá trị EMP_RANGE_PARTITION
– &partition_name -> Điền tên của partition muốn cập nhật. Nếu muốn cập nhật toàn bộ các partition thì điền giá trị % tại đây

Khi thực thi scripts trên bạn sẽ có các câu lệnh để cập nhật statistics cho partition table cần thiết.

Ví dụ như sau:

exec SYS.DBMS_STATS.GATHER_TABLE_STATS (‘HUYTQ’,’EMP_RANGE_PARTITION’,’Q3_2012′,null,null,null,8,’PARTITION’,TRUE);

Sau khi thực hiện lệnh này, chúng ta kiểm tra lại thông tin của partition

select table_owner, table_name, partition_name, tablespace_name,num_rows, last_analyzed from dba_tab_partitions where table_owner=’HUYTQ’

cập nhật statistics cho Partition Table

Lúc này hệ thống đã nhìn đúng giá trị hiện tại:

  • Partition Q3_2012 của bảng EMP_RANGE_PARTITION được ghi nhận có 249 bản ghi
  • Thời gian cập nhật statistics lúc này là 16 giờ 46 phút 24 giây ngày 05/01/2023.

 

3. Nếu bạn muốn biết toàn bộ những kinh nghiệm và kiến thức về tối ưu Cơ sở dữ liệu, tối ưu SQL mà chúng tôi đang áp dụng trong rất nhiều dự án tại ngân hàng, công ty chứng khoán

Bạn có thể truy cập hệ thống LMS của chúng tôi và học các kiến thức một cách bài bản (Bạn có thể Bắt đầu ngay lập tức, không cần đăng ký, không cần tài khoản, không mất chi phí nào cả): https://wecommit.com.vn/courses/chuong-trinh-dao-tao-toi-uu-co-so-du-lieu-cao-cap/

 

4. Hàng tuần tôi đều cập nhật nội dung mới, thực tế trên hệ thống LMS, nếu bạn muốn nhận thông tin mới nhất

Hãy tham gia nhóm Zalo Tư Duy – Tối Ưu – Khác Biệt sau: https://wecommit.com.vn/zalo

 

5. Nếu bạn muốn tham gia nhóm học viên đặc quyền và truy cập tất cả những bí kíp, kiến thức, kinh nghiệm của chúng tôi

Đọc thông tin về chương trình đào tạo tối ưu cơ sở dữ liệu cao cấp tại đây:https://wecommit.com.vn/courses/chuong-trinh-dao-tao-toi-uu-co-so-du-lieu-cao-cap/

Inbox Zalo: 0888549190

Views: 224





    Câu hỏi bảo mật

    Trả lời

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

    Ask ChatGPT
    Set ChatGPT API key
    Find your Secret API key in your ChatGPT User settings and paste it here to connect ChatGPT with your Tutor LMS website.