Sql 估计查询的结果计数

Sql 估计查询的结果计数,sql,sql-server,statistics,estimation,Sql,Sql Server,Statistics,Estimation,我想估计一个查询的结果计数,该查询是包含大量数据的5-10个表之间的连接(每个表约5亿行) 这样的查询需要20-30分钟才能在我测试的环境中执行 我想在5秒内得到一个估计值。在MSSQL中有哪些方法可以实现这一点 我想从每个表中抽取一个样本,并对样本运行查询,但不确定这是否会返回一个合理的估计 分析估计的查询计划如何?如果您有一种方法可以收集相似大小的组中的数据(如按日期,每个组每月一个),您可以从中推断,也许可以使用视图。我认为你没有办法在5秒钟内估算出这样的数据量。如果我可以根据表中的数据量

我想估计一个查询的结果计数,该查询是包含大量数据的5-10个表之间的连接(每个表约5亿行)

这样的查询需要20-30分钟才能在我测试的环境中执行

我想在5秒内得到一个估计值。在MSSQL中有哪些方法可以实现这一点


我想从每个表中抽取一个样本,并对样本运行查询,但不确定这是否会返回一个合理的估计

分析估计的查询计划如何?如果您有一种方法可以收集相似大小的组中的数据(如按日期,每个组每月一个),您可以从中推断,也许可以使用视图。我认为你没有办法在5秒钟内估算出这样的数据量。如果我可以根据表中的数据量假设大多数记录都是静态的,但数据正在增长。如果您能够找出一种区分“旧”数据和“新”数据的方法(例如使用记录创建日期、行版本等)。然后,您可以构建一个流程,定期(每周或每夜)预先计算“旧”数据记录计数,并动态计算较小数据集的“新”记录计数(您需要适当的索引)并将其相加。然后它可能会在5秒钟内工作。@JamesZ估算查询计划不适用于参数化查询。分析估算查询计划如何?如果您有办法以类似大小的组收集数据(如按日期,每个组每月一个),您可以使用视图从中推断。我认为你没有办法在5秒钟内估算出这样的数据量。如果我可以根据表中的数据量假设大多数记录都是静态的,但数据正在增长。如果您能够找出一种区分“旧”数据和“新”数据的方法(例如使用记录创建日期、行版本等)。然后,您可以构建一个流程,定期(每周或每夜)预先计算“旧”数据记录计数,并动态计算较小数据集的“新”记录计数(您需要适当的索引)并将其相加。然后它可能会在5秒内工作。@JamesZ估计的查询计划不适用于参数化查询。