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

Классический сайт asp, случайно медленное соединение с БД

Мы запускаем сайт с классическим asp и ASP.NET MVC 4 (C #) бок о бок. Во время высокого трафика запросы к базе данных выполняются очень медленно на страницах asp. В то же время на одном сайте страницы C # всегда нормально подключаются к одной и той же БД. Использование ЦП, памяти и сети на обоих серверах в норме (мощное оборудование / соединение).

Сайт годами без каких-либо проблем работал с одной и той же настройкой и загрузкой трафика, такое поведение началось около недели назад. Кто-нибудь знает, что может быть не так?

Сервер БД: SQL Server 2012 Web Edition

Веб-сервер: Windows Server 2012 IIS 8.0

Connection string:
conn.connectionString = "Provider=SQLNCLI11;Persist Security Info=True;User ID=abc;Password=abc;Initial Catalog=sampledb;Data Source=192.168.10.11"

Пример времени загрузки (мс) в журнале сервера iis:

2015-09-05 18:00:07  23642  /page.asp
2015-09-05 18:00:07  13547  /page.asp
2015-09-05 18:00:07  93     /ASP.NET
2015-09-05 18:00:07  11172  /page.asp
2015-09-05 18:00:07  78     /ASP.NET
2015-09-05 18:00:07  578    /ASP.NET
2015-09-05 18:00:07  10828  /page.asp
2015-09-05 18:00:07  32252  /page.asp
2015-09-05 18:00:07  13641  /page.asp

Иногда для asp-страниц лучше использовать числа:

2015-09-05 18:07:30  218    /page.asp
2015-09-05 18:07:30  3281   /page.asp
2015-09-05 18:07:30  46     /page.asp
2015-09-05 18:07:30  2375   /page.asp
2015-09-05 18:07:30  78     /page.asp
2015-09-05 18:07:30  46     /ASP.NET
2015-09-05 18:07:30  203    /ASP.NET
2015-09-05 18:07:30  2906   /page.asp
2015-09-05 18:07:30  1781   /page.asp

Запросы Asp обычно просто медленные, но иногда мы получаем ошибку:

Microsoft SQL Server Native Client 11.0 error '80040e31'
Query timeout expired

Тестовая страница .asp, выполняющая шесть идентичных SQL-запросов, с общим временем загрузки страницы в секундах. Один запрос занимает 13 секунд, другие почти мгновенно. При следующем запуске другой запрос выполняется медленно, иногда все они выполняются быстро.

Query 1: 0
Query 2: 0,3554688
Query 3: 0,375
Query 4: 13,32813
Query 5: 13,32813
Query 6: 13,32813

Установите SQL Server Management Studio на свой веб-сервер (или другой компьютер в той же сети) и выполните несколько запросов, которые выполняет ваше приложение.

Включите вашу клиентскую статистику. Они могут сказать вам, что происходит.

Чем больше вы его запускаете, тем больше статистики он будет собирать и показывать вам