SQL Server查询计划缓存随机损坏

时间:2016-01-21 09:22:05

标签: c# asp.net sql-server linq-to-sql

我有一个运行SQL Server数据库的ASP.NET站点,其中包含以下每晚维护计划:

  1. 检查数据库完整性
  2. 重建索引
  3. 更新统计信息
  4. 清理历史记录
  5. 每隔一段时间我就会醒来,发现以下错误(以及不满意的用户!)

      

    导致将varchar数据类型转换为日期时间数据类型   在超出范围的价值。

    我已经发现这是因为其中一个SP缓存计划已经偏斜,即其中一个签名不再正确(它试图将varchar参数强制进入日期时间)。我正在使用LINQ 2 SQL(不能改变它!),这导致各种奇怪和精彩的sp_executesql调用。我知道修复它的唯一方法是在事后执行以下SQL:

    DBCC DROPCLEANBUFFERS
    DBCC FREEPROCCACHE
    

    我有什么想法可以做些什么来阻止这个问题的发生?

0 个答案:

没有答案