Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кластерный индекс тормозит выборку / 4 сообщений из 4, страница 1 из 1
20.02.2002, 19:06
    #32023568
ChaiNik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластерный индекс тормозит выборку
Вот прочитал жирную книжку - типа кластерный индекс физически упорядочивает записи, поиск шустрее и т.п. ...
Поставил его на ключевое поле decimal(13) - запросы выборки по связанным полям стали тормознее.. В чем ссуть?
...
Рейтинг: 0 / 0
21.02.2002, 03:33
    #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
21.02.2002, 11:31
    #32023649
Chainik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластерный индекс тормозит выборку
2Sergei

Нда, выглядит ужасно, но на данный момент я юзаю SQL7, гда bigint отсутствует, а ключи уже готовые до 13 знаков в длинну, вводить дополнительное поле int и синхронизировать все таблицы, сами понимаете, гемморрой жестокий. Вот вам ситуация...
...
Рейтинг: 0 / 0
22.02.2002, 02:52
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кластерный индекс тормозит выборку / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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