๐ŸŒ
AWS
docs.aws.amazon.com โ€บ amazon redshift โ€บ database developer guide โ€บ automatic table optimization
Automatic table optimization - Amazon Redshift
When you run queries against those tables, Amazon Redshift determines if a sort key or distribution key will improve performance. If so, then Amazon Redshift automatically modifies the table without requiring administrator intervention. If a minimum number of queries are run, optimizations ...
๐ŸŒ
AWS
aws.amazon.com โ€บ blogs โ€บ big-data โ€บ automate-your-amazon-redshift-performance-tuning-with-automatic-table-optimization
Automate your Amazon Redshift performance tuning with automatic table optimization | Amazon Web Services
October 6, 2021 - For distribution keys, Amazon Redshift constructs a graph representation of the SQL join history, and uses this graph to calculate the optimal table distribution to reduce data transfer across nodes when joining tables (see the following diagram).
Discussions

c# - Improving performance reading from large Redshift table - Stack Overflow
In what ways can I improve reading the entirety of a large table (> 100 mil rows) on Redshift? I have a dotnet program accessing data from a large table and SELECT * is taking around 2 hours to ... More on stackoverflow.com
๐ŸŒ stackoverflow.com
Optimize My Redshift SQL
Is it faster if you rank your income across all of raw_cache (so you only ever have to order them once instead of doing it over and over in each query_1, query_2...) and then for every dimension and each 'All' cut of data you count how many records you have and use math to get at the 90th and 99th percentile? And I guess some extra work to replicate the interpolating that percentile_cont does. More on reddit.com
๐ŸŒ r/SQL
7
4
December 24, 2023
Amazon Redshift extends Automatic Table Optimization to support Column Compression Encoding

I may be wrong, and I've not examined the behaviour of this functionality, but the choices Redshift so far makes with regard to column encoding are, in my view, extremely poor, and somewhat politically influenced, rather than purely technically influenced - there's a strong preference for AWS's proprietory encoding method, when it is not in fact an appropriate choice at all. Indeed, that method is even used with interleaved tables, where it is a catastrophically incorrect choice.

Moreover, any automated method is fundamentally limited in the information it can process to make its choice : it is not a human. It does not understand overall design, or what might come in the future. It may end up repeatedly swtiching between different choices, as query load varies over time.

In short, it is likely better - assuming the actual choices made are sound, which is not an assumption I would make - than a human who doesn't know what they are doing, and worse than a human who does know what they are doing.

My great fear is that it will not be possible, either now, or made so in the future, to disable this functionality, and so it will actively harm the clusters of people who do know what they're doing.

More on reddit.com
๐ŸŒ r/aws
3
44
August 8, 2021
Need suggestion on query optimization

We also tried spectrum, which is advertised to be cheap and fast. In reality, we had the same experience as you. I'd would suggest to really review partitioning and also indexes in glue , which help a lot.

More on reddit.com
๐ŸŒ r/dataengineering
8
1
October 28, 2022
๐ŸŒ
Medium
medium.com โ€บ @madhuyengala โ€บ designing-efficient-redshift-tables-a-guide-to-performance-scalability-2cc1356a1a27
Designing Efficient Redshift Tables: A Guide to Performance & Scalability | by Madhuyengala | Medium
March 20, 2025 - Query Execution Plan: Use the EXPLAIN command to analyze and optimize query execution plans. Based on the results, you can adjust your sort keys, distribution strategy, or even query logic.
๐ŸŒ
Dwgeek
dwgeek.com โ€บ home โ€บ optimize redshift table design to improve performance
Optimize Redshift Table Design to Improve Performance - DWgeek.com
January 31, 2023 - Optimize Redshift Table Design to Improve Performance, Redshift performance tuning, Distribution, Sort Key, CTAS, Amazon, AWS, Best practices
๐ŸŒ
Hevo
hevodata.com โ€บ home โ€บ learn โ€บ amazon redshift performance tuning: 4 best techniques
Amazon Redshift Performance Tuning: 4 Best Techniques - Learn | Hevo
December 29, 2022 - When Amazon Redshift organizes ... Amazon Redshift to ignore entire blocks of data that do not suffice to your filtering/predicate range. Before executing any query, the optimizer redistributes the rows to the compute nodes to perform joins, aggregations, and processing. A few techniques for optimal distribution style are listed below: To minimize the impact of this redistribution, you must designate the primary key of the dimension table ( and the ...
๐ŸŒ
AWS
aws.amazon.com โ€บ blogs โ€บ big-data โ€บ top-10-performance-tuning-techniques-for-amazon-redshift
Top 10 performance tuning techniques for Amazon Redshift | Amazon Web Services
April 20, 2022 - Amazon Redshift can run any type ... schemas, data vault, or simple flat tables. This post takes you through the most common performance-related opportunities when adopting Amazon Redshift and gives you concrete guidance on how to optimize each one....
๐ŸŒ
E6data
e6data.com โ€บ query-and-cost-optimization-hub โ€บ how-to-optimize-aws-redshift-queries
AWS Redshift Query Optimization Guide 2025: 15 Code Hacks and Examples
September 16, 2025 - Redshift performs optimally when related data is co-located on identical compute nodes, eliminating expensive cross-node data movement. Implementation example for sales analytics dashboards: 1-- Original table with default distribution 2CREATE TABLE sales_facts ( 3 sale_id BIGINT, 4 customer_id ...
Find elsewhere
๐ŸŒ
Matillion
matillion.com โ€บ uploads โ€บ pdf โ€บ optimizing-amazon-redshift.pdf pdf
Optimizing Amazon Redshift A REAL-WORLD GUIDE
Nothing beats ... Define table distribution styles prior to loading in anticipation of their access paths. As with distribution keys, itโ€™s best to specify sort keys prior to data loads by anticipating typical access ยท paths for the table in question. Choose the best sort key, optimizing ...
๐ŸŒ
ProsperOps
prosperops.com โ€บ home โ€บ amazon redshift optimization: 12 tuning techniques to boost performance
Amazon Redshift Optimization: 12 Tuning Techniques To Boost Performance - ProsperOps
September 19, 2024 - Tip: Evaluate whether the benefits of RA3 nodesโ€˜ scalability justify the additional expense for your specific use case. When setting up large tables in Amazon Redshift, choosing an optimal sort key is crucial for enhancing query performance.
๐ŸŒ
AWS
docs.aws.amazon.com โ€บ amazon redshift โ€บ database developer guide โ€บ query performance tuning
Query performance tuning - Amazon Redshift
March 19, 2026 - Once your system is set up, you typically work with DML the most, especially the SELECT command for retrieving and viewing data. To write effective data retrieval queries in Amazon Redshift, become familiar with SELECT and apply the tips outlined in Amazon Redshift best practices for designing tables to maximize query efficiency.
๐ŸŒ
Mohamed Abbas
buildwithabbas.com โ€บ 2025 โ€บ 06 โ€บ 13 โ€บ mastering-redshift-optimization-techniques-for-speed-and-scale
Mastering Redshift: Optimization Techniques for Speed and Scale โ€“ Mohamed Abbas
June 15, 2025 - Each has its strengths depending on your use case: If your priority is query speed and simplicity, go with a Star Schema โ€” fewer joins, faster results. If you care more about storage efficiency and normalization, a Snowflake Schema is a better fit.
๐ŸŒ
Airbyte
airbyte.com โ€บ blog โ€บ optimize-redshift-performance-and-reduce-costs
How to optimize Redshift performance and reduce costs | Airbyte
November 18, 2022 - If you perform frequent range filtering on a particular column, specify that column as the sort key. Similarly, if you perform frequent joins on a particular table, the join column should be specified as the distribution key.
๐ŸŒ
Integrate.io
integrate.io โ€บ home โ€บ blog โ€บ big data โ€บ 15 performance tuning techniques for amazon redshift
15 Performance Tuning Techniques for Amazon Redshift | Integrate.io
November 25, 2025 - Amazon Redshift is a column-oriented database. As a result, scanning a table doesnโ€™t read each row in its entirety. Instead, individual columns can be scanned without needing to read other columns. You should be careful to only select columns that you will use for your query. Try to avoid using a ... The two optimizations can dramatically improve your query speeds.
๐ŸŒ
Halodoc Blog
blogs.halodoc.io โ€บ redshift-optimization
Top 10 Performance Tuning Techniques for Amazon Redshift
June 27, 2023 - Amazon Redshift Advisor offers specific recommendations based on the performance and usage metric of our cluster. The given advice includes : Improve Query Performance with Distribution Keys. Run VACUUM SORT on Tables...
๐ŸŒ
Chartio
chartio.com โ€บ learn โ€บ amazon-redshift โ€บ how-to-improve-amazon-redshift-performance
How to Improve Amazon Redshift Performance | Tutorial by Chartio
March 14, 2018 - One key step towards tuning your Amazon Redshift database is carefully selecting sort keys to optimize your queries. This tutorial will explain how to select appropriate sort keys.
๐ŸŒ
Eyer
eyer.ai โ€บ blog โ€บ 12-amazon-redshift-query-optimization-techniques
12 Amazon Redshift Query Optimization Techniques
October 9, 2024 - ... Use Redshift Advisor. It watches your cluster and suggests ways to boost efficiency and cut costs. ... Pick the right sort key and distribution style. This can make your queries WAY faster. ... Use automatic compression.
๐ŸŒ
ChaosGenius
chaosgenius.io โ€บ blog โ€บ optimizing-redshift-performance
10 Query Optimization Tips for Faster Redshift Performance
December 11, 2025 - Choosing the best data distribution technique is one of the most important choices you must make when constructing your Redshift tables. There are four settings available in Redshift: AUTO, EVEN, KEY, and ALL. AUTO: This evenly distributes data ...
Top answer
1 of 2
1

There are a number of things you can do (depending on what you are trying to do which you haven't explained):

  1. Don't read all the columns (I expect you have thought of this).
  2. Make sure the data is compressed (encoded).
  3. Ensure you data isn't badly skewed (i.e. most of your data is on one slice)
  4. Allocate more memory to the query reading all this data. I expect that there is quite a bit of spill to disk, reducing this could have a big impact.
  5. Increase the number / size of nodes in your cluster. The disk bandwidth is directly proportional to the number of nodes.
  6. Use Redshift Spectrum to do the initial paring down of data. If you are doing group by / aggregation of the data then Spectrum can greatly increase the bandwidth for performing these initial actions of your query. This is only a win if you are not moving all the data to the Redshift cluster.

With all the said I am doubtful that you are really having issues with disk reads for only 100M rows. This is peanuts for Redshift. Unless you have 1000 columns and a tiny cluster this won't take 2 hours. Did you do a SELECT * with the result landing on your computer? If so the 2 hours was moving the data to you over the network, not reading it from disk.

I hope the suggestions above help but if my guess is correct and there is something wrong with your measurements you will need to provide more information. How large in GB is the table? How big is the cluster? What queries are you running? Table info like skew and compression. Query actual execution timing. Something seems amiss.

2 of 2
0

I now understand that the speed in question is pulling the data down to an EC2 instance. There are ways to speed this up as well.

The issue you are running into is that you are moving all the data through a single network connection. The issue with this is that a single network connection has a lot of handshake overhead and since Redshift requires a fairly small network MTU (packet size) there is a lot of handshaking. In addition the data is send uncompressed over the JDBC connection which takes more bandwidth than compressed data. So even though you can bringing the data to a single computer (ec2) there is significant speed up that can be done.

So if the question is how can I speed up the data coming from Redshift over the JDBC connection, I'm sorry you can't do much (high network speed ec2?). If instead you want to get the data to the ec2 the fastest there are improvements that can be made.

Believe it or not the fastest way is a 2 step approach. First unload the data to S3 and make sure it is compressed and with "parallel on". This will cause Redshift to start a data transfer from each slice to S3 - in your case 4 parallel connections. (If you had a bigger cluster the parallelism would be even higher.) Now you will have at least 4 files in S3.

Next you start parallel gets of these files from the ec2. You want around 4 parallel gets so this could work simply in your case. A bash script can be used to automate the process of having 4 parallel AWS CLI gets of the data running at all times (if you have more than 4 files). When each file is download you want to uncompress them and this can be done on the fly - "aws s3 cp s3://bucket/key - | gunzip -c > file". Last step is to cat these files together (if you need) and read them into whatever tool needs the data.

Because there is a lot of overhead in tcp connections and we have overlapping reads from S3, and the files are compressed this 2-step process can be significantly faster than the 1-step JDBC connection route for pulling large amounts of data from Redshift. The limiting step is likely the single network card of the ec2 but this process can maximize the performance of this limited resource.