Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / bitwise and / 14 сообщений из 14, страница 1 из 1
15.11.2018, 16:14
    #39733637
Гадя Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
Может кто силён в битовых операциях?
Как такое
Код: sql
1.
AND STATUS & (256 | 128) <> 0


Переписать что бы индекс подцепился
...
Рейтинг: 0 / 0
15.11.2018, 16:19
    #39733642
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
Гадя ПетровичМожет кто силён в битовых операциях?
Как такое
Код: sql
1.
AND STATUS & (256 | 128) <> 0


Переписать что бы индекс подцепился
никак, вычисляемое поле и индекс на него
...
Рейтинг: 0 / 0
15.11.2018, 16:32
    #39733654
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
Гадя Петрович
Код: sql
1.
AND STATUS & (256 | 128) <> 0



Посмотреть какие значения STATUS соответствуют указанному выражению и оформить как сравнение с определенным набором значений в IN () или диапазоном значений через >, <, beween.
...
Рейтинг: 0 / 0
15.11.2018, 16:37
    #39733661
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
Sergey SizovГадя Петрович
Код: sql
1.
AND STATUS & (256 | 128) <> 0



Посмотреть какие значения STATUS соответствуют указанному выражению и оформить как сравнение с определенным набором значений в IN () или диапазоном значений через >, <, beween.
все числа с 8 и 9м битом? главное чтобы не BigInt было
...
Рейтинг: 0 / 0
15.11.2018, 16:38
    #39733663
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
может если только чутка помочь ( STATUS >= 128 AND ( STATUS & 256 = 256 OR STATUS & 128 = 128 ))
...
Рейтинг: 0 / 0
15.11.2018, 16:41
    #39733664
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
Sergey Sizovдиапазоном значений через >, <, beween.


STATUS & (256 | 128) - в диапазон не превратишь


Гадя ПетровичМожет кто силён в битовых операциях?
Как такое
Код: sql
1.
AND STATUS & (256 | 128) <> 0



Переписать что бы индекс подцепился

STATUS & (256 | 128) <> 0 - это не SARG предикат, он не может использовать индекс (seek)

возможные варианты вам уже предложили : индексированное вычисляемое поле или джойн на справочник всех возможных статусов с фильтрацией справочника по вашему условию
...
Рейтинг: 0 / 0
15.11.2018, 16:44
    #39733666
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
msLex,

авторсправочник всех возможных статусов с фильтрацией справочника по вашему условию
я когда-то пытался перевести на такую модель... В общем она оправдываетс себя практически никогда, даже в сравнением с вариантом. Разве что на очень коротких типах...
...
Рейтинг: 0 / 0
15.11.2018, 16:44
    #39733667
Гадя Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
ну до перечисления я сам додумался, не очень удобно. За вычисляемое спасибо, попробую
...
Рейтинг: 0 / 0
15.11.2018, 16:46
    #39733670
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
Если всё это действительно применять, то встаёт вопрос: а зачем вообще тогда здесь битовые операции? Изначально.
...
Рейтинг: 0 / 0
15.11.2018, 16:47
    #39733672
Гадя Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
iapЕсли всё это действительно применять, то встаёт вопрос: а зачем вообще тогда здесь битовые операции? Изначально.изначально для того, что разработчики применяют свои не всегда полезные привычки к t-sql коду
...
Рейтинг: 0 / 0
15.11.2018, 16:48
    #39733673
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
TaPaKmsLex,

авторсправочник всех возможных статусов с фильтрацией справочника по вашему условию
я когда-то пытался перевести на такую модель... В общем она оправдываетс себя практически никогда, даже в сравнением с вариантом. Разве что на очень коротких типах...
Зависит от количества реально возможных статусов.
Запросто может быть, что куча битов взаимосвязаны и реальных состояний объекта (даже при 64 битной маске) не более нескольких 1000
...
Рейтинг: 0 / 0
15.11.2018, 17:32
    #39733709
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
Гадя Петрович,

ИМО даже сделать триггер на сохранение изменений с битовой разбивкой по полям будет гуманнее.
...
Рейтинг: 0 / 0
15.11.2018, 17:34
    #39733711
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
Владислав КолосовГадя Петрович,

ИМО даже сделать триггер на сохранение изменений с битовой разбивкой по полям будет гуманнее.
целый триггер? масштабно
...
Рейтинг: 0 / 0
15.11.2018, 17:44
    #39733718
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bitwise and
TaPaK,

может и слишком масштабно :)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / bitwise and / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]