Назад | Перейти на главную страницу

Почему ввод-вывод SQL Server намного медленнее, чем емкость диска?

Я запускаю SQL Server 2012 и выполняю простой запрос SELECT *, я вижу, что мой дисковый ввод-вывод в мониторе производительности составляет <10 МБ / с. Однако если я сделаю резервную копию базы данных, я вижу значения> 200 МБ / с.

Почему сервер sql так медленно получает данные за меня?

Причина, по которой вы видите только 10 МБ / с, заключается в том, что эти счетчики производительности смотрят данные от одной секунды до следующей, а не на отдельные действия в одном временном интервале. Таким образом, ваш запрос мог получить 10 МБ менее чем за секунду, но это будет регистрироваться в системном мониторе только как 10 МБ / с.

Резервная копия перемещает большие объемы данных по всем направлениям, поэтому они регистрируются на полной скорости диска. Если бы он мог регистрировать дисковые операции ввода-вывода для отдельных действий, он, вероятно, сказал бы 200 МБ / с или что-то подобное, возможно, даже больше для небольших пакетов данных, поскольку скорость становится практически невозможной для небольших пакетов.

Надеюсь это поможет.

Оказывается, все мои чтения из запроса поступали прямо из памяти, а не с диска. Я смог определить это, выполнив следующую команду перед запросом:

SET STATISTICS IO ON

После этого я выполнил запрос и посмотрел на вкладку сообщений для статистики. Логическое чтение - из памяти, физическое - с диска.