如何根据特定查询结果估计数据大小

时间:2017-09-21 21:36:22

标签: sql sql-server

我想估计查询结果的实际数据大小。例如,我想知道数据集对于此表中少于4年的所有记录的大小,并在SQL Server中使用以下查询

select * from dbo.MY_TABLE
where ETL_CREATE_DTM > dateadd(year, -1, getdate());

我究竟如何获得查询结果的大小,以MB或GB为单位而不是行数?

1 个答案:

答案 0 :(得分:0)

如果您不想运行查询,可以使用估算的查询计划来了解行数

只需在查询窗口中选择您的查询,右键点击并选择“显示预估执行计划”

然后,如果您将鼠标悬停在' SELECT'图标弹出窗口将显示估计的行数。

My project file structure

通过执行以下操作,您可以了解数据量:

右键单击SSMS中的表名,然后选择“属性”,然后选择“存储”。

返回的MB数量的估计值将由(估计行数)/(行数)*(数据空间)

给出

enter image description here

所以这里它将是914/15708 * 11.266 = 0.66MB

NB仅当您返回整行时才会有效,并假设每行中的数据均匀分布。如果您有二进制项目(例如存储在列中的图像),则此方法可能无法阻止,但如果您只是存储基本数据类型,则应该没有问题。字符串,数字。