2009-12-01 2 views
6

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

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

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

+0

Интересная тема. Мне тоже любопытно. – Ben

+0

+1 да, спокойный интересный ... с нетерпением жду ответа. – Saar

+2

Пришлось посмеяться над этим. В любой момент времени Stack Overflow получает тысячи пакетных запросов. У нас есть клиент, выполняющий более 100 тыс. Пакетных запросов в секунду, поддерживаемых круглосуточно. –

ответ

6

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

+0

Я использую linq и .net для вставки запросов, но не могу поймать никаких исключений – MemoryLeak

3

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

+0

Я просто использую linq для вставки записей. – MemoryLeak

3

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

Включить журнал контекста данных, как это:

datacontext.Log = Console.Out; 

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

0

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