2017-08-08 138 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上的時間。插入會慢一點,而選擇會快一點。

除非您爲數百萬條記錄做這件事,否則我不認爲它會產生真正的效果。