Size: a a a

2021 December 03

_

_Д_ in DotNetRuChat
Такая задача: таблица и много записей в ней. Поля А, B, C. Поле В битовое. Нужно сделать два отчета. первый по равенству полей А = х и В=1 либо 0,  
Второй отчёт по полям В равный 0 Либо 1 и полю С раным х.
Есть ли смысл в двух составных индексах первый: на поле А и В, а второй на поле В и С? Смущает что поле В битовое
источник

AH

Ayrat Hudaygulov in DotNetRuChat
если ты спрашиваешь про смысл индексов, ты наверное посмотрел планы запросов и тебя что-то в них не устроило, да?
источник

_

_Д_ in DotNetRuChat
Это просто вопрос с собеса. И я так сказать теоретически размышляю
источник

AH

Ayrat Hudaygulov in DotNetRuChat
Ну вот я бы на собесе попросил бы мне планы запросов показать.
источник

_

_Д_ in DotNetRuChat
А если без них?) верно рассуждаю что два составных ключа по двум полям в принципе ок решение?
источник

AH

Ayrat Hudaygulov in DotNetRuChat
без планов никто про индексы не рассуждает.
источник

AH

Ayrat Hudaygulov in DotNetRuChat
вообще никто
источник

_

_Д_ in DotNetRuChat
В mindbox другого мнения :(
источник

С

Сергей in DotNetRuChat
+
источник

AH

Ayrat Hudaygulov in DotNetRuChat
потому что СУБД настолько глубокая и непрозрачная вещь что ты думаешь "о, у меня индекс", а СУБД "а мне похуй, я тут SeqScan сделаю"
источник

AH

Ayrat Hudaygulov in DotNetRuChat
и сек скан она делает потому что [миллион факторов]
источник

С

Сергей in DotNetRuChat
можно и 1 ключ на все 3 поля сделать, но лучше поделать разные варианты и смотреть
источник

С

Сергей in DotNetRuChat
только с живыми данными и запросами
источник

_

_Д_ in DotNetRuChat
Вынуждаешь меня сделать таблицу большую и потестить самому в мс скл
источник

С

Сергей in DotNetRuChat
конечно
источник

С

Сергей in DotNetRuChat
иначе смысла 0
источник

D

Denisio in DotNetRuChat
и там тоже могут быть варианты
источник

J

Jhayphal in DotNetRuChat
Все условия соединений должны иметь индексы
Есть рекомендации на этот счет
Погугли
С планом запроса каждый может
источник

D

Denisio in DotNetRuChat
не говоря уже о том что там под именем table1 может быть индексированное представление со schemabinding
источник

D

Denisio in DotNetRuChat
или партиционированная таблица а ты попал в самый херовый парт
источник