Помимо практических пунктов администрирования, которые вы уже получили, и подозрительное сомнительное использование отрицательных идентификаторов для представления атрибутов модели данных, здесь также имеется веский вопрос: дать таблицу с идентификаторами int от 0 до N, вставив новые отрицательные значения, будут ли эти ценности идти и будут ли они вызывать дополнительные расщепления?
Исходные строки будут размещены на листах страниц с кластеризованным индексом, строка с идентификатором 0 на первой странице и строка с идентификатором N на последней странице, заполняя страницы между ними. Когда вставлена первая строка со значением -1, она будет сортировать опережающую строку с id 0 и, как таковая, добавит новую страницу в дерево (на самом деле будет выделять 8 страниц, но это другая точка) и свяжет страницу перед листом, связанным списком страниц. Это НЕ приведет к расколу страницы на первой странице. При последующих вставках значений -2, -3 и т. Д. Они перейдут на одну и ту же новую страницу, и они будут вставлены в правильное положение (-2 впереди -1, -3 впереди -2 и т. Д.), Пока страница не заполнится. Дальнейшие вставки добавят новую страницу вперед, которая будет соответствовать новым новым значениям. Вставки положительных значений N + 1, N + 2 будут отображаться на последней странице и помещаться в нее до тех пор, пока она не заполнится, затем они добавят новую страницу и начнут заполнять эту страницу.
Итак, в основном, ответ таков: вставки на любом конце кластерного индекса не должны вызывать разбиение страниц. Разбиение страницы может быть вызвано только вставками между двумя существующими ключами. Это фактически распространяется и на страницы, не связанные с листом, индекс на обоих концах кластера также не может разделить нестраничную страницу. Я не обсуждаю здесь влияние обновлений, конечно (они могут вызвать расщепления, если увеличить длину столбца переменной длины).
В последнее время было много разговоров в блогосфере SQL Server о потенциальных проблемах производительности разделов страниц, но я должен предостеречь от ненужных крайностей, чтобы избежать их. Разделение страниц - это нормальная операция индекса. Если вы окажетесь в среде, в которой поражение производительности разделяется на страницы во время вставок, вы, вероятно, будете хуже пострадать от мер «смягчения», потому что вы создадите искусственные горячие точки для защелок, которые намного хуже, чем они будут затрагивают каждый вставка. То, что - это, верно, что длительная работа с частыми расщеплениями приведет к высокой фрагментации, которая влияет на время доступа к данным. Я говорю, что лучше всего смягчить с помощью операции по обновлению периодических индексов (реорганизация). Избегайте преждевременных оптимизаций, всегда измерьте сначала.
100% -ный коэффициент заполнения определенно не является отличным выбором для кластерного индекса, как обозначил Митч, но это не связано с позитивными или отрицательными значениями INT. –