Как вы измеряете значение фактора заполнения SQL
Обычно, когда я создаю индексы для таблиц, я обычно предполагаю, что Fill Factor
должно основываться на обоснованном предположении о том, как будет использоваться таблица (много чтений или много записей).
Есть ли более научный способ определения более точного Fill Factor
значение?
2 ответа
Вы можете попробовать запустить большой список реалистичных операций и посмотреть на очереди ввода-вывода для различных действий.
Есть много переменных, которые управляют этим, таких как размер каждой строки и количество записей против чтения.
В основном: высокий коэффициент заполнения = более быстрое чтение, низкий = более быстрая запись.
Однако это не так просто, так как почти все записи будут выполняться в подмножестве строк, которые необходимо найти в первую очередь.
Например: установите коэффициент заполнения равным 10%, и каждое обновление в одну строку будет занимать в 10 раз больше времени, чтобы найти строку, которую он изменяет, даже если разделение страницы будет очень маловероятным.
Обычно вы видите коэффициент заполнения от 70% (очень высокая запись) до 95% (очень высокая читаемость).
Это что-то вроде искусства.
Я считаю, что хороший способ думать о факторах заполнения - это страницы в адресной книге: чем плотнее вы упаковываете адреса, тем сложнее их изменить, но чем тоньше книга. Я думаю, что объяснил это лучше в моем блоге.
Я бы придерживался мнения, что если вы стремитесь к повышению производительности, ваше время будет гораздо лучше потрачено в других местах: настройка схемы, оптимизация запросов и обеспечение хорошего охвата индекса. Коэффициент заполнения - это одна из тех вещей, о которой вам нужно беспокоиться, только когда вы знаете, что все остальное в вашей системе оптимально. Я не знаю никого, кто мог бы сказать это.