Как вы измеряете значение фактора заполнения SQL

Обычно, когда я создаю индексы для таблиц, я обычно предполагаю, что Fill Factor должно основываться на обоснованном предположении о том, как будет использоваться таблица (много чтений или много записей).

Есть ли более научный способ определения более точного Fill Factor значение?

2 ответа

Решение

Вы можете попробовать запустить большой список реалистичных операций и посмотреть на очереди ввода-вывода для различных действий.

Есть много переменных, которые управляют этим, таких как размер каждой строки и количество записей против чтения.

В основном: высокий коэффициент заполнения = более быстрое чтение, низкий = более быстрая запись.

Однако это не так просто, так как почти все записи будут выполняться в подмножестве строк, которые необходимо найти в первую очередь.

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

Обычно вы видите коэффициент заполнения от 70% (очень высокая запись) до 95% (очень высокая читаемость).

Это что-то вроде искусства.

Я считаю, что хороший способ думать о факторах заполнения - это страницы в адресной книге: чем плотнее вы упаковываете адреса, тем сложнее их изменить, но чем тоньше книга. Я думаю, что объяснил это лучше в моем блоге.

Я бы придерживался мнения, что если вы стремитесь к повышению производительности, ваше время будет гораздо лучше потрачено в других местах: настройка схемы, оптимизация запросов и обеспечение хорошего охвата индекса. Коэффициент заполнения - это одна из тех вещей, о которой вам нужно беспокоиться, только когда вы знаете, что все остальное в вашей системе оптимально. Я не знаю никого, кто мог бы сказать это.

Другие вопросы по тегам