I get the following statistics on a relatively unconstrained system (Xeon 4 Ghz processor, x64, 32 GB RAM, 4 GB page cache) with the current tip: ``` SQLite version 3.35.0 2021-02-22 22:34:14 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .timer on sqlite> .stats on sqlite> .mode list sqlite> .open test.db sqlite> select * from tripsummary; Summary Metric|Distance (KM)|Trip Time (HH:MM)|Scheduled Trip Time (HH:MM)|Departure Delay (HH:MM)|Arrival Delay (HH:MM)|Actual - Scheduled (HH:MM)|Cost (USD)|Out of Pocket (OoP) Cost (USD)|Speed in KMPH|Cost (c/KM)|Out of Pocket (OoP) Cost (c/KM)|Cost ($/Hour)|Out Of Pocket (OoP) Cost ($/Hour) Count|3515|3515|3515|3515|3515|3515|3515|3515|3515|3515|3515|3515|3515 Count (Non-zero)|3515|3515|976|1004|984|976|2234|1846|3515|2234|1846|2234|1846 Count (Distinct)|616|208|343|102|140|239|1022|777|1355|1359|1084|1389|1072 Total|2069029|6272:45|3512:50|400:13|90:04|-305:55|$72879.61|$24547.71|None|None|None|None|None Average|588.63|1:47|0:60|0:07|0:02|-0:05|$20.73|$6.98|329.84|3.52|1.19|$11.62|$3.91 Average (Non-zero)|588.63|1:47|3:36|0:24|0:05|-0:19|$32.62|$13.30|329.84|5.61|2.96|$16.14|$6.67 Mode|43|0:40|0:42|0:05|0:03|-0:03|$4.04|$4.04|96.00|9.40|9.40|$6.06|$6.06 Minimum|1|0:05|0:10|-0:25|-2:45|-2:30|$0.04|$0.04|2.08|0.01|0.01|$0.08|$0.08 Maximum|14133|41:00|36:50|12:40|12:15|7:45|$1082.91|$484.43|1036.14|1198.00|1198.00|$505.08|$242.93 Above Average|656|871|301|288|264|409|402|322|676|986|996|472|585 Below Average|2859|2644|675|716|720|567|1832|1524|2839|1248|850|1762|1261 Percentile 1|5|0:10|0:42|0:00|-0:46|-1:09|$0.15|$0.15|17.81|0.27|0.27|$0.18|$0.18 Percentile 2|10|0:15|0:42|0:00|-0:40|-1:03|$0.25|$0.17|24.00|0.31|0.30|$0.23|$0.21 Percentile 3|14|0:15|0:42|0:00|-0:35|-0:60|$0.25|$0.25|30.00|0.36|0.33|$0.26|$0.25 Percentile 4|17|0:15|0:42|0:00|-0:35|-0:55|$0.27|$0.25|32.87|0.41|0.37|$0.30|$0.28 Percentile 5|20|0:15|0:42|0:00|-0:32|-0:51|$0.40|$0.30|36.00|0.47|0.42|$0.32|$0.30 Percentile 6|22|0:20|0:42|0:00|-0:30|-0:48|$0.40|$0.40|37.85|0.53|0.47|$0.37|$0.32 Percentile 7|24|0:20|0:42|0:00|-0:30|-0:47|$0.40|$0.40|40.00|0.57|0.50|$0.42|$0.36 Percentile 8|24|0:20|0:42|0:00|-0:27|-0:45|$0.45|$0.40|42.00|0.60|0.55|$0.46|$0.40 Percentile 9|26|0:20|0:42|0:00|-0:25|-0:44|$0.50|$0.40|44.00|0.65|0.58|$0.53|$0.44 Percentile 10|27|0:20|0:42|0:00|-0:25|-0:43|$0.61|$0.50|45.91|0.67|0.62|$0.62|$0.50 Percentile 11|29|0:25|0:42|0:00|-0:24|-0:42|$0.65|$0.55|47.65|0.73|0.66|$0.69|$0.54 Percentile 12|31|0:25|0:42|0:00|-0:22|-0:40|$0.65|$0.65|49.09|0.75|0.67|$0.77|$0.64 Percentile 13|32|0:25|0:43|0:00|-0:21|-0:40|$0.73|$0.65|51.60|0.80|0.71|$0.80|$0.69 Percentile 14|32|0:25|0:43|0:00|-0:20|-0:40|$0.75|$0.65|53.14|0.85|0.74|$0.96|$0.77 Percentile 15|34|0:25|0:43|0:00|-0:20|-0:39|$0.80|$0.75|56.00|0.90|0.78|$0.98|$0.80 Percentile 16|35|0:25|0:43|0:03|-0:20|-0:38|$0.88|$0.75|57.33|0.96|0.81|$1.11|$0.90 Percentile 17|37|0:25|0:43|0:05|-0:19|-0:38|$0.90|$0.80|57.33|1.01|0.86|$1.20|$0.96 Percentile 18|39|0:30|0:43|0:05|-0:18|-0:37|$0.95|$0.87|57.33|1.08|0.91|$1.27|$1.00 Percentile 19|39|0:30|0:43|0:05|-0:17|-0:36|$1.00|$0.93|60.00|1.14|0.95|$1.31|$1.13 Percentile 20|40|0:30|0:43|0:05|-0:16|-0:35|$1.05|$0.98|60.75|1.23|1.00|$1.43|$1.20 Percentile 21|40|0:30|0:43|0:05|-0:15|-0:35|$1.05|$1.03|63.43|1.25|1.07|$1.50|$1.30 Percentile 22|40|0:30|0:43|0:05|-0:15|-0:35|$1.15|$1.05|64.50|1.34|1.12|$1.60|$1.32 Percentile 23|42|0:30|0:43|0:05|-0:15|-0:34|$1.15|$1.05|64.50|1.44|1.15|$1.64|$1.44 Percentile 24|42|0:30|0:43|0:05|-0:14|-0:34|$1.20|$1.15|64.50|1.50|1.23|$1.80|$1.50 Percentile 25|43|0:30|0:43|0:05|-0:13|-0:33|$1.20|$1.15|64.50|1.55|1.27|$1.80|$1.58 Percentile 26|43|0:30|0:50|0:05|-0:11|-0:32|$1.20|$1.15|64.50|1.67|1.35|$1.95|$1.63 Percentile 27|43|0:35|0:55|0:05|-0:10|-0:31|$1.25|$1.20|66.86|1.74|1.44|$1.97|$1.80 Percentile 28|43|0:35|1:05|0:05|-0:10|-0:31|$1.31|$1.20|68.57|1.79|1.50|$2.06|$1.80 Percentile 29|43|0:35|1:08|0:05|-0:10|-0:30|$1.40|$1.20|69.60|1.88|1.54|$2.11|$1.80 Percentile 30|43|0:35|1:14|0:05|-0:10|-0:30|$1.50|$1.25|72.00|1.91|1.63|$2.17|$1.95 Percentile 31|43|0:35|1:18|0:05|-0:09|-0:30|$1.62|$1.31|73.20|2.01|1.72|$2.25|$1.97 Percentile 32|43|0:35|1:21|0:05|-0:08|-0:30|$1.70|$1.40|74.00|2.12|1.75|$2.30|$2.06 Percentile 33|43|0:35|1:25|0:05|-0:07|-0:29|$1.80|$1.50|76.50|2.21|1.82|$2.40|$2.10 Percentile 34|43|0:35|1:30|0:05|-0:07|-0:29|$1.95|$1.57|77.14|2.26|1.89|$2.45|$2.18 Percentile 35|45|0:40|1:32|0:07|-0:05|-0:28|$2.00|$1.70|79.50|2.31|1.91|$2.57|$2.25 Percentile 36|45|0:40|1:35|0:09|-0:05|-0:28|$2.20|$1.71|80.00|2.41|2.00|$2.70|$2.30 Percentile 37|47|0:40|1:39|0:10|-0:05|-0:27|$2.30|$1.82|81.00|2.62|2.08|$2.86|$2.36 Percentile 38|48|0:40|1:44|0:10|-0:05|-0:27|$2.38|$1.95|82.00|2.73|2.21|$2.89|$2.40 Percentile 39|50|0:40|1:45|0:10|-0:04|-0:26|$2.38|$2.00|84.00|2.81|2.25|$3.00|$2.50 Percentile 40|51|0:40|1:49|0:10|-0:03|-0:25|$2.50|$2.15|84.00|3.00|2.30|$3.04|$2.64 Percentile 41|52|0:40|1:50|0:10|-0:03|-0:25|$2.73|$2.25|85.71|3.03|2.41|$3.17|$2.71 Percentile 42|53|0:40|1:53|0:10|-0:03|-0:25|$3.13|$2.35|87.00|3.17|2.57|$3.25|$2.85 Percentile 43|54|0:40|1:55|0:10|-0:02|-0:25|$3.58|$2.38|88.50|3.28|2.69|$3.40|$2.91 Percentile 44|56|0:40|1:57|0:10|-0:01|-0:25|$4.04|$2.38|90.00|3.36|2.79|$3.48|$3.00 Percentile 45|56|0:45|2:00|0:10|0:00|-0:25|$4.04|$2.51|90.00|3.56|3.00|$3.57|$3.03 Percentile 46|58|0:45|2:00|0:10|0:00|-0:24|$4.04|$2.75|91.50|3.56|3.02|$3.69|$3.15 Percentile 47|59|0:45|2:04|0:10|0:00|-0:23|$4.04|$3.11|92.23|3.71|3.10|$3.87|$3.20 Percentile 48|60|0:45|2:06|0:11|0:00|-0:23|$4.04|$3.54|93.60|4.04|3.23|$4.03|$3.34 Percentile 49|61|0:45|2:11|0:13|0:00|-0:22|$4.04|$3.95|94.50|4.05|3.28|$4.18|$3.41 Percentile 50|61|0:45|2:15|0:15|0:02|-0:21|$4.04|$4.04|96.00|4.18|3.43|$4.33|$3.48 Percentile 51|64|0:50|2:18|0:15|0:02|-0:21|$4.04|$4.04|96.00|4.35|3.56|$4.44|$3.57 Percentile 52|64|0:50|2:22|0:15|0:02|-0:20|$4.04|$4.04|96.00|4.50|3.56|$4.70|$3.63 Percentile 53|66|0:50|2:25|0:15|0:02|-0:20|$4.04|$4.04|96.00|5.41|3.63|$4.85|$3.80 Percentile 54|68|0:50|2:30|0:15|0:02|-0:20|$4.04|$4.04|96.00|5.53|3.96|$5.01|$3.90 Percentile 55|71|0:55|2:31|0:15|0:02|-0:20|$4.31|$4.04|96.86|5.56|4.04|$5.30|$4.05 Percentile 56|72|0:55|2:33|0:15|0:02|-0:19|$4.60|$4.04|99.00|5.91|4.05|$5.39|$4.19 Percentile 57|75|1:00|2:36|0:15|0:02|-0:18|$4.91|$4.04|100.00|6.29|4.19|$5.39|$4.32 Percentile 58|80|1:00|2:40|0:15|0:02|-0:17|$5.32|$4.04|100.50|6.67|4.33|$5.39|$4.41 Percentile 59|84|1:00|2:43|0:15|0:03|-0:15|$5.75|$4.04|100.80|6.71|4.50|$5.69|$4.58 Percentile 60|88|1:05|2:45|0:15|0:03|-0:15|$6.24|$4.04|102.00|7.11|5.35|$6.06|$4.70 Percentile 61|96|1:05|2:48|0:15|0:03|-0:15|$6.66|$4.04|102.00|7.46|5.53|$6.06|$4.85 Percentile 62|105|1:05|2:51|0:16|0:03|-0:14|$7.00|$4.15|102.86|7.74|5.53|$6.06|$5.02 Percentile 63|111|1:10|2:59|0:18|0:03|-0:11|$7.52|$4.39|103.20|7.97|5.91|$6.06|$5.28 Percentile 64|117|1:10|3:10|0:20|0:03|-0:10|$8.13|$4.60|104.00|8.44|6.29|$6.06|$5.39 Percentile 65|124|1:15|3:20|0:20|0:03|-0:09|$8.44|$4.88|104.57|8.64|6.67|$6.12|$5.39 Percentile 66|130|1:15|3:26|0:20|0:03|-0:08|$9.02|$5.16|105.60|8.84|6.71|$6.53|$5.39 Percentile 67|135|1:20|3:30|0:20|0:03|-0:05|$9.81|$5.52|106.00|9.40|7.13|$6.92|$5.39 Percentile 68|142|1:25|3:40|0:20|0:03|-0:03|$10.73|$5.86|107.25|9.40|7.71|$7.23|$5.69 Percentile 69|153|1:25|3:42|0:20|0:04|-0:03|$11.18|$6.27|108.00|9.40|7.79|$8.00|$6.06 Percentile 70|166|1:30|3:48|0:20|0:05|-0:03|$11.73|$6.67|108.00|9.40|8.00|$8.60|$6.06 Percentile 71|182|1:30|3:52|0:22|0:05|-0:03|$12.38|$7.00|109.71|9.40|8.65|$9.11|$6.06 Percentile 72|196|1:35|3:56|0:25|0:05|-0:03|$13.27|$7.39|110.80|9.40|9.40|$9.83|$6.06 Percentile 73|216|1:40|4:00|0:25|0:07|-0:03|$14.31|$7.73|112.00|9.40|9.40|$10.54|$6.06 Percentile 74|225|1:45|4:01|0:25|0:07|-0:03|$15.40|$8.22|112.80|9.40|9.40|$11.37|$6.06 Percentile 75|250|1:45|4:05|0:25|0:08|-0:03|$16.64|$8.57|114.00|9.40|9.40|$12.80|$6.06 Percentile 76|278|1:50|4:10|0:26|0:08|-0:03|$18.42|$9.34|115.50|9.40|9.40|$13.79|$6.34 Percentile 77|311|2:00|4:11|0:30|0:08|-0:03|$19.61|$10.03|116.40|9.59|9.40|$14.57|$6.70 Percentile 78|348|2:00|4:15|0:30|0:10|-0:02|$21.53|$10.73|118.29|10.25|9.40|$15.31|$6.94 Percentile 79|409|2:05|4:18|0:30|0:10|-0:02|$24.22|$11.18|121.00|11.06|9.40|$16.84|$7.54 Percentile 80|475|2:15|4:22|0:30|0:10|-0:02|$27.42|$11.72|125.00|11.76|9.40|$18.37|$8.06 Percentile 81|545|2:20|4:25|0:30|0:11|-0:02|$30.95|$12.38|420.00|12.25|9.40|$20.34|$8.61 Percentile 82|663|2:25|4:30|0:35|0:12|0:00|$33.69|$13.24|553.85|13.16|9.40|$22.01|$9.07 Percentile 83|761|2:30|4:35|0:35|0:15|0:00|$37.64|$14.44|599.00|14.20|9.40|$23.65|$10.27 Percentile 84|948|2:40|4:42|0:35|0:17|0:02|$41.78|$15.40|622.50|15.22|9.40|$27.35|$10.94 Percentile 85|991|2:55|5:00|0:39|0:20|0:02|$47.08|$16.64|654.00|16.19|11.11|$30.28|$12.46 Percentile 86|1157|3:05|5:25|0:40|0:20|0:03|$51.94|$18.55|674.57|16.63|12.33|$34.90|$13.38 Percentile 87|1290|3:15|6:10|0:40|0:25|0:03|$62.90|$20.20|694.00|17.78|13.54|$39.99|$14.51 Percentile 88|1429|3:20|7:00|0:45|0:27|0:03|$78.65|$22.20|707.74|18.14|15.49|$44.97|$15.28 Percentile 89|1574|3:30|8:05|0:45|0:30|0:03|$91.60|$24.85|723.13|19.26|16.48|$50.00|$17.40 Percentile 90|1683|3:40|8:30|0:48|0:31|0:03|$106.04|$28.33|735.75|21.37|18.00|$54.45|$19.73 Percentile 91|1950|3:45|9:10|0:50|0:35|0:03|$129.76|$31.91|746.12|24.27|18.93|$60.25|$21.43 Percentile 92|2317|4:00|9:45|1:00|0:44|0:03|$144.70|$35.14|756.80|28.33|21.37|$67.69|$23.48 Percentile 93|2624|4:10|10:30|1:10|0:50|0:03|$159.86|$40.24|772.32|32.85|24.27|$74.09|$25.91 Percentile 94|2808|4:40|12:37|1:15|0:59|0:05|$176.20|$46.98|790.05|41.26|27.30|$81.18|$28.96 Percentile 95|2930|5:10|13:30|1:25|1:10|0:07|$191.63|$57.48|809.83|62.77|40.00|$95.52|$31.68 Percentile 96|2970|6:20|14:40|1:40|1:28|0:08|$212.30|$77.90|821.35|89.30|42.08|$104.86|$36.90 Percentile 97|3136|8:25|15:30|1:55|1:40|0:10|$245.60|$98.34|844.50|114.10|62.77|$119.93|$47.50 Percentile 98|6716|10:40|16:25|2:09|2:10|0:17|$306.10|$135.68|872.19|182.05|89.30|$158.37|$53.40 Percentile 99|9726|14:40|33:20|3:31|3:18|0:40|$404.61|$194.32|909.47|300.53|118.60|$240.54|$70.38 Percentile 100|14133|41:00|36:50|12:40|12:15|7:45|$1082.91|$484.43|1036.14|1198.00|1198.00|$505.08|$242.93 Memory Used: 13825520 (max 887369520) bytes Number of Outstanding Allocations: 72037 (max 186850) Number of Pcache Overflow Bytes: 422664 (max 430119064) bytes Largest Allocation: 9699328 bytes Largest Pcache Allocation: 4360 bytes Lookaside Slots Used: 114 (max 123) Successful lookaside attempts: 1154 Lookaside failures due to size: 213 Lookaside failures due to OOM: 476896 Pager Heap Usage: 421872 bytes Page cache hits: 11974 Page cache misses: 96 Page cache writes: 0 Page cache spills: 0 Schema Heap Usage: 369560 bytes Statement Heap/Lookaside Usage: 12628368 bytes Fullscan Steps: 622088 Sort Operations: 502 Autoindex Inserts: 1320 Virtual Machine Steps: 382592216 Reprepare operations: 0 Number of times run: 1 Memory used by prepared stmt: 12628368 Run Time: real 9.011 user 8.578125 sys 0.234375 sqlite> ``` I don't think 887369520 bytes (847 MB) of RAM is very much at all ... Using the 3.34.1 x32 from the sqlite.org website I get the following: ``` SQLite version 3.34.1 2021-01-20 14:10:07 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .timer on sqlite> .stats on sqlite> .mode list sqlite> .open test.db sqlite> select * from tripsummary; [ ... output elided ...] Memory Used: 10230728 (max 859270184) bytes Number of Outstanding Allocations: 65479 (max 178385) Number of Pcache Overflow Bytes: 323304 (max 346063992) bytes Largest Allocation: 4915200 bytes Largest Pcache Allocation: 4256 bytes Lookaside Slots Used: 111 (max 123) Successful lookaside attempts: 1066 Lookaside failures due to size: 76 Lookaside failures due to OOM: 470883 Pager Heap Usage: 407844 bytes Page cache hits: 11971 Page cache misses: 95 Page cache writes: 0 Page cache spills: 0 Schema Heap Usage: 267928 bytes Statement Heap/Lookaside Usage: 9332264 bytes Fullscan Steps: 622088 Sort Operations: 502 Autoindex Inserts: 1320 Virtual Machine Steps: 374879725 Reprepare operations: 0 Number of times run: 1 Memory used by prepared stmt: 9332264 Run Time: real 12.559 user 12.140625 sys 0.250000 sqlite> ``` What version of SQLite3 are you using? Note that setting Large Address Aware on the x86 executable makes no significant change even though that means that the process address space is expanded from 2GB to just under 4GB.