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

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

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

14.08.2008 12:07:27
2 ОТВЕТА
РЕШЕНИЕ

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

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

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

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

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

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

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

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

12
14.08.2008 12:19:17

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

2
14.08.2008 12:49:32