HarborSQL Benchmark Dashboard

Dataset-first comparison of Databricks SQL Warehouse baselines, the latest HarborSQL result for each dataset, and a selected HarborSQL version.

Benchmarks are run from compute in the same cloud region as the dataset being read. Results keep only the wall-clock time observed by the benchmark client. Cost columns use server or warehouse compute only from the benchmark pricing assumptions; benchmark client EC2 cost is excluded.

4 datasets 7 HarborSQL versions 4 Databricks rows 25 HarborSQL rows

ClickBench

clickbench · latest HarborSQL v0.1.4

Analytical workload over the optimized S3-backed ClickBench hits table. The runner executes the 43 ClickBench queries multiple times and reports the aggregate best, median, and average query timings.

ComparisonInstance sizeVersion$/hrQueriesRuns/queryFailedBest totalBest costMedian totalMedian costAverage totalAverage costResult
Databricks2xsv2026.10$3.604330170.3s$0.1703192.1s$0.1921218.0s$0.2180results/databricks-sql-warehouse/2xs/v2026.10/clickbench/databricks-2xs-aws-ec2-t3.small-clickbench-20260510T152626Z.json
Latestc8i.2xlargev0.1.4$0.4454433093.584s$0.011695.617s$0.011895.578s$0.0118results/harborsql/c8i.2xlarge/v0.1.4/clickbench/optimized.json
Latesti3.2xlargev0.1.4$0.72404330119.3s$0.0240121.0s$0.0243121.5s$0.0244results/harborsql/i3.2xlarge/v0.1.4/clickbench/optimized.json
Latesti3.xlargev0.1.4$0.36204330253.1s$0.0255256.1s$0.0258257.3s$0.0259results/harborsql/i3.xlarge/v0.1.4/clickbench/optimized.json
Selectedc8i.2xlargev0.1.4$0.4454433093.584s$0.011695.617s$0.011895.578s$0.0118results/harborsql/c8i.2xlarge/v0.1.4/clickbench/optimized.json
Selectedi3.2xlargev0.1.4$0.72404330119.3s$0.0240121.0s$0.0243121.5s$0.0244results/harborsql/i3.2xlarge/v0.1.4/clickbench/optimized.json
Selectedi3.xlargev0.1.4$0.36204330253.1s$0.0255256.1s$0.0258257.3s$0.0259results/harborsql/i3.xlarge/v0.1.4/clickbench/optimized.json
Per-query detail
QueryDatabricks / 2xsLatest HarborSQL / c8i.2xlargeLatest HarborSQL / i3.2xlargeLatest HarborSQL / i3.xlargeSelected HarborSQL / c8i.2xlargeSelected HarborSQL / i3.2xlargeSelected HarborSQL / i3.xlarge
Q0SELECT COUNT(*) FROM hits
2.678s0.016s0.016s0.017s0.016s0.016s0.017s
Q1SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0
1.052s1.012s1.099s1.062s1.012s1.099s1.062s
Q2SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits
1.022s1.010s1.094s1.166s1.010s1.094s1.166s
Q3SELECT AVG(UserID) FROM hits
0.854s1.074s1.107s1.400s1.074s1.107s1.400s
Q4SELECT COUNT(DISTINCT UserID) FROM hits
3.306s1.480s1.809s3.949s1.480s1.809s3.949s
Q5SELECT COUNT(DISTINCT SearchPhrase) FROM hits
3.948s1.440s1.700s3.891s1.440s1.700s3.891s
Q6SELECT MIN(EventDate), MAX(EventDate) FROM hits
0.720s0.033s0.037s0.057s0.033s0.037s0.057s
Q7SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC
0.814s1.100s1.084s1.093s1.100s1.084s1.093s
Q8SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10
3.659s1.622s2.172s4.929s1.622s2.172s4.929s
Q9SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM hits GROUP BY Reg...
5.807s1.955s2.423s5.423s1.955s2.423s5.423s
Q10SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel...
1.711s1.325s1.374s2.155s1.325s1.374s2.155s
Q11SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY Mob...
5.335s1.430s1.430s2.472s1.430s1.430s2.472s
Q12SELECT SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10
3.650s1.533s1.893s4.038s1.533s1.893s4.038s
Q13SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY u...
4.844s2.351s2.743s5.794s2.351s2.743s5.794s
Q14SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, Search...
2.582s1.653s1.927s4.106s1.653s1.927s4.106s
Q15SELECT UserID, COUNT(*) FROM hits GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10
2.679s1.620s1.977s4.378s1.620s1.977s4.378s
Q16SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10
5.432s2.852s3.700s8.426s2.852s3.700s8.426s
Q17SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase LIMIT 10
4.449s2.809s3.522s8.082s2.809s3.522s8.082s
Q18SELECT UserID, extract(minute FROM EventTime) AS m, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, m, SearchPhrase...
9.806s5.257s6.620s15.228s5.257s6.620s15.228s
Q19SELECT UserID FROM hits WHERE UserID = 435090932899640449
0.484s0.570s0.752s0.644s0.570s0.752s0.644s
Q20SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'
3.134s2.675s3.504s7.983s2.675s3.504s7.983s
Q21SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY Sear...
3.277s3.045s4.025s9.548s3.045s4.025s9.548s
Q22SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) FROM hits WHERE Title LIKE '%Google%...
5.085s6.812s8.811s20.412s6.812s8.811s20.412s
Q23SELECT * FROM hits WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10
10.336s3.832s4.853s8.644s3.832s4.853s8.644s
Q24SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime LIMIT 10
1.274s1.618s1.958s3.948s1.618s1.958s3.948s
Q25SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase LIMIT 10
0.905s1.244s1.387s2.625s1.244s1.387s2.625s
Q26SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime, SearchPhrase LIMIT 10
1.245s1.825s2.254s4.785s1.825s2.254s4.785s
Q27SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) >...
3.006s3.060s4.150s9.379s3.060s4.150s9.379s
Q28SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '$1') AS k, AVG(length(Referer)) AS l, COUNT(*) AS...
28.257s13.143s20.168s44.327s13.143s20.168s44.327s
Q29SELECT SUM(ResolutionWidth), SUM(ResolutionWidth + 1), SUM(ResolutionWidth + 2), SUM(ResolutionWidth + 3), SUM(Resolu...
2.863s1.319s1.426s2.552s1.319s1.426s2.552s
Q30SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <>...
2.021s2.031s2.224s4.808s2.031s2.224s4.808s
Q31SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROU...
2.137s2.111s2.556s6.005s2.111s2.556s6.005s
Q32SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP OR...
7.063s4.405s5.780s12.417s4.405s5.780s12.417s
Q33SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10
13.947s5.220s6.731s15.015s5.220s6.731s15.015s
Q34SELECT 1, URL, COUNT(*) AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10
13.878s5.060s6.576s14.713s5.060s6.576s14.713s
Q35SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM hits GROUP BY ClientIP, ClientIP - 1, C...
2.835s1.876s2.276s4.941s1.876s2.276s4.941s
Q36SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013...
0.659s0.308s0.304s0.416s0.308s0.304s0.416s
Q37SELECT Title, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '20...
0.595s0.371s0.370s0.491s0.371s0.370s0.491s
Q38SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013...
0.559s0.323s0.297s0.351s0.323s0.297s0.351s
Q39SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer E...
0.897s0.380s0.393s0.619s0.380s0.393s0.619s
Q40SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND Eve...
0.487s0.269s0.279s0.279s0.269s0.279s0.279s
Q41SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '...
0.498s0.251s0.255s0.268s0.251s0.255s0.268s
Q42SELECT DATE_TRUNC('minute', EventTime) AS M, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2...
0.497s0.264s0.241s0.268s0.264s0.241s0.268s

ClickBench point lookup

clickbench-point-lookup · latest HarborSQL v0.1.4

High-concurrency lookup workload over the optimized ClickBench hits table. The runner executes three 10-second phases with increasing target load: 10 RPS, then 20 RPS, then 50 RPS. It issues point-lookups in parallel at each load level using random lookup keys to reduce cache effects. The result reports request count, failure count, average latency, and tail latency percentiles across the run.

ComparisonInstance sizeVersion$/hrAttemptedFailedWall timeRun costAvgp95p99Result
Databricks2xsv2026.10$3.608000220.7s$0.220717.601s38.723s41.559sresults/databricks-sql-warehouse/2xs/v2026.10/clickbench-point-lookup/databricks-2xs-aws-ec2-t3.small-point-lookup-20260510T152625Z.json
Latestc8i.2xlargev0.1.4$0.4454800186198.5s$0.024617.566s37.473s48.697sresults/harborsql/c8i.2xlarge/v0.1.4/clickbench-point-lookup/point-lookup-concurrency.json
Latesti3.2xlargev0.1.4$0.724080054259.3s$0.052138.063s85.913s104.1sresults/harborsql/i3.2xlarge/v0.1.4/clickbench-point-lookup/point-lookup-concurrency.json
Latesti3.xlargev0.1.4$0.36208000415.1s$0.041789.998s196.0s250.6sresults/harborsql/i3.xlarge/v0.1.4/clickbench-point-lookup/point-lookup-concurrency.json
Selectedc8i.2xlargev0.1.4$0.4454800186198.5s$0.024617.566s37.473s48.697sresults/harborsql/c8i.2xlarge/v0.1.4/clickbench-point-lookup/point-lookup-concurrency.json
Selectedi3.2xlargev0.1.4$0.724080054259.3s$0.052138.063s85.913s104.1sresults/harborsql/i3.2xlarge/v0.1.4/clickbench-point-lookup/point-lookup-concurrency.json
Selectedi3.xlargev0.1.4$0.36208000415.1s$0.041789.998s196.0s250.6sresults/harborsql/i3.xlarge/v0.1.4/clickbench-point-lookup/point-lookup-concurrency.json
Point-lookup stage breakdown
StageComparisonVersionTarget RPSAttemptedFailedDrainAvg latencyp95p99Query delay p95Worker delay p95
Stage 1Databricksv2026.1010100041.998s18.254s26.278s26.627s46.731s
Stage 2Databricksv2026.1020200022.160s9.591s21.312s22.094s1.123s
Stage 3Databricksv2026.1050500058.361s20.674s40.334s41.835s22.160s
Stage 1Latestv0.1.41010007.313s5.757s9.738s10.861s0.540s
Stage 2Latestv0.1.420200021.621s14.226s24.663s27.420s2.308s
Stage 3Latestv0.1.45050018647.857s23.455s41.761s52.167s21.739s
Stage 1Latestv0.1.410100017.047s12.411s19.434s20.788s1.046s
Stage 2Latestv0.1.420200036.713s22.873s38.872s43.442s4.300s
Stage 3Latestv0.1.45050054108.8s50.627s91.524s111.4s62.063s
Stage 1Latestv0.1.410100042.076s30.603s46.326s48.928s1.816s
Stage 2Latestv0.1.4202000278.5s66.381s167.5s230.7s3.241s
Stage 3Latestv0.1.4505000263.8s111.3s209.9s254.2s158.8s
Stage 1Selectedv0.1.41010007.313s5.757s9.738s10.861s0.540s
Stage 2Selectedv0.1.420200021.621s14.226s24.663s27.420s2.308s
Stage 3Selectedv0.1.45050018647.857s23.455s41.761s52.167s21.739s
Stage 1Selectedv0.1.410100017.047s12.411s19.434s20.788s1.046s
Stage 2Selectedv0.1.420200036.713s22.873s38.872s43.442s4.300s
Stage 3Selectedv0.1.45050054108.8s50.627s91.524s111.4s62.063s
Stage 1Selectedv0.1.410100042.076s30.603s46.326s48.928s1.816s
Stage 2Selectedv0.1.4202000278.5s66.381s167.5s230.7s3.241s
Stage 3Selectedv0.1.4505000263.8s111.3s209.9s254.2s158.8s

Delta types

delta-types · latest HarborSQL v0.1.4

Delta Lake compatibility fixture for type decoding and projection. The core queries read scalar, array, map, and struct columns from delta_type_matrix, including nested field access.

ComparisonInstance sizeVersion$/hrQueriesRuns/queryFailedBest totalBest costMedian totalMedian costAverage totalAverage costResult
Databricks2xsv2026.10$3.604302.965s$0.002973.252s$0.0032518.739s$0.0187results/databricks-sql-warehouse/2xs/v2026.10/delta-types/databricks-2xs-aws-ec2-t3.small-delta-types-20260510T152629Z.json
Latestc8i.2xlargev0.1.4$0.44544330.252s$0.000030.260s$0.000030.263s$0.00003results/harborsql/c8i.2xlarge/v0.1.4/delta-types/compatibility.json
Latesti3.2xlargev0.1.4$0.72404330.249s$0.000050.267s$0.000050.262s$0.00005results/harborsql/i3.2xlarge/v0.1.4/delta-types/compatibility.json
Latesti3.xlargev0.1.4$0.36204330.281s$0.000030.297s$0.000030.295s$0.00003results/harborsql/i3.xlarge/v0.1.4/delta-types/compatibility.json
Selectedc8i.2xlargev0.1.4$0.44544330.252s$0.000030.260s$0.000030.263s$0.00003results/harborsql/c8i.2xlarge/v0.1.4/delta-types/compatibility.json
Selectedi3.2xlargev0.1.4$0.72404330.249s$0.000050.267s$0.000050.262s$0.00005results/harborsql/i3.2xlarge/v0.1.4/delta-types/compatibility.json
Selectedi3.xlargev0.1.4$0.36204330.281s$0.000030.297s$0.000030.295s$0.00003results/harborsql/i3.xlarge/v0.1.4/delta-types/compatibility.json

SSB

ssb · latest HarborSQL v0.1.4

Star Schema Benchmark analytical workload at scale factor 10. The runner executes the 13 generated SSB queries over S3-backed Delta tables and reports aggregate query timings.

ComparisonInstance sizeVersion$/hrQueriesRuns/queryFailedBest totalBest costMedian totalMedian costAverage totalAverage costResult
Databricks2xsv2026.10$3.60133030.681s$0.030753.181s$0.053274.424s$0.0744results/databricks-sql-warehouse/2xs/v2026.10/ssb/databricks-2xs-aws-ec2-t3.small-ssb-sf10-20260510T152631Z.json
Latestc8i.2xlargev0.1.4$0.4454133034.140s$0.0042235.686s$0.0044235.946s$0.00445results/harborsql/c8i.2xlarge/v0.1.4/ssb/ssb-sf10.json
Latesti3.2xlargev0.1.4$0.7240133039.859s$0.0080240.248s$0.0080941.016s$0.00825results/harborsql/i3.2xlarge/v0.1.4/ssb/ssb-sf10.json
Latesti3.xlargev0.1.4$0.3620133059.838s$0.0060260.615s$0.0061061.302s$0.00616results/harborsql/i3.xlarge/v0.1.4/ssb/ssb-sf10.json
Selectedc8i.2xlargev0.1.4$0.4454133034.140s$0.0042235.686s$0.0044235.946s$0.00445results/harborsql/c8i.2xlarge/v0.1.4/ssb/ssb-sf10.json
Selectedi3.2xlargev0.1.4$0.7240133039.859s$0.0080240.248s$0.0080941.016s$0.00825results/harborsql/i3.2xlarge/v0.1.4/ssb/ssb-sf10.json
Selectedi3.xlargev0.1.4$0.3620133059.838s$0.0060260.615s$0.0061061.302s$0.00616results/harborsql/i3.xlarge/v0.1.4/ssb/ssb-sf10.json
Per-query detail
QueryDatabricks / 2xsLatest HarborSQL / c8i.2xlargeLatest HarborSQL / i3.2xlargeLatest HarborSQL / i3.xlargeSelected HarborSQL / c8i.2xlargeSelected HarborSQL / i3.2xlargeSelected HarborSQL / i3.xlarge
Q1.1SELECT SUM(lo_extendedprice * lo_discount) AS revenue FROM lineorder, date WHERE lo_orderdate = d_datekey AND d_year...
1.329s1.293s1.683s3.387s1.293s1.683s3.387s
Q1.2SELECT SUM(lo_extendedprice * lo_discount) AS revenue FROM lineorder, date WHERE lo_orderdate = d_datekey AND d_yearm...
1.180s1.385s1.853s3.690s1.385s1.853s3.690s
Q1.3SELECT SUM(lo_extendedprice * lo_discount) AS revenue FROM lineorder, date WHERE lo_orderdate = d_datekey AND d_weekn...
1.335s1.398s1.866s3.737s1.398s1.866s3.737s
Q2.1SELECT SUM(lo_revenue), d_year, p_brand FROM lineorder, date, part, supplier WHERE lo_orderdate = d_datekey AND lo_pa...
5.194s2.670s3.317s5.058s2.670s3.317s5.058s
Q2.2SELECT SUM(lo_revenue), d_year, p_brand FROM lineorder, date, part, supplier WHERE lo_orderdate = d_datekey AND lo_pa...
1.621s2.406s3.085s4.749s2.406s3.085s4.749s
Q2.3SELECT SUM(lo_revenue), d_year, p_brand FROM lineorder, date, part, supplier WHERE lo_orderdate = d_datekey AND lo_pa...
1.626s2.354s3.028s4.572s2.354s3.028s4.572s
Q3.1SELECT c_nation, s_nation, d_year, SUM(lo_revenue) AS revenue FROM customer, lineorder, supplier, date WHERE lo_custk...
2.722s1.377s1.786s3.536s1.377s1.786s3.536s
Q3.2SELECT c_city, s_city, d_year, SUM(lo_revenue) AS revenue FROM customer, lineorder, supplier, date WHERE lo_custkey =...
2.290s1.168s1.433s2.633s1.168s1.433s2.633s
Q3.3SELECT c_city, s_city, d_year, SUM(lo_revenue) AS revenue FROM customer, lineorder, supplier, date WHERE lo_custkey =...
1.336s1.046s1.271s2.303s1.046s1.271s2.303s
Q3.4SELECT c_city, s_city, d_year, SUM(lo_revenue) AS revenue FROM customer, lineorder, supplier, date WHERE lo_custkey =...
2.316s0.817s0.909s1.409s0.817s0.909s1.409s
Q4.1SELECT d_year, c_nation, SUM(lo_revenue - lo_supplycost) AS profit FROM date, customer, supplier, part, lineorder WHE...
4.520s13.710s13.949s15.788s13.710s13.949s15.788s
Q4.2SELECT d_year, s_nation, p_category, SUM(lo_revenue - lo_supplycost) AS profit FROM date, customer, supplier, part, l...
2.455s2.303s2.932s4.615s2.303s2.932s4.615s
Q4.3SELECT d_year, s_city, p_brand, SUM(lo_revenue - lo_supplycost) AS profit FROM date, customer, supplier, part, lineor...
2.757s2.213s2.747s4.361s2.213s2.747s4.361s