Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 долгое чтение из таблицы  [new]
STsarionov
Member

Откуда:
Сообщений: 105
доброго времени суток.
Описание:
Было замечено очень долгое чтение из таблицы (40кк записей, 70гб объем), долгое - это 300к записей за 5-8 минут, причем процессоры не загружены, диски тоже. А в ожидании ресурса висит PAGEIOLATCH_SH. Таблица без кластерного индекса, но с 5 некластерными.
Что сделал: добавил кластерный индекс, чтение ускорилось в разы, 1кк записей за 22 секунды, причем даже после удаление кластерного индекса.
Вопрос: почему так сработало? неужели данные были на столько фрагментированы, что сервер по крупицам собирал информацию откуда ему читать эти данные.

И еще замечание, когда не было кластерного индекса, чтение с диска шло блоками по 16к, когда его создал, сервер стал читать по 64к как и положено.

SQL Server 2008 R2
23 май 13, 17:52    [14340357]     Ответить | Цитировать Сообщить модератору
 Re: долгое чтение из таблицы  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
STsarionov
...неужели данные были на столько фрагментированы, что сервер по крупицам собирал информацию откуда ему читать эти данные...

Ну, дык, почему не посмотрели фрагментацию ДО?
24 май 13, 06:28    [14342075]     Ответить | Цитировать Сообщить модератору
 Re: долгое чтение из таблицы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
STsarionov
Вопрос: почему так сработало? неужели данные были на столько фрагментированы, что сервер по крупицам собирал информацию откуда ему читать эти данные.

И еще замечание, когда не было кластерного индекса, чтение с диска шло блоками по 16к, когда его создал, сервер стал читать по 64к как и положено.
Похоже действительно из за фрагментации.
24 май 13, 10:12    [14342897]     Ответить | Цитировать Сообщить модератору
 Re: долгое чтение из таблицы  [new]
gang
Member

Откуда:
Сообщений: 1394
STsarionov
И еще замечание, когда не было кластерного индекса, чтение с диска шло блоками по 16к, когда его создал, сервер стал читать по 64к как и положено.

Чем и на чём замеряли?
24 май 13, 10:15    [14342925]     Ответить | Цитировать Сообщить модератору
 Re: долгое чтение из таблицы  [new]
STsarionov
Member

Откуда:
Сообщений: 105
может вопрос дурацкий, но чем посмотреть фрагментацию кучи?
Чем замеряли не знаю, данные о чтении с дискового массива мне давал наш админ.
27 май 13, 09:17    [14352128]     Ответить | Цитировать Сообщить модератору
 Re: долгое чтение из таблицы  [new]
Гость333
Member

Откуда:
Сообщений: 3683
STsarionov
может вопрос дурацкий, но чем посмотреть фрагментацию кучи?

Лучше вот это почитайте: A SQL Server DBA myth a day: (29/30) fixing heap fragmentation
27 май 13, 10:36    [14352523]     Ответить | Цитировать Сообщить модератору
 Re: долгое чтение из таблицы  [new]
STsarionov
Member

Откуда:
Сообщений: 105
Гость333
STsarionov
может вопрос дурацкий, но чем посмотреть фрагментацию кучи?

Лучше вот это почитайте: A SQL Server DBA myth a day: (29/30) fixing heap fragmentation


может и миф, но ведь прирост скорости на лицо.
27 май 13, 10:50    [14352627]     Ответить | Цитировать Сообщить модератору
 Re: долгое чтение из таблицы  [new]
Гость333
Member

Откуда:
Сообщений: 3683
STsarionov,

Там суть в другом: лучше бы создать на таблице кластерный индекс и потом его не трогать.
С какой целью у вас довольно большая таблица является кучей, а не кластерником?
27 май 13, 11:03    [14352735]     Ответить | Цитировать Сообщить модератору
 Re: долгое чтение из таблицы  [new]
STsarionov
Member

Откуда:
Сообщений: 105
Гость333
STsarionov,

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


уже поругался на программистов, сделали на ней кластерный индекс.

Но эффект очень интересный, не думал, что фрагментация способна на такой достаточно небольшой таблице устроить такие тормоза.

Спасибо откликнувшимся:)
27 май 13, 11:08    [14352780]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить