2009-09-05 48 views
4

我聽說DateTime.Now是非常昂貴的調用(從here由於DateTime.Now是GETDATE()而昂貴嗎?

是SQL 2005/2008昂貴GETDATE()?如果我的存儲過程多次使用它,我是否需要將它緩存到變量中?

+2

您可以與我們分享您聽到「我聽說過DateTime.Now」的消息嗎? – 2009-09-05 12:49:20

+0

可能來自這個最近的問題:http://stackoverflow.com/questions/1381370/hidden-boxing-in-the-bcl – adrianbanks 2009-09-05 12:59:43

+2

這只是昂貴的,如果你打電話給它很多。 adrianbanks指出的這個問題表明,大約需要500毫秒才能調用datetime.now一百萬次。與遞增整數或連接一對字符串(我測試它)相比,這非常慢,但仍然不是那麼慢。除非你計劃在一些時間關鍵的代碼中調用datetime.now幾百萬次,否則它可能沒有關係。 – Kibbee 2009-09-05 18:36:50

回答

6

它並不昂貴:它直接來自操作系統。

反正我會緩存它。如果您有多個報表,它對於單獨的呼叫很可能會有所不同。假設你有多個插入,肯定你想要這個值關聯acrosss表?

如果它在SELECT中使用,比如輸出,那麼通常只會評估一次。

+0

+1「關聯acrosss表」 – TheVillageIdiot 2009-09-05 12:39:20

+1

謝謝。我可以問一下:今天有用還是最好的拼寫錯誤...? – gbn 2009-09-05 12:42:04

+0

是的!當然! :-) – 2009-09-05 12:52:18