Category: All posts
Nov 20, 2025

Posted by
Jeff Bean
We evaluated real-time analytics performance using RTABench, an accessible benchmark featuring 181 million time-series events from a simulated e-commerce system highlighting real-time analytic queries.
We tested three platforms on comparable Azure infrastructure:
Tiger Cloud delivered dramatically superior performance. Across all 40 queries, Tiger Cloud's median query time was 280x faster than TimescaleDB and 1,200x faster than vanilla PostgreSQL.
Query times ranged from milliseconds to sub-second on Tiger Cloud, while both PostgreSQL variants required seconds to minutes for the same operations. This is because Tiger Cloud is the only platform with complete time-series feature support:
| Platform | Median Query Time | Hypertables | Compression | Continuous Aggregates | Columnar Storage | Vectorized Execution |
|---|---|---|---|---|---|---|
| Tiger Cloud | 5ms | ✓ | ✓ | ✓ | ✓ | ✓ |
| TimescaleDB Apache 2 Edition (Azure Database) | 1.4s (280x slower) | ✓ | X | X | X | X |
| Vanilla PostgreSQL (Azure Database) | 6.0s (1,200x slower) | X | X | X | X | X |
Detailed RTABench Summary (seconds, median of 3 runs)
| Query | Tiger Cloud | TimescaleDB (Apache 2) | Vanilla PG | Tiger vs TS | Tiger vs PG |
|---|---|---|---|---|---|
| Q1 | 0.005 | 2.46 | 112.03 | 492x | 22,406x |
| Q2 | 0.005 | 1.78 | 45.50 | 356x | 9,100x |
| Q3 | 0.005 | 1.34 | 7.61 | 268x | 1,522x |
| Q4 | 0.005 | 0.012 | 0.48 | 2.4x | 96x |
| Q5 | 0.005 | 3.63 | 17.83 | 726x | 3,566x |
| Q6 | 0.005 | 11.47 | 10.05 | 2,294x | 2,010x |
| Q7 | 0.005 | 36.26 | 7.85 | 7,252x | 1,570x |
| Q8 | 0.002 | 34.34 | 1.58 | 17,170x | 790x |
| Q9 | 0.005 | 0.97 | 9.31 | 194x | 1,862x |
| Q10 | 0.005 | 1.17 | 1.07 | 234x | 214x |
| Q11 | 0.005 | 15.38 | 1.22 | 3,076x | 244x |
| Q12 | 0.005 | 0.018 | 6.00 | 3.6x | 1,200x |
| Q13 | 0.005 | 30.58 | 5.84 | 6,116x | 1,168x |
| Q14 | 0.005 | 31.45 | 6.40 | 6,290x | 1,280x |
| Q15 | 0.006 | 0.004 | 2.19 | 0.67x | 365x |
| Q16 | 0.005 | 0.025 | 4.46 | 5x | 892x |
| Q17 | 0.286 | 1.34 | 0.73 | 4.7x | 2.6x |
| Q18 | 0.005 | 25.82 | 41.78 | 5,164x | 8,356x |
| Q19 | 2.61 | 26.24 | 15.19 | 10x | 5.8x |
| Q20 | 0.341 | 30.86 | 4.91 | 90x | 14.4x |
| Q21 | 0.116 | 27.63 | 47.09 | 238x | 406x |
| Q22 | 2.65 | 26.40 | 14.68 | 10x | 5.5x |
| Q23 | 1.04 | 2.31 | 1.29 | 2.2x | 1.2x |
| Q24 | 0.005 | 22.74 | 40.50 | 4,548x | 8,100x |
| Q25 | 0.365 | 1.56 | 0.80 | 4.3x | 2.2x |
| Q26 | 0.006 | 0.340 | 39.03 | 57x | 6,505x |
| Q27 | 0.671 | 1.81 | 1.16 | 2.7x | 1.7x |
| Q28 | 0.006 | 1.69 | 39.16 | 282x | 6,527x |
| Q29 | 0.710 | 3.38 | 1.72 | 4.8x | 2.4x |
| Q30 | 0.176 | 0.535 | 0.82 | 3x | 4.7x |
| Q31 | 0.175 | 17.07 | 10.71 | 97x | 61x |
RTABench is an open-source, real-time analytics benchmark designed to measure how well a transactional database handles analytic queries, particularly those requiring joins and filtering over a normalized schema.
The dataset contains ~171 million events across 1,102 customers, 9,255 products, and 10,010,342 orders, providing a realistic, scalable application workload. RTABench supports a number of databases, and the benchmark has been written to take advantage of each database’s capabilities when appropriate, e.g., TimescaleDB features like hypertables, compression, and columnar storage.
Now that Tiger Cloud is launched on Azure, you can run these benchmarks yourself and observe comparable results.






nohup ./benchmark.sh > benchmark_output.log 2>&1 &When done, in addition to a verbose report, the output should contain query times measured in very few seconds. One line per query, each query runs three times.

Now that we have a Tiger Cloud baseline, let’s compare it to Azure Database for Postgres. Presuming this is naive vanilla Postgres, we don’t have any timescale specific features such as hypertables, let alone continuous aggregates or vectorized storage. We use the Postgres test in RTAbench for this.

You can view the connection string from the Azure portal as well:

Edit benchmark.sh and provide the connection string
Use nohup and make it a background process:
nohup ./benchmark.sh > benchmark_output.log 2>&1 &After a while, your output should contain values measured in quite a few seconds:

The TimescaleDB extension that’s available with Azure Database for Postgres is the Apache 2 Edition. It lacks columnar storage, native compression, and incremental continuous aggregates.


This will require a restart of Postgres. That should take less than 5 minutes.
Use nohup and make it a background process:
nohup ./benchmark.sh > benchmark_output.log 2>&1 &Examine the output. You may see errors around unsupported functions such as continuous aggregates. This is to be expected due to the limitations with Apache Licensed TimescaleDB.

Between tests, and if you need to restart due to an issue, you can wipe Postgres clean as follows:
psql "$CONNECTION_STRING" -c "DROP SCHEMA public CASCADE;"
psql "$CONNECTION_STRING" -c "CREATE SCHEMA public;"
psql "$CONNECTION_STRING" -c "GRANT ALL ON SCHEMA public TO myuser;"
psql "$CONNECTION_STRING" -c "GRANT ALL ON SCHEMA public TO public;"
RTABench includes query performance results in its output. Each query is run three times and performance is reported one line per query, one value per issuance. Output should be scanned for errors and warnings that invalidate the results. Usage of unsupported features, such as continuous aggregates on TimescaleDB Apache 2 or hypertables on Vanilla Postgres may also be reported as an error.
For fun, you can upload the benchmark output files to an LLM and have a conversation. We were particularly amused at how excited Claude got by Tiger Cloud’s millisecond latency after seeing the Vanilla Postgres results:

Microsoft often recommends Azure Data Explorer for time-series workloads because of its rich user experience and optimizations for high-volume, timestamped data. We didn’t run that benchmark at this time because RTABench doesn’t yet support Kusto Query Language (KQL), although the non-standard query language might be a compelling reason to keep time-series workloads in Postgres.
This benchmark makes the broader point clear. If you’ve been held back by slow queries, storage tradeoffs, or the limitations of the Apache 2 Edition on Azure Database for PostgreSQL, Tiger Cloud changes what’s possible on Azure. You get:
And you get performance that is consistently measured in milliseconds, not seconds or minutes.
Questions or want to discuss your architecture? Talk to our solutions team.
About the author
Jeff Bean, a Staff Technical Marketing Engineer at Tiger Data, has a career focused on data infrastructure, including distributed data and stream processing frameworks like Apache Flink, Kafka, and Hadoop. He specializes in understanding the performance of analytical queries and is frustrated by the continued need to move data between operational and analytical systems in 2025. With experience across roles like software engineer, solutions architect, and technical marketer, he lives with his wife, two dogs, and teenage daughter.