可以估计具有固定长度行的表的大小(以页数表示)。具有固定长度行的表没有 VARCHAR 或 NVARCHAR 数据类型的任何列。
执行以下步骤以估计固定长度的行的表的大小(以页数表示)。
要估计页大小、行大小、行数和数据页面数:
此输出的最后一行中的 buffer size 字段显示页大小。
SELECT rowsize FROM systables WHERE tabname = 'table-name';
data_pages = rows / trunc(pageuse/(rowsize + 4))
每页的最大行数是 255,该值与行的大小无关。
主页的数目和行数相等:
homepages = rows
首先使用以下公式计算剩余的行的大小:
remsize = rowsize - (pageuse + 8)
如果 remsize 小于 pageuse - 4 ,那么没有完整余页。
如果 remsize 大于 pageuse - 4 ,在以下公式中使用 remsize 以获得完整余页的数目:
fullrempages = rows * trunc(remsize/(pageuse - 8))
首先计算,在减去单行的主页和完整余页后,行的剩余部分的大小。 以下公式中,remainder() 函数符号表示 做除法后取余:
partremsize = remainder(rowsize/(pageuse - 8)) + 4
数据库服务器使用与页大小相关的特定大小阈值,以确定使用部分余页的数目。 使用以下公式计算部分余页与页的比率:
partratio = partremsize/pageuse
使用下表中的相应公式来计算部分余页的数目。
partratio 值 | 计算部分余页数目的公式 |
---|---|
小于 .1 | partrempages = rows/(trunc((pageuse/10)/remsize) + 1) |
小于 .33 | partrempages = rows/(trunc((pageuse/3)/remsize) + 1) |
大于或等于 .33 | partrempages = rows |
tablesize = homepages + fullrempages + partrempages