powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Строить индекс или нет
11 сообщений из 11, страница 1 из 1
Строить индекс или нет
    #40076637
Alexander_KM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, коллеги.
Возник теоретический вопрос:
В таблице есть поле INT
Таблица операционная, по ней выборки.
Начиная с какого числа строк надо строить блок статистики?
Начиная с какого количества строк надо строить индекс?

Коллеги, есть какие наработки, опыт в подобной ситуации?
Или где почитать?

Заранее большое спасибо, буду ждать ответов, комментариев.

С уважением.
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076640
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_KM

В таблице есть поле INT

О поле, поле, кто тебя усеял отсутствующими мозгами?

Индекс можно и нужно строить с 0 (нуля) строк.
Ибо он не мешает на малом количестве строк, а когда станет "многа строк" - будет помогать.

Единственное исключение - ежели вы никогда не собираетесь что-либо выбирать из своей таблицы.
Но зачем тогда таблица?
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076645
Alexander_KM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хаму aleks222
- построение индекса занимает какое-то время
- если есть индекс, поиск идет через него
- страница весит 8Кб (MSSQL читает страницами), и если таблица менее этого размера, при наличии индекса операция получается более затратная
- читай BOL и не позорься

Коллеги, у кого есть нормальные соображения по вопросу?
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076660
Alexander_KM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, если никто подобного не делал, сегодня так или иначе сделаю бенч-тест, результаты выложу...
Как всегда на свой вопрос сам и напишу ответ.
Ждите к вечеру...
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076732
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_KM,

Тут достаточно много может быть вводных: какой индекс? какая нагрузка преобладает? какой конечной цели вы хотите добиться?

Уже не помню точно у кого когда то читал то ли Бен Ган толи Рендал рекомендовал почти всегда иметь на таблицах кластерный индекс, но это обуславливалось сравнением куч и кластерного индекса.

Лично для себя я выработал позицию что индекс нужно строить исходя из факта выгоды его использования, если более точно - специфики запросов оперирующих к таблице.

нет никакого профита что на табличке
Код: sql
1.
create table t ([id] int, [key] int, [val] varchar(255), index ix (key)) 

вы построите такой индекс а запросы идут
Код: sql
1.
select val from t where id = @something


в надежде на то что когда то вам понадобится быстрая выборка по колонке key

поэтому вопрос топика уж очень абстрактный

Alexander_KM,
если коротко, ответ на ваш вопрос должен выглядеть так:
видите явно узкие места в запросах/планах стройте индекс, не видите пусть работает.

Если Вы вдруг проектируете сферического коня в вакууме какую то систему в потенциалом что в будущем объемы данных вырастут и вам понадобятся индексы на таблицах, продумайте просто заранее в каких местах будет выигрыш от их использования в зависимости от конкретных запросов.
Понятное дело что не возможно заранее продумать все возможные варианты, но проблемы можно будет решать по мере их поступления.
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076736
Alexander_KM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен, наконец-то умный человек, спасибо за уточнения.
почти дописал сет.
результат выложу сегодня, !!! НО есть хам ...
потому не буду выкладывать код, только результат ...
felix_ffб пишите в почту, передам сет

P.S.
- индекс не кластерный (не кластеризированный)
- таблица - куча
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076743
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_KM,

практика - критерий истины. Нельзя дать точный ответ на неточный вопрос. Задайте точный вопрос.
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076747
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_KM,

что бы не быть голословным вот неплохая статья на тему сравнения куч и кластерных индексов
https://www.sqlshack.com/clustered-index-vs-heap/

а вот размышления Рендала по поводу наличия индексов на таблицах
https://www.sqlskills.com/blogs/paul/over-and-under-indexing-how-bad-is-it-out-there/


зараза не помню в какой статье читал про рекомендацию про кластерные индексы, вроде точно у Пола , он ее в платную подписку чтоли утащил?
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076748
Alexander_KM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен (Владислав Колосов, felix_ff), но есть серверная платформа записи в рамках INT, на ней и были тесты:
- одна страница ~ 622- 625 записи ничего не надо, пусть будет пустая
- две страницы ~ 1244 записи стата рулит
- три страницы ~ > 1866 записей индекс рулит

P.S.
Напоминаю, индекс не кластерный, таблица - куча
Цифры 622, 1244, 1866 - зависят от внутренней й и внешней фрагментации, на 1 - 3 розниться могут

Пользуйтесь.
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076749
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander_KM,

при каких запросах? Простой join такой таблицы с бОльшей приведёт к чему? Правильно, исследуемая таблица будет просканирована столько раз, сколько строк будет отобрано из бОльшей. Отличное решение, ага.

Вы что вообще исследуете? Какая задача или проблема стоит?
...
Рейтинг: 0 / 0
Строить индекс или нет
    #40076781
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кесарь
Alexander_KM,

при каких запросах? Простой join такой таблицы с бОльшей приведёт к чему? Правильно, исследуемая таблица будет просканирована столько раз, сколько строк будет отобрано из бОльшей. Отличное решение, ага.

Вы что вообще исследуете? Какая задача или проблема стоит?


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


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