Я получил этот намек от mssqlcity.com. Однако я не могу понять его объяснения.
Избегайте создания кластерного индекса на основе инкрементирующего ключа
Например, если таблица имеет суррогат целочисленный первичный ключ, объявленный как ИДЕНТИФИКАЦИЯ и кластеризованный индекс созданный в этом столбце, то каждый временные данные вставляются в эту таблицу, строки будут добавлены в конец стол. Когда много строк будут добавлено "горячее пятно". Горячий spot "возникает, когда многие запросы пытаются чтение или запись данных в том же в то же время." Горячая точка" приводит к Узкое место ввода-вывода. Заметка. По умолчанию SQL Сервер создает кластерный индекс для ограничение первичного ключа. Итак, в этом случае, вы должны явно указать NONCLUSTERED, чтобы указать, что некластеризованный индекс создается для ограничение первичного ключа.
Прежде чем я прочитал это, я подумал, что если я выберу случайный по своему характеру столбец, это не правильно, потому что это вызовет ненужное перемещение страницы при добавлении новой строки. Итак, я думаю, что использование отсортированного столбца предпочтительнее.
После прочтения этого намека я думаю, что он пытается сказать, что мы действительно не хотим использовать отсортированный столбец, который является нашим кластеризованным индексом, либо потому, что будет узкое место ввода-вывода для приложений с интенсивным записью.
Я действительно не понимаю причину узкого места ввода-вывода, о котором они говорят. Говорят ли, что слишком много операций, разделяющих одну и ту же страницу, замедляют работу диска? Как это произошло? Может кто-нибудь объяснить мне?