SQL2005 Express медленный из удаленного приложения VB6 - PullRequest
1 голос
/ 29 сентября 2008

У меня есть устаревшее приложение 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 голос
/ 29 сентября 2008

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

1 голос
/ 29 сентября 2008

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

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

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

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

1 голос
/ 29 сентября 2008

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

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

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

и т.д.. и т.д., * * тысяча двадцать-один

1 голос
/ 29 сентября 2008

Это может быть связано с кэшированным планом запроса, который не является представителем данных, даже при том, что вы перестроили индексы и обновили статистику. Симптом, который вы описываете (а именно, что запрос выполняется нормально из SSMS, но не из приложения), часто вызван неверно кэшированным планом запроса. SSMS испускает «С РЕКОМЕНДУЕМЫМ» под крышками. Если вы вызываете хранимую процедуру, временно добавьте 'WITH RECOMPILE' к ее определению и проверьте результаты.

...