Эффективное деление на 128, в цкл - PullRequest
0 голосов
/ 11 января 2011

В рамках реализации поведения с периодом полураспада мне нужно выполнять x = x - x / 128 примерно на сотне тысяч строк каждые несколько дней. Является ли tsql достаточно умным для эффективного деления на 128 (в виде сдвига битов), или же столь же эффективно делить на 130?

Если tsql не достаточно умен, могу ли я сделать что-нибудь умное, чтобы сделать его более эффективным?

Ответы [ 3 ]

2 голосов
/ 11 января 2011

Сто тысяч строк недостаточно, чтобы разница в производительности между операцией деления и операцией сдвига, вероятно, была бы даже измеримой.Особенно, если вам нужно делать это каждые несколько дней.Лучше потратить время на беспокойство о других проблемах.

0 голосов
/ 11 января 2011

Более вероятно, у вас будут проблемы с целочисленной математикой.Я не знаю, каковы ваши значения x, но если они также являются целыми числами, вы хотите разделить на 128.0, если не хотите, чтобы ответ был округлен до ближайшего целого числа.

0 голосов
/ 11 января 2011

Вы можете использовать вычисляемый столбец с флагом PERSISTED, чтобы гарантировать, что значения были сохранены физически и не пересчитывались при каждом их отображении.Это может (возможно, в зависимости от ваших конкретных обстоятельств) быть более эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...