我有我在走了太多的時間C#正在執行一個查詢:編譯與LINQ查詢內置SQL函數
string Query = "SELECT COUNT(HISTORYID) FROM HISTORY WHERE YEAR(CREATEDATE) = YEAR(GETDATE()) ";
Query += "AND MONTH(CREATEDATE) = MONTH(GETDATE()) AND DAY(CREATEDATE) = DAY(GETDATE()) AND USERID = '" + EmployeeID + "' ";
Query += "AND TYPE = '5'";
我然後使用SqlCommand的命令=新的SqlCommand(查詢,連接)和SqlDataReader Reader = Command.ExecuteReader()來讀取數據。這從C#執行需要一分多鐘,但在SSMS中更快。
我從谷歌搜索看到,你可以用CompiledQuery做些事情,但我很困惑我是否仍然可以使用內置的SQL函數YEAR,MONTH,DAY和GETDATE。
如果任何人都可以向我展示如何使用內置函數創建和調用編譯查詢的示例,我將非常感謝!提前致謝。
您是說從同一臺機器上運行的SSMS上花費一分鐘時間從C#運行的完全相同的SQL要快得多嗎? – Gabe 2010-03-30 21:07:25
這與linq-to-sql有什麼關係? – 2010-03-30 21:08:39
@gabe:是的,同一臺機器。 @Sam:對不起,如果我感到困惑。我對這個主題不是很瞭解,也不是我自稱的。我放下了Linq-To-Sql,因爲CompiledQuery庫位於System.Data.Linq中,我正在使用它來編譯SQL。這是否太過分了? – Brandi 2010-03-30 21:16:08