目前我们有一个数据仓库,它保存来自多个租户的数据。SQL Server 版本为 2019。所有租户数据库的相同架构和来自所有租户的数据都合并到 Datawarehouse 中。数据在租户基础上在数据仓库中进行分区。由于租户之间的数据差异很大,因此新仪表板存在参数嗅探问题。一些租户的数据少于 10000 行,一些租户的数据高达 500 万行。因此,如果执行计划是基于较小的租户构建的,则仪表板性能对大租户不利。
互联网上的建议是要求使用重新编译提示或优化提示等。但我对这个参数嗅探的基础有疑问。由于统计信息由 SQL 服务器在分区级别维护,这些统计信息是否不用于查看构建的计划是否适合新的运行时值?在执行之前,是否曾经比较基于编译时间和运行时间构建的计划的统计信息,以查看它们是否有效以及相关的计划是否有效?
好心提醒。