我直接運行查詢,它在本質上是簡單的:數據集超時而查詢運行時立即
SELECT * FROM [dbo].[vwUnloadedJobDetailsWithData] WHERE JobId = 36963
當我運行這個從Management Studio中的查詢甚至不採取第二個。當我從表格適配器中運行它時,它超時。我已經多次修復這個問題,但修復很可笑。如果我從我的xsd文件中刪除表格適配器並重新創建它,查詢時間與管理工作室的查詢時間相匹配大約兩天,但是我必須重新部署它是asinine。
任何有關可能導致此問題的見解將不勝感激。我已經看到另一個關於這個問題,但在查詢之前涉及set arithabort的解決方案對我沒有任何影響。
編輯:有人問我顯示我的代碼調用查詢。現在,這種情況發生,當我進入我的XSD文件,只是做預覽數據爲好,但爲了清楚起見,在這裏它是:
using (TEAMSConnection connection = new TEAMSConnection())
{
connection.OpenConnection();
_JobDetailsDAO jobDetailDao= new _JobDetailsDAO(connection);
return jobDetailDao.GetUnloadedJobDetailsByJobId(jobId);
}
在處置連接的數據庫連接被關閉。使用這行代碼:
if (_DBConnection != null && _DBConnection.State == ConnectionState.Open)
_DBConnection.Close();
EDIT2:我跑了跟蹤和這裏是正在建立
SET QUOTED_IDENTIFIER上 SET ARITHABORT關閉 集NUMERIC_ROUNDABORT關閉 SET ANSI_WARNINGS上 組的設置選項在 集上 集CONCAT_NULL_YIELDS_NULL SET ANSI_NULLS ANSI_PADDING CURSOR_CLOSE_ON_COMMIT關閉 集IMPLICIT_TRANSACTIONS關閉 集語言美國英語 設置日期格式MDY 設置DATEFIRST 7 組的事務隔離級別讀取承諾
我去,並補充說,以我在管理Studio生成查詢,它仍然在不到一秒鐘跑了。我甚至完全按照跟蹤複製了查詢。
exec sp_executesql N'SELECT * FROM [dbo].[vwUnloadedJobDetailsWithData] WHERE JobID = @JobId',N'@JobId int',@JobId=36963
並且它仍然不到第二個返回時間。我非常困惑。
感謝, 喬希
這聽起來像你沒有關閉你的數據庫連接,但很難確定發生了什麼事情,因爲你沒有共享c#代碼。 – 2009-07-22 14:33:38
對不起,沒有太多的代碼可以分享.....只要關閉連接,他們肯定會關閉。如果你認爲它有幫助,我會發布我的查詢和連接處理。 – joshlrogers 2009-07-22 14:35:57