我有一個查詢正在從.NET應用程序執行到SQL Server數據庫,並且似乎需要很長時間才能完成(5分鐘以上)。我在c#中創建了一個測試應用程序,試圖查看這麼長時間的討論(查詢應該很快返回)。使用OleDB從.NET查詢SQL Server 2005時的大小寫敏感性
正如我通過加入中的元件以看到哪個部分正在採取只要重建該查詢,我結束了幾乎逐字重構所述查詢,其中,唯一的區別是在原始查詢和一個大寫差的空間。這種差異在約100毫秒內返回了結果。
以前有人看過這個嗎?我想知道服務器中是否有服務關閉(因爲同事有同樣的問題)或我們的電腦上。
在此先感謝您的幫助。
代碼示例以下(末尾在查詢的第一線的差值(fk_source與FK _Source):
//Original
OleDbCommand comm = new OleDbCommand("select min(ctc.serial_no) as MIN_INTERVAL from countstypecode ctc, source s, countstype ct, counts c where ct.value_id=c.value_id and s.c_id=ct.fk_source and " +
"ct.timeinterval=ctc.typename and ct.timeinterval in ('15min','1h','1day') and c.time_stamp >= CONVERT(datetime,'01-01-2008',105) and c.time_stamp < " +
"CONVERT(datetime,'01-01-2009',105) and s.c_id = '27038dbb19ed93db011a315297df3b7a'", dbConn);
//Rebuilt
OleDbCommand comm = new OleDbCommand("select min(ctc.serial_no) as MIN_INTERVAL from countstypecode ctc, source s, countstype ct, counts c where ct.value_id=c.value_id and s.c_id=ct.fk_Source and " +
"ct.timeinterval=ctc.typename and ct.timeinterval in ('15min','1h','1day') and c.time_stamp >= CONVERT(datetime,'01-01-2008',105) and c.time_stamp < " +
"CONVERT(datetime,'01-01-2009',105) and s.c_id='27038dbb19ed93db011a315297df3b7a'", dbConn);
如果你使用SQL Server _AND_淨,這很有道理。 – 2008-09-29 18:37:59
是的,但它的意思是可以與其他數據庫互換,我們只是在SQL服務器中注意到這種行爲,所以我特別詢問了它。 – Fry 2008-10-06 22:25:12