рекомендовано добавлять или это не обязательно - какое мнение? Я сейчас с базисом контратую и хочу мандат в z индекс :-)
конечно надо, mandt учувствует во всех запросах к таблицам его содержащим. Да и когда ты будешь создавать индекс, система предупредит, если ты mandt не добавишь)
Пока не могу держать оборону, ищу аргументы от сап
Он же у каждой системы уникальный и одинаковый, смысл добавлять в индекс его
Именно, что он не всегда уникальный, иначе смысла бы в нём не было.
ну а если в системе несколько мандатов?
Такого я не встречал
Мандат в индексе это вопрос оптимизации быстродействия, но достаточно частный: если в выборке только поля индекса, т.е. ни в select ни в where нет ничего, кроме полей индекса, то она идёт без соединения индекса с таблицей - все данные можно взять прямо из индекса. Любое поле не из индекса , например, мандант, вынудит sql сервер соединить индекс с таблицей (по внутреннему row id) чтоб получить недостающее поле.
Данные первичного ключа есть в любом индексе, иначе не по чему было бы искать в таблице.
Я же написал - по row id
Нет же, по первичному ключу автоматом строится индекс, но можно добавить ещё и свои индексы с другими полями таблицы, чтобы искать быстрее по ним. Полей первичного ключа в этих добавленных индексах не будет, не нужны они там
какой-то "идентификатор" записи таблицы нужен в любом индексе. по индексу находишь его, по нему в основной таблице остальные данные. в некоторых субд видимо используется суррогатный "row id", я с такими не особо работал. Но как минимум в мс скл это весь первичный ключ.
Пруфы есть? Там не первичный ключ, а ссылка на эту строку в памяти на носителе
Поправка, так мс скл всё-таки работает если есть кластеризованный индекс (а сап их создаёт). https://docs.microsoft.com/ru-ru/sql/relational-databases/sql-server-index-design-guide?view=sql-server-ver15 Для "кучи" да, генерируется суррогатный ключ из данных структуры хранения.
Обсуждают сегодня