For index pages (internal pages of the B-Tree) the minimum row size is around 4 bytes, so you can fit around 2000 rows on a page.
In most cases though, row sizes are much larger than I listed here, and thus you will be able to fit less rows on a page. It all depends on the data.
Thanks,
The number of rows on a page is calculated as follows:
1) Take the page size (8K)
2) Remove the page header overhead (96 bytes)
3) Remove the compression info overhead (variable size in case of compression, 0 in case of no compression)
4) For each row, you have 2 bytes overhead for the offset pointeer
5) For data rows, the minimum size of a record is 9 bytes
6) For index rows (internal b-tree nodes), the minimum si13ze of a record is 4 bytes.
Taking index rows as example, each row takes 6 bytes (4 bytes record + 2 bytes offset). We have 8096 bytes for data (page size - header), meaning that theoratically, you can fit 8096 / 6 = 1349 rows on a page.
For data rows, you can fit a maximum of 8096 / 11 = 736 rows.
Thanks,