作者:辛博的调调最棒 | 来源:互联网 | 2023-07-21 12:32
本文由编程笔记#小编为大家整理,主要介绍了sql Redshift查询相关的知识,希望对你有一定的参考价值。
-- Check the block list of a column
select col, max(blocknum)
from stv_blocklist b, stv_tbl_perm p
where (b.tbl=p.id) and name ='encodingvenue'
and col <6
group by name, col
order by col;
--
-- Check column list and encoding of a table
select * from PG_TABLE_DEF where tablename = &#39;table_name&#39;;
--
-- Check redshift table definition about more detailed sortkey and stuff
select * from SVV_TABLE_INFO where table = &#39;table_name&#39;;
-- Ref: http://docs.aws.amazon.com/redshift/latest/dg/r_SVV_TABLE_INFO.html
SELECT SCHEMA schemaname,
"table" tablename,
table_id tableid,
size size_in_mb,
CASE
WHEN diststyle NOT IN (&#39;EVEN&#39;,&#39;ALL&#39;) THEN 1
ELSE 0
END has_dist_key,
CASE
WHEN sortkey1 IS NOT NULL THEN 1
ELSE 0
END has_sort_key,
CASE
WHEN encoded = &#39;Y&#39; THEN 1
ELSE 0
END has_col_encoding,
CAST(max_blocks_per_slice - min_blocks_per_slice AS FLOAT) / GREATEST(NVL (min_blocks_per_slice,0)::int,1) ratio_skew_across_slices,
CAST(100*dist_slice AS FLOAT) /(SELECT COUNT(DISTINCT slice) FROM stv_slices) pct_slices_populated
FROM svv_table_info ti
JOIN (SELECT tbl,
MIN(c) min_blocks_per_slice,
MAX(c) max_blocks_per_slice,
COUNT(DISTINCT slice) dist_slice
FROM (SELECT b.tbl,
b.slice,
COUNT(*) AS c
FROM STV_BLOCKLIST b
GROUP BY b.tbl,
b.slice)
WHERE tbl IN (SELECT table_id FROM svv_table_info)
GROUP BY tbl) iq ON iq.tbl = ti.table_id;