Сколько запросов может обрабатывать SQL Server в секунду?

Я использую JMeter для проверки производительности нашего приложения. но я обнаружил, что когда я отправляю 20 запросов из JMeter, по этой причине результат должен быть добавлен 20 новых записей на сервер sql, но я просто нахожу 5 новых записей, что означает, что сервер SQL отбрасывает другие запросы (потому что я взял журнал и убедитесь, что вставляемые новые записи отправляются на сервер sql.)

У кого-нибудь есть идеи? Какое пороговое количество запросов может обрабатывать SQL-сервер в секунду? Или мне нужно сделать некоторые настройки?

Ага, в своем приложении пробовал, но вроде принимает только 5 запросов, не знаю как настроить, тогда может принимать больше.


person MemoryLeak    schedule 01.12.2009    source источник
comment
Интересная тема, мне тоже интересно.   -  person Ben Fransen    schedule 01.12.2009
comment
+1 да, тихо интересно... жду ответа.   -  person Saar    schedule 01.12.2009
comment
Пришлось посмеяться над этим. В любую секунду Stack Overflow получает тысячи пакетных запросов. У нас есть клиент, который круглосуточно выполняет более 100 000 пакетных запросов в секунду.   -  person Brent Ozar    schedule 31.10.2014


Ответы (6)


Я не уверен, что количество запросов в секунду напрямую связано с тем, что SQL-сервер отбрасывает ваши вставки. Возможно, есть логическая ошибка приложения, которая откатывает или не фиксирует вставки. Или приложение не справляется с параллелизмом и вставляет данные, нарушающие ограничения. Я бы также проверил журналы сервера на наличие взаимоблокировок.

person nos    schedule 01.12.2009
comment
Я использую linq и .net для вставки запросов, но не могу поймать ни одного исключения. - person MemoryLeak; 01.12.2009

Используйте либо SQL Profiler, либо контекст данных LINQ для ведения журнала, чтобы увидеть, что на самом деле было отправлено на сервер, а затем определить, в чем проблема.

Включите журнал контекста данных следующим образом:

datacontext.Log = Console.Out;

Кстати, я обрабатывал 10 000 транзакций в секунду в SQL Server, так что я не думаю, что это проблема.

person Jonas Lincoln    schedule 01.12.2009

Это очень зависит от того, какой тип запросов вы делаете. У вас может быть много запросов, запрашивающих данные, которые уже находятся в буфере, так что доступ для чтения к диску не требуется, или вы можете иметь чтения, которые фактически требуют доступа к диску. Если ваша база данных небольшая и у вас достаточно памяти, вы можете постоянно хранить все данные в памяти - тогда доступ будет очень быстрым, вы можете получить более 100 запросов в секунду. Если вам нужно прочитать диск, вы зависите от вашего оборудования. Я выбрал контроллер UltraSCSI-160 с дисками UltraSCSI-160, самый быстрый вариант, который вы можете получить на платформе типа ПК. Каждую ночь я обрабатываю около 75 000 записей (они загружаются с другого сервера). Для каждой обрабатываемой записи программа делает от 4 до 10 запросов, чтобы поместить новую запись в правильный «слот». Весь процесс занимает около 3 минут. Я запускаю это на машине AMD Athlon 850 МГц с 768 МБ ОЗУ. Надеюсь, это даст вам небольшое представление о скорости.

person Pieter888    schedule 01.12.2009
comment
Я просто использую linq для вставки записей. - person MemoryLeak; 01.12.2009

Это старый учебный случай, сейчас 2017, а 2019 жду, что будет дальше

https://blogs.msdn.microsoft.com/sqlcat/2016/10/26/how-bwin-is-using-sql-server-2016-in-memory-oltp-для-достижения-беспрецедентно-производительность-и-масштаб/

SQL Server 2016 1 200 000 пакетных запросов в секунду Оптимизированная для памяти таблица с поддержкой больших объектов, скомпилированные в собственном коде хранимые процедуры



введите здесь описание изображения

person Valentin Petkov    schedule 09.09.2019

Чтобы получить тесты производительности SQL Server и других СУБД, посетите Processing Performance Council Web

person kevchadders    schedule 01.12.2009

Вы также можете использовать профиль Sql Server, чтобы проверить, как выполняются ваши запросы.

person Florim Maxhuni    schedule 01.12.2009