Уточнить мой комментарий к ответу Ptolemy's...
Путем установки размера блока, таким образом, очень значительное большинство каждого файла содержится в одном блоке, Вы действительно получаете эффективность ввода-вывода. С 2K размером блока и 8.5K средний размер файла, 50% Ваших операций ввода-вывода будут к 5 блокам или больше. Путем установки 16K размера блока это кажется, что очень значительное большинство записей было бы к единственному блоку; который сделал бы те 3% из чтений намного более эффективными, когда они происходят.
Одной вещью рассмотреть является резервный ввод-вывод. При резервном копировании данных каждый файл будет считан, по крайней мере, однажды, и их записи каталога будут исследоваться каждая резервная передача. Если Вы собираетесь создать резервную копию этого, рассмотрите резервный ввод-вывод в своих проектах.
Протесты: если Ваша базовая система хранения является той, которая уже делает некоторую виртуализацию хранения (такую как дисковый массив HP EVA или другие массивы того класса) затем, это не имеет значения так. Фрагментация этого типа не будет замечена, поскольку данные уже физически существуют в высоко фрагментированной природе на фактических дисках. В этом случае 2k размер блока очень хорошо и не будет влиять на производительность как очень. Все еще будет увеличение производительности путем выбора размера блока, достаточно большого для содержания большинства ожидаемых размеров файла, но величина не будет столь же значительной.
Это означает, что у Вас есть чрезвычайно субоптимальный запрос. Обычные подозреваемые:
Это могла также быть простая проблема ресурса: данные возвратили касание вся база данных, таким образом, это использует слишком много памяти, что Вы получаете подкачку страниц? Или Вы добираетесь, ASYNC_NETWORK_IO ожидает, который может означать, что клиент не принимает результаты с такой скоростью, как он должен?
Обычно, если Вы истратили сервер затем, это - плохой код и/или дизайн, не механизм DB.
Пока Вы уверены, что оптимизировали насколько Вы можете, можно хотеть посмотреть настройки для параллелизма; значение по умолчанию должно использовать все процессоры для параллельных запросов, Вы могли изменить его, чтобы истратить в более низком количестве в зависимости от количества процессоров, которые Вы имеете, запрос может взять немного дольше для выполнения, но оно должно оставить достаточно вычислительной мощности свободным обслужить запросы входа в систему. Если проблема изолируется к этому запросу, вместо того, чтобы внести изменение настроек в масштабе всей системы, у Вас может быть свое изменение colleage его запрос путем добавления опции MAXDOP видеть, помогает ли это.