2017-08-08 139 views
1

这是我的第一个问题...Tsql日期计算效率

在工作中,我们做了大量基于时差的计算。在几秒钟内计算DateDiff()并将其作为新列插入到表中,还是在运行报表时计算DateDiff()更具成本效益?

我们有一个表,大致是这样的......

ID | Person | Time In   | Time Out   | 
1 | Jon | 10:00 08/08/2017 | 12:00 08/08/2017 | 

我们生产了很多基于对数百或数千人的时间差报告。

谢谢!

+0

将IMO [计算列](https://technet.microsoft.com/en-us/library/ms191250(v = sql.105).aspx)添加到表格中,以保留索引的分钟;并且不需要更新代码。这会稍微减慢插入/更新的速度,同时启用分钟级别的报告以更轻松/更高效。但是,如果这不是一个选项,你想考虑我会在报告方面看看它。 – xQbert

+0

如果您计算,运行报告时报告可能会稍微慢一点,而不仅仅报告1:1的值。另一方面,插入的速度会更快,因为您不必计算值。当然是另一种方式。如果稍微慢一些的插入物不会损害您的解决方案,请在插入时进行。 –

+0

这个问题是关于知觉。需要完成的工作是一样的。因此在这里确实不是一个很好的问题,因为会有很多意见。 3 – xQbert

回答

0

如果为时差添加新列,您将花费在INSERT上的时间花费在SELECT上的时间。插入会慢一点,而选择会快一点。

除非您为数百万条记录做这件事,否则我不认为它会产生真正的效果。