我們有一個有趣的表查詢(SQL Server 2008),失敗時顯示不同的字段值。有沒有人見過這個?過濾器值導致查詢失敗
此運行良好(500毫秒)
SELECT ROW_NUMBER() OVER (ORDER BY StatisticNo asc) AS RowId, Statistics.*
FROM Statistics
WHERE myear = 2010
這就完成了很長一段時間後(> 3分鐘)
SELECT ROW_NUMBER() OVER (ORDER BY StatisticNo asc) AS RowId, Statistics.*
FROM Statistics
WHERE myear = 2011
該表包含數據兩者2010和2011年有趣的是它運行良好以及2012年作爲目前爲空集的過濾器選項。我們檢查了規範化的問題,沒有丟失或空數據。 myear字段是必需的數字。
有在表上沒有打開或活動的鎖。這是一個統計表,每天寫一次。
運行`DBCC OPENTRAN dbname`來查看您是否有任何打開的事務。 – 2011-01-27 17:17:46
你有沒有'myear = 2011'的記錄? – Lazarus 2011-01-27 17:18:40
如果在每個查詢之前運行`DBCC FREEPROCCACHE`,會發生什麼?時間如何疊加? – 2011-01-27 17:35:27