Skip to content
About
Main content
Model

Hybrid hash: a ramp, not a cliff

The transition from in-memory to spilled is a linear ramp, not a cliff.

Build size
the build side
Memory
memory for the build side

How it behaves

One input on the horizontal axis, the others held fixed.

Data table
Share of the build side spilled, by how far it exceeds memory
Build side ÷ memory m/MSpilled
0.50%
0.5190%
0.5390%
0.5590%
0.5810%
0.6030%
0.6260%
0.650%
0.6750%
0.70%
0.7270%
0.7550%
0.7840%
0.8140%
0.8450%
0.8770%
0.910%
0.9450%
0.9810%
1.021.82%
1.065.43%
1.18.9%
1.1412.3%
1.1815.5%
1.2318.6%
1.2821.6%
1.3224.5%
1.3727.2%
1.4329.9%
1.4832.5%
1.5435%
1.637.4%
1.6639.7%
1.7241.9%
1.7944%
1.8546.1%
1.9348.1%
250%
2.0751.8%
2.1553.6%
2.2455.3%
2.3256.9%
2.4158.5%
2.560%
2.661.5%
2.762.9%
2.864.3%
2.9165.6%
3.0266.9%
3.1368.1%
3.2569.2%
3.3870.4%
3.571.5%
3.6472.5%
3.7873.5%
3.9274.5%
4.0775.4%
4.2376.3%
4.3977.2%
4.5578%
4.7378.9%
4.9179.6%
5.180.4%
5.2981.1%
5.4981.8%
5.782.5%
5.9283.1%
6.1583.7%
6.3884.3%
6.6284.9%
6.8885.5%
7.1486%
7.4186.5%
7.6987%
7.9987.5%
8.2987.9%
8.6188.4%
8.9488.8%
9.2889.2%
9.6389.6%
1090%

Worked examples, recomputed

Every number the mechanisms quote for this relationship is recomputed from it, so none of them disagrees with it.

Where it appears

Each mechanism states it in its own names. The general symbol each name stands for is shown with it.

  • Query Processing

    Why can one question be answered by plans whose costs differ by a factor of ten thousand, and what does each operator force the engine to do?

    Read it in place →