powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите пожалуйста как правильно построить кластерный индекс.
5 сообщений из 5, страница 1 из 1
Подскажите пожалуйста как правильно построить кластерный индекс.
    #39882423
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Поправьте меня если я не прав. Мысли в слух...
1. При создании кластерного индекса, данные в таблице упорядочиваются и новые данные добавляются в конец индекса(таблицы).
2. Кластерный индекс я создаю по автоинкрементному полю тип integer, порядок сортировки asc. Соответственно чем новее данные тем дальше они от начала таблицы.
3. В таблице есть поле "дата", это дата добавления строки в таблицу, таблица заполняется несколько лет, соответственно если мне нужны данные за вчерашний день, то мне нужно достать данные из конца индекса(таблицы).
4. Если я переделаю сортировку в кластерном индексе на desc, то я ускорю получение информации которая записывалась недавно, например за вчерашний день.

Правильно я рассуждаю?
...
Рейтинг: 0 / 0
Подскажите пожалуйста как правильно построить кластерный индекс.
    #39882428
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin1. При создании кластерного индекса, данные в таблице упорядочиваются и новые данные добавляются в конец индекса(таблицы).

Нет, новые данные попадают в то место кластерного индекса, куда указывает ключ у вставляемых записей
В частном случае, если ключ монотонно возрастающий, да, в конец индекса.

Mandarin2. Кластерный индекс я создаю по автоинкрементному полю тип integer, порядок сортировки asc. Соответственно чем новее данные тем дальше они от начала таблицы.

Да

Mandarin3. В таблице есть поле "дата", это дата добавления строки в таблицу, таблица заполняется несколько лет, соответственно если мне нужны данные за вчерашний день, то мне нужно достать данные из конца индекса(таблицы).

Да

Mandarin4. Если я переделаю сортировку в кластерном индексе на desc, то я ускорю получение информации которая записывалась недавно, например за вчерашний день.

Зависит от того, как вы будете читать эти данные.

Например, при ask сортировке

Код: sql
1.
2.
3.
4.
5.
select top 1 *
from ...
where 
insert_date = %сегодня%
order by id 


будет сканить почти всю таблицу



Код: sql
1.
2.
3.
4.
5.
select top 1 *
from ...
where 
insert_date = %сегодня%
order by id desc


просканит только последние страницы


Код: sql
1.
2.
3.
4.
select top 1 *
from ...
where 
id = ...


вообще не зависит от сортировки, и всегда считает только по 1-й странице с каждого уровня дерева индекс.
...
Рейтинг: 0 / 0
Подскажите пожалуйста как правильно построить кластерный индекс.
    #39882430
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

Первичный ключ (кластерный индекс) монотонный автоинкремент.
Выборку данных буду делать так
Код: sql
1.
select * from table where field_date betwee @d1 and @d1


Где @d1 и @d1 ближайшие к нам даты.
Индекс по полю field_date есть.
Как будет быстрее работать, когда кластерный индекс сортируется по asc или по desc?
...
Рейтинг: 0 / 0
Подскажите пожалуйста как правильно построить кластерный индекс.
    #39882432
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MandarinmsLex,

Первичный ключ (кластерный индекс) монотонный автоинкремент.
Выборку данных буду делать так
Код: sql
1.
select * from table where field_date betwee @d1 and @d1



Где @d1 и @d1 ближайшие к нам даты.
Индекс по полю field_date есть.
Как будет быстрее работать, когда кластерный индекс сортируется по asc или по desc?

Без разницы.
У вас будет либо full scan кластерного, либо range scan некластерного с lookup-ом в кластерный.
...
Рейтинг: 0 / 0
Подскажите пожалуйста как правильно построить кластерный индекс.
    #39882434
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

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


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