powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужно ли добавлять id пользователя в каждый индекс в базе?
8 сообщений из 8, страница 1 из 1
Нужно ли добавлять id пользователя в каждый индекс в базе?
    #40131825
Alew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет! у меня концептуальнй вопрос. Если каждый пользователь приложения работает только со своими данными, означает ли это, что в каждый индекс первым полем надо добавить id пользователя, чтобы максимально локализовать операции над индексами?

Подразумевается, что селекты возвращают наборы, скажем по 100 строк, с десятком джойнов со справочниками. селекты содержат разные наборы фильтров и сортировку по одному полю.
...
Рейтинг: 0 / 0
Нужно ли добавлять id пользователя в каждый индекс в базе?
    #40131847
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ежели у тя все запросы поголовно имеют

Код: sql
1.
where id = 12345 and ...



То, да, полезно иметь в индексах поле id
...
Рейтинг: 0 / 0
Нужно ли добавлять id пользователя в каждый индекс в базе?
    #40131851
Alew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

да, именно так. Спасибо за ответ!
...
Рейтинг: 0 / 0
Нужно ли добавлять id пользователя в каждый индекс в базе?
    #40131861
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alew
Привет! у меня концептуальнй вопрос. Если каждый пользователь приложения работает только со своими данными, означает ли это, что в каждый индекс первым полем надо добавить id пользователя, чтобы максимально локализовать операции над индексами?

Подразумевается, что селекты возвращают наборы, скажем по 100 строк, с десятком джойнов со справочниками. селекты содержат разные наборы фильтров и сортировку по одному полю.

Вообще, не всегда именно первым полем. Иногда выгодно добавлять вторым полем или в include.
Это зависит еще и от набора значений в том поле, которое участвует в предикате where UserID = XXX and field1 = YYYY
Если индекс по полю field1 более селективный, то field1, UserID будет выгоднее, чем UserID, field1. Может быть даже выгоднее окажется индекс field1 include UserID.
Но, не стоит забывать, что всё это стоит денег. И добавление лишних полей в индекс - приводит к его утяжелению. Так что если по field1 индекс достаточно селективный (и, например - есть жесткая корреляция между значением в поле field1 и UserID) - то можно ограничится индексом по field1, дополнительно построив статистику field1, UserID.
Так что в общем случае можно только сказать, что UserID желательно добавлять в индексы. Но не более.
...
Рейтинг: 0 / 0
Нужно ли добавлять id пользователя в каждый индекс в базе?
    #40131862
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster
Alew
Привет! у меня концептуальнй вопрос. Если каждый пользователь приложения работает только со своими данными, означает ли это, что в каждый индекс первым полем надо добавить id пользователя, чтобы максимально локализовать операции над индексами?

Подразумевается, что селекты возвращают наборы, скажем по 100 строк, с десятком джойнов со справочниками. селекты содержат разные наборы фильтров и сортировку по одному полю.

Вообще, не всегда именно первым полем. Иногда выгодно добавлять вторым полем или в include.
Это зависит еще и от набора значений в том поле, которое участвует в предикате where UserID = XXX and field1 = YYYY
Если индекс по полю field1 более селективный, то field1, UserID будет выгоднее, чем UserID, field1. Может быть даже выгоднее окажется индекс field1 include UserID.
Но, не стоит забывать, что всё это стоит денег. И добавление лишних полей в индекс - приводит к его утяжелению. Так что если по field1 индекс достаточно селективный (и, например - есть жесткая корреляция между значением в поле field1 и UserID) - то можно ограничится индексом по field1, дополнительно построив статистику field1, UserID.
Так что в общем случае можно только сказать, что UserID желательно добавлять в индексы. Но не более.


Осподе, милосердный! Бред то какой.
...
Рейтинг: 0 / 0
Нужно ли добавлять id пользователя в каждый индекс в базе?
    #40131863
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перечитал что написал выше, не очень понравилось :-)
В общем так:
Индекс вида field1, UserID или field1 include UserID - может оказаться существенно более универсальным, чем UserID, field1, а работать будет не хуже, т.к. см. выше.
...
Рейтинг: 0 / 0
Нужно ли добавлять id пользователя в каждый индекс в базе?
    #40131864
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
uaggster
пропущено...

Вообще, не всегда именно первым полем. Иногда выгодно добавлять вторым полем или в include.
Это зависит еще и от набора значений в том поле, которое участвует в предикате where UserID = XXX and field1 = YYYY
Если индекс по полю field1 более селективный, то field1, UserID будет выгоднее, чем UserID, field1. Может быть даже выгоднее окажется индекс field1 include UserID.
Но, не стоит забывать, что всё это стоит денег. И добавление лишних полей в индекс - приводит к его утяжелению. Так что если по field1 индекс достаточно селективный (и, например - есть жесткая корреляция между значением в поле field1 и UserID) - то можно ограничится индексом по field1, дополнительно построив статистику field1, UserID.
Так что в общем случае можно только сказать, что UserID желательно добавлять в индексы. Но не более.


Осподе, милосердный! Бред то какой.

Дододо. Конечно бред.
...
Рейтинг: 0 / 0
Нужно ли добавлять id пользователя в каждый индекс в базе?
    #40131916
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster
Это зависит еще и от набора значений в том поле, которое участвует в предикате where UserID = XXX and field1 = YYYY
Если индекс по полю field1 более селективный, то field1, UserID будет выгоднее, чем UserID, field1.
Для такого предиката вообще без разницы.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нужно ли добавлять id пользователя в каждый индекс в базе?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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