Trong bài đăng này, tôi đang chia sẻ một tập lệnh để tìm danh sách các khóa phân phối của cơ sở dữ liệu. Trong kiến trúc Greenplum MPP, các khóa phân phối đóng vai trò chính trong việc lựa chọn dữ liệu.
Nếu chúng tôi xác định khóa phân phối thích hợp, chúng tôi không yêu cầu các chỉ mục bảng chẵn.
'Sử dụng tập lệnh bên dưới, Greenplum DBA có thể lấy danh sách tất cả các khóa phân phối mà họ có thể sử dụng thêm để báo cáo cơ sở dữ liệu đặc biệt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | SELECT pgn.nspname as table_owner ,pgc.relname as table_name ,COALESCE(pga.attname,'DISTRIBUTED RANDOMLY') as distribution_keys FROM ( SELECT gdp.localoid, CASE WHEN ( Array_upper(gdp.attrnums, 1) > 0 ) THEN Unnest(gdp.attrnums) ELSE NULL END AS attnum FROM gp_distribution_policy gdp ORDER BY gdp.localoid ) AS distrokey INNER JOIN pg_class AS pgc ON distrokey.localoid = pgc.oid INNER JOIN pg_namespace pgn ON pgc.relnamespace = pgn.oid LEFT OUTER JOIN pg_attribute pga ON distrokey.attnum = pga.attnum and distrokey.localoid = pga.attrelid ORDER BY pgn.nspname, pgc.relname; |