Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UPDATE кластерного индекса 
:(
    Опции темы
MrNoob
Дата 21.5.2010, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



Создал табличку из ~220,000 записей.
Табличка : 
 id INT PRIMARY KEY IDENTITY
 ind INT NOT NULL
 text VARCHAR(50)

для столбца ind создал кластерный уникальный индекс.

Пробую запрос 
Код

UPDATE табличка SET ind = ind + 1
 

отрабатывает он только через 70-80сек.

Делаю не кластерный, отрабатывает за ~5сек.

Вот понять не могу, почемуж кластерный индекс так замедляет? 
Такое чувство, что он работает за квадратную сложность.
Но что он делает... после каждого апдейда что-то сохраняет? перестраивает? ума не прилажу.

Помогите, объясните пожалуйста. 


PM MAIL   Вверх
Zloxa
Дата 21.5.2010, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



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


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
MrNoob
Дата 21.5.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



Да, он физически размещает записи в отсорт. порядке.
Но почему MSSQL это делает так долго?
Ему нужно изменить 220,000 записей, а потом их  сохранить... чего же он это делает 80 сек?
Или я что-то не так понимаю? Есть вообще возможность оптимизации какой?
PM MAIL   Вверх
Zloxa
Дата 21.5.2010, 18:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



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


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
MrNoob
Дата 21.5.2010, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



эмм... я где-то писал, что это ключ оО? 
Это просто поле, по которому построен индекс.
PM MAIL   Вверх
kobra
Дата 23.5.2010, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 5
Всего: 9



Цитата(MrNoob @  21.5.2010,  17:19 Найти цитируемый пост)
Ему нужно изменить 220,000 записей, а потом их  сохранить... чего же он это делает 80 сек?

так и есть. и деиствия не верны.
при масовой модификации индексного поля (клястера) нужно:
1. грохнуть индекс.
2. обновить записи.
3. создать индекс.
PM MAIL   Вверх
MrNoob
Дата 23.5.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



ооо блин... Что-то я и не подумал.
Спасибо большое=)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.2498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.