有关何时使用OPTIMIZE FOR UNKNOWN的经验

我已经阅读了SQL Server 2008的“OPTIMIZE FOR UNKNOWN”查询计划选项背后的理论和观点。我理解它做得很好。 我做了一些有限的实验,发现使用热缓存,它只对> 100k行有益。但是,这是一个简单的表和查询,没有连接,过滤等。在冷缓存上,图片无疑会更有利于它。 我目前没有一个生产系统可以在之前/之后进行测试。所以我很好奇,如果有人在测试之前/之后做了什么,并且确切地知道何时使用这个选项以及何时不做。 更新: 我创建了一个包含3个cols的表,UID上的PK和Col2(int)的索引。所有处理都是针对Col2的。表示行数和时间(DATEDIFF * 1000000):
Type        1,000   5,000   20,000  100,000
Normal      0.3086  6.327   26.427  144.83, 141.126
Recompile           117.59  584.837 
For Unknown 0.8101  6.52    26.89   143.788, 143.248
    
已邀请:
当您的数据充分扭曲时,您将使用它,使用一个参数值生成的计划完全不适合参数的另一个潜在值。即解决参数嗅探问题。 您的问题的其余部分似乎与暗示或负责的IMO的目的无关。     

要回复问题请先登录注册