Professional Documents
Culture Documents
1 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
2 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
FROM lineitem
GROUP BY 1
ORDER BY 2 DESC
LIMIT 100;
l_orderkey | count
------------+----------
[NULL] | 124993010
260642439 | 80
240404513 | 80
56095490 | 72
348088964 | 72
466727011 | 72
438870661 | 72
...
...
3 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
4 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
5 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
pct_slices_populated
6 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
SELECT
ti."table", ti.diststyle, RTRIM(a.attname) column_name,
COUNT(DISTINCT s.query ||'-'|| s.segment ||'-'|| s.step) as num_scans,
7 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
COUNT(DISTINCT CASE WHEN TRANSLATE(TRANSLATE(info,')',' '),'(',' ') LIKE ('%'|| a.attname ||'%
FROM stl_explain p
JOIN stl_plan_info i ON ( i.userid=p.userid AND i.query=p.query AND i.nodeid=p.nodeid )
JOIN stl_scan s ON (s.userid=i.userid AND s.query=i.query AND s.segment=i.segment AND s.step=i.ste
JOIN svv_table_info ti ON ti.table_id=s.tbl
JOIN pg_attribute a ON (a.attrelid=s.tbl AND a.attnum > 0)
WHERE s.tbl IN ([table_id])
GROUP BY 1,2,3,a.attnum
ORDER BY attnum;
SELECT
ti.schemaname||'.'||ti.tablename AS "table",
ti.tbl_rows,
AVG(r.s_rows_pre_filter) avg_s_rows_pre_filter,
100*ROUND(1::float - AVG(r.s_rows_pre_filter)::float/ti.tbl_rows::float,6) avg_prune_pct,
AVG(r.s_rows) avg_s_rows,
100*ROUND(1::float - AVG(r.s_rows)::float/AVG(r.s_rows_pre_filter)::float,6) avg_filter_pct,
COUNT(DISTINCT i.query) AS num,
AVG(r.time) AS scan_time,
MAX(i.query) AS query, TRIM(info) as filter
FROM stl_explain p
JOIN stl_plan_info i ON ( i.userid=p.userid AND i.query=p.query AND i.nodeid=p.nodeid )
JOIN stl_scan s ON (s.userid=i.userid AND s.query=i.query AND s.segment=i.segment AND s.step=i.ste
JOIN (SELECT table_id,"table" tablename,schema schemaname,tbl_rows,unsorted,sortkey1,sortkey_num,d
JOIN (
SELECT query, segment, step, DATEDIFF(s,MIN(starttime),MAX(endtime)) AS time, SUM(rows) s_rows, SU
FROM stl_scan
WHERE userid>1 AND type=2
AND starttime < endtime
tbl_rows
avg_s_rows_pre_filter
avg_prune_pct
avg_s_rows
avg_filter_pct avg_s_rows_pre_filter
8 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
num:
scan_time
query
filter
table | public.orders
tbl_rows | 22751520
avg_s_rows_pre_filter | 12581124
avg_prune_pct | 44.7021
avg_s_rows | 5736106
avg_filter_pct | 54.407
num | 2
scan_time | 19
query | 1721037
filter | Filter: ((o_orderdate < '1993-08-01'::date) AND (o_orderdate >= '1993-05-0
tbl_rows
avg_s_rows
avg_s_rows_pre_filter
scan_time
9 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
tbl_rows avg_s_rows_pre_filter
avg_s_rows_pre_filter avg_s_rows
scan_time
10 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
11 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
12 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
13 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
14 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
15 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
16 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
17 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
18 of 19 3/7/2022, 8:49 PM
Amazon Redshift Engineering’s Advanced Table Design Playbook: Distr... https://aws.amazon.com/pt/blogs/big-data/amazon-redshift-engineerings...
19 of 19 3/7/2022, 8:49 PM