2011-01-11 29 views
0

作爲實現半衰期行爲的一部分,我需要每隔幾天對大約十萬行執行x = x-x/128。 tsql是否足夠聰明,可以有效地進行128除法(作爲位移),還是有效地除以130?在tsql中效率除以128

如果tsql不夠智能,有什麼聰明的辦法可以讓它更有效率嗎?

回答

2

一十萬行是不夠的除法運算和移位操作之間的PERF的差異很可能甚至是可以衡量的。特別是如果你只需要每隔幾天就做一次。最好花時間擔心其他問題。

+0

+1絕對「不成熟的優化...」 – gbn 2011-01-12 05:09:07

0

你可以使用一個計算列與PERSISTED標誌,以確保值物理存儲,而不是重新計算每次他們顯示的時間。這可能(可能取決於你的具體情況)更高效。

0

更像是你會有整數數學的問題。我不知道你的x值是什麼,但是如果它們也是整數,如果你不想要將它除以128.0,那麼就不要將答案四捨五入到最接近的整數。

+0

你是對的,但在這種情況下,我不在乎太多。我仍在考慮是否我想把所有東西都乘以10或100來減少四捨五入的影響並將其保留爲整數,但對於我在做的事情,我並不擔心這些數字是準確的。 – plloyd 2011-01-12 15:25:39