powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кластерный индекс тормозит выборку
4 сообщений из 4, страница 1 из 1
Кластерный индекс тормозит выборку
    #32023568
ChaiNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот прочитал жирную книжку - типа кластерный индекс физически упорядочивает записи, поиск шустрее и т.п. ...
Поставил его на ключевое поле decimal(13) - запросы выборки по связанным полям стали тормознее.. В чем ссуть?
...
Рейтинг: 0 / 0
Кластерный индекс тормозит выборку
    #32023579
Sergey Vinogradov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже bigint не хватило?

Hints:

1. Decimal - не лучший тип данных для первичного/внешнего ключа.

2. В связанных таблицах ПК тоже должны быть кластерными.

3. SQL Server Books Online:
PRIMARY KEY constraints create clustered indexes automatically if no clustered index already exists on the table and a nonclustered index is not specified when you create the PRIMARY KEY constraint.

4. В MS SQL 7/2000 остальные индексы содержат значения кластерного,
поэтому поле с кластерным индексом должно быть небольшого размера (в идеале - int).
...
Рейтинг: 0 / 0
Кластерный индекс тормозит выборку
    #32023649
Chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Sergei

Нда, выглядит ужасно, но на данный момент я юзаю SQL7, гда bigint отсутствует, а ключи уже готовые до 13 знаков в длинну, вводить дополнительное поле int и синхронизировать все таблицы, сами понимаете, гемморрой жестокий. Вот вам ситуация...
...
Рейтинг: 0 / 0
Кластерный индекс тормозит выборку
    #32023694
Sergey Vinogradov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грустно очень.

У нас тоже по неопытности сделали несколько табличек с кривыми ПК, в основном с char(n).
Но потихоньку все перевели на int, потому как достало.

В БОЛ написано что, если определен кластерный индекс,
то остальные индексы ссылаются уже на него.
А если не определен, то ссылаются на некое физическое row ID (RID),
"comprised of the file number, page number, and slot number of the row".

Возможно в вашем случае, как раз этот RID оказывается лучше,
чем decimal(13) - и по размеру, и по скорости.

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


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