我听说DateTime.Now
是非常昂贵的调用(从here)由于DateTime.Now是GETDATE()而昂贵吗?
是SQL 2005/2008昂贵GETDATE()
?如果我的存储过程多次使用它,我是否需要将它缓存到变量中?
我听说DateTime.Now
是非常昂贵的调用(从here)由于DateTime.Now是GETDATE()而昂贵吗?
是SQL 2005/2008昂贵GETDATE()
?如果我的存储过程多次使用它,我是否需要将它缓存到变量中?
它并不昂贵:它直接来自操作系统。
反正我会缓存它。如果您有多个报表,它对于单独的呼叫很可能会有所不同。假设你有多个插入,肯定你想要这个值关联acrosss表?
如果它在SELECT中使用,比如输出,那么通常只会评估一次。
+1“关联acrosss表” – TheVillageIdiot 2009-09-05 12:39:20
谢谢。我可以问一下:今天有用还是最好的拼写错误...? – gbn 2009-09-05 12:42:04
是的!当然! :-) – 2009-09-05 12:52:18
您可以与我们分享您听到“我听说过DateTime.Now”的消息吗? – 2009-09-05 12:49:20
可能来自这个最近的问题:http://stackoverflow.com/questions/1381370/hidden-boxing-in-the-bcl – adrianbanks 2009-09-05 12:59:43
这只是昂贵的,如果你打电话给它很多。 adrianbanks指出的这个问题表明,大约需要500毫秒才能调用datetime.now一百万次。与递增整数或连接一对字符串(我测试它)相比,这非常慢,但仍然不是那么慢。除非你计划在一些时间关键的代码中调用datetime.now几百万次,否则它可能没有关系。 – Kibbee 2009-09-05 18:36:50