我们有一个拥有数百个数据库的多租户环境,这些数据库大部分都是模式相同的,但我担心查询计划可能是一个数据库最快但不是另一个数据库。例如,如果我们有一个没有大量数据的数据库,并且您运行的查询被认为足够快,可以跨所有行扫描并保存该计划,但是如果您针对a运行相同的查询它会生成/保存自己的计划,或者使用针对小得多的数据库创建的计划。
答案 0 :(得分:1)
是!
当你有多个数据库实例时,它们具有相同的模式,但每个数据库都有不同的数字记录和统计数据.... 所以有意义的是,SQL Server保留了每个数据库的执行计划。
注意:“存储”并不意味着SQL Server,将查询计划写入数据库。它们存储在缓存中,而SQL Server服务正在运行,并且它有足够的内存,计划仍然需要保存在缓存中供以后使用。