2011-01-11 4 views
0

半減期の動作の一部として、数日ごとに約10万行にx = x-x/128を実行する必要があります。 tsqlは128で効率的に(ビットシフトとして)除算を実行するのに十分スマートですか、それとも130で除算するのと同じくらい効果的ですか?効率的な128による除算、tsql

tsqlが十分にスマートでない場合は、より効率的にするために私ができることはありますか?

答えて

2

十万行では不十分であるため、除算演算とシフト演算の間の差異の差はおそらく測定可能ですらありません。特に数日おきにそれを行うだけならば、特にそうです。他の問題について心配する時間を費やすことをお勧めします。

+0

+1絶対に早すぎる最適化... – gbn

0

PERSISTEDフラグを持つ計算列を使用して、値が物理的に格納され、表示されるたびに再計算されないようにすることができます。それは(おそらく、あなたの特定の状況に応じて)より効率的である可能性があります。

0

さらに整数計算に問題があります。私はあなたのxの値が何であるか分からないが、もし整数でもなければ、128.0で除算したい。答えを最も近い整数に丸めたい。

+0

あなたは正しいですが、この場合はあまり気にしません。私は、丸めの影響を減らして整数に保つために、すべてを10または100倍にしたいかどうかについてはまだ検討していますが、私がしていることについては正確な数値が心配されていません。 – plloyd

関連する問題