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

Медленная потеря подключения к SQL Server 2005

У клиента есть опасно открытый экземпляр SQL Server 2005. VB.NET 1.1 без проблем подключается к нему с другого сервера. Включение брандмауэра Windows с портом 1433, открытым для подсетей, кажется лишь временным решением.

БД вроде нормально, но через час начинает тормозить ... Как будто теряет соединения из своего пула. В конце концов, из приложения или других инструментов невозможно установить соединение.

Требует ли SQL Server открытия других портов?

Парень с Linux чешет затылок.

Запустите sp_who2, чтобы узнать, кто подключен и что они используют.

JR

Предполагая, что вы используете SQL Server со значениями по умолчанию, тогда 1433 должен быть единственным портом, который вам нужно открыть.

О части замедления - используйте мой Руководство по мониторингу Perfmon для сбора статистики о SQL Server. Отсюда мы можем определить, какая часть сервера является узким местом. Если хотите, соберите статистику, как показано в статье, в течение нескольких минут, пока сервер работает быстро, а затем еще раз, пока сервер работает медленно. Сбор этой статистики не влияет на производительность. Затем отправьте файлы мне на brento@brentozar.com, и я смогу довольно быстро определить, где находится узкое место.

SQL Server предоставляет возможность отслеживать открытые соединения в «SQL Server Management Studio». Я бы хотел убедиться, что соединения не открываются и не остаются открытыми из приложения. Поскольку, если приложение явно не закрывает соединение, оно может оставаться открытым до тех пор, пока сборщик мусора не решит окончательно очистить объект и освободить соединение обратно в пул.

Другой способ проверить, происходит ли это, - подождать, пока приложение больше не сможет подключиться. В этом состоянии, если перезапуск приложения решает эту проблему, вероятно, проблема связана с кодом приложения.

Когда соединения больше не возможны, можно ли подключиться локально на приставке? В таком случае попробуйте снова подключиться с помощью Management Studio, но вместо использования «Совместно используемой памяти» используйте «TCP / IP».

Если последнее не сработает, я бы действительно исследовал ситуацию с брандмауэром. Однако я бы не стал связывать настройку брандмауэра с «потерей связи со временем».