Skip to content
About
Main content
Model

Block nested loop I/O

The chunk size is memory, and the fixed cost being shared is a full pass over S.

Inputs
pages of the outer and inner input
Memory
pages of the outer held per chunk

Recurring principle: Fixed cost per operation

How it behaves

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

Data table
Page reads by memory (|R| = 1,000, |S| = 10,000 pages)
Memory M (pages)Page reads
101M
10.7941K
11.4881K
12.2821K
13771K
13.9721K
14.9681K
15.9631K
17591K
18.1561K
19.4521K
20.7491K
22.1461K
23.7431K
25.3401K
27381K
28.9351K
30.8331K
32.9311K
35.2291K
37.6271K
40.2251K
42.9241K
45.9221K
49211K
52.4201K
56181K
59.8171K
63.9161K
68.3151K
72.9141K
77.9131K
83.3131K
89121K
95111K
102101K
109101K
11691K
12491K
13281K
14181K
15171K
16171K
17361K
18461K
19761K
21051K
22551K
24051K
25741K
27441K
29341K
31341K
33531K
35731K
38231K
40831K
43631K
46631K
49831K
53221K
56821K
60721K
64921K
69321K
74121K
79121K
84521K
90321K
96521K
1.03K11K
1.1K11K
1.18K11K
1.26K11K
1.34K11K
1.44K11K
1.53K11K
1.64K11K
1.75K11K
1.87K11K
2K11K

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 →