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

Kiểm tra các mục tiêu thống kê trong PostgreSQL

Cài đặt cho mục tiêu thống kê được lưu trữ trên mỗi cột trong bảng danh mục pg_attribute . Bạn có thể đặt nó như thế này:

ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127;

Và kiểm tra nó như thế này:

SELECT attstattarget
FROM   pg_attribute
WHERE  attrelid = 'myschama.mytable'::regclass
AND    attname = 'mycolumn';

Hoặc bạn chỉ cần xem tập lệnh tạo trong trình duyệt đối tượng của pgAdmin, nơi nó được thêm vào nếu giá trị khác với giá trị mặc định trong default_statistics_target .

Tôi trích dẫn sách hướng dẫn về attstattarget :

attstattarget kiểm soát mức độ chi tiết của thống kê được tích lũy cho cột này theo ANALYZE . Giá trị 0 chỉ ra rằng không có thống kê nào nên được thu thập. Giá trị âm cho biết sử dụng mục tiêu thống kê mặc định của hệ thống. Ý nghĩa chính xác của các giá trị dương là phụ thuộc vào kiểu dữ liệu. Đối với các kiểu dữ liệu vô hướng, mục tiêu attstattarget vừa là số mục tiêu của "các giá trị phổ biến nhất" cần thu thập và số lượng mục tiêu của các thùng biểu đồ cần tạo.

In đậm nhấn mạnh của tôi.

Thống kê cho các cột chỉ mục thuần túy giống với thống kê cột và không có mục nhập riêng biệt trong bảng thống kê. Nhưng Postgres thu thập các thống kê riêng biệt cho các biểu thức chỉ mục . Chúng có thể được tinh chỉnh theo cách tương tự:

ALTER INDEX myschema.myidx ALTER COLUMN 1 SET STATISTICS 128;

Trong trường hợp không có tên cột thực, số thứ tự được sử dụng để giải quyết các cột chỉ mục, tương ứng với pg_attribute.attnum :

SELECT attstattarget
FROM   pg_attribute
WHERE  attrelid = 'myschama.myidx'::regclass
AND    attnum = 1;

Cài đặt chỉ thực sự ảnh hưởng đến thống kê cột trong lần tiếp theo ANALYZE đang được chạy thủ công hoặc bằng autovacuum .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chế độ postgresql H2 dường như không hoạt động với tôi

  2. PostgreSQL + Hibernate + Spring tự động tạo cơ sở dữ liệu

  3. Chọn số lượng hàng trong một bảng khác trong câu lệnh Postgres SELECT

  4. Chọn kiểu dữ liệu của trường trong postgres

  5. Pg_escape_string chính xác làm được gì?