SQL2005 Express медленно из удаленного приложения VB6

Asked
Viewd1157

1

У меня есть устаревшее приложение VB6, созданное с использованием MSDE.

Поскольку базы данных многих клиентов растут до предела MSDE в 2 ГБ, они обновляются до SQL 2005 Express.

Это было очень успешным до сегодняшнего дня.

Я потратил весь день на устранение неполадок в клиентской сети, в которой наше приложение работает неприемлемо медленно, при подключении именованного экземпляра SQL 2005 Express через «сеть».

Я говорю «сеть», потому что это всего две машины XP SP2 - здесь нет выделенного сервера. Нет рекламы.

Пытаясь изолировать эту проблему, я установил SQL 2005 Express на обе машины и разместил копии нашей базы данных на обеих машинах. Я даже полностью переустановил наше приложение, используя теперь имеющуюся процедуру установки SQL2005 Express. Не имеет значения, восстанавливаю ли я старую базу данных MSDE или использую только что созданную базу данных SQL 2005 Express.

При запуске нашего приложения и подключении к локальному серверу любой машины производительность нормальная. После того, как вы подключите наше приложение на любом ПК к серверу на другом ПК, оно станет невероятно медленным. (Независимо от комбинации).

Теперь я перестроил статистику (exec sp_updatestats), перестроил ВСЕ индексы, отключил (временно) брандмауэры и антивирусное программное обеспечение, схватил и множество других соломинок.

Я прибег к запуску FileMon и ProcessMon на обеих машинах и даже написал небольшое тестовое приложение для простого подключения и запроса таблицы в базе данных. Он тоже работает медленно - (подключение занимает около 5-6 секунд).

Мониторы (файл и процесс) показывают задержки, когда SQL Server производит запись в файл журнала (c: \ program files \ microsoft sql server \ mssql.1 \ log files \ log_12.trc).

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

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

Может ли кто-нибудь сказать мне, что я должен делать, чтобы изолировать эту проблему, или даже предложить какие-либо подсказки или предложения, которые могут помочь решить эту проблему?

4 ответов

1

Составьте контрольный список и систематически его прорабатывайте:

Добавьте сюда все предложения по всем сообщениям и некоторые из них, которые я добавляю ниже:

  1. Сетевые кабели
  2. Скорость сети
  3. Дефрагментация жесткого диска
  4. Нет сетевых ошибок - выполните эхо-запрос и найдите пропущенные пакеты.
  5. Оперативная память на машину
  6. Процессоры
  7. Вирусы

и т. д. и т. д.

1

Какие сетевые протоколы вы включили в инструменте «поверхностная настройка»? Можно ли изменить строки подключения для использования (временных) жестко заданных IP-адресов?

1

Вы пробовали подключиться к "серверному" ПК с другого компьютера? Что происходит?

Вы пробовали подключать «клиент» к другой «серверной» машине? Что происходит?

Проблема может заключаться в чем-то столь приземленном, как сетевая карта или кабель.

Наверное, стоит проверить, прежде чем вы будете ломать себе голову дальше ...

1

Это может быть связано с тем, что план запроса в кеше не является репрезентативным для данных, даже если вы перестроили индексы и обновили статистику. Описываемый вами симптом (а именно, что запрос отлично выполняется из SSMS, но не из приложения) часто вызван неправильным кэшированием плана запроса. SSMS выдает сообщение "WITH RECOMPILE" из-под обложек. Если вы вызываете хранимую процедуру, временно добавьте к ее определению «WITH RECOMPILE» и проверьте результаты.