2010-10-19 4 views
3

У меня есть приложение с интерфейсом в Access 2007 (файл Access 2000) с бэкэнд на SQL Server 2008. Приложение работает уже два года, и я заметил, что на некоторых ПК запросы навсегда бегают, а на других он работает довольно быстро. Каждый ПК имеет свой собственный файл Access, поэтому они не делят файл.Запросы доступа выполняются медленно

Простые запросы с помощью только одной таблицы занимают много времени. Самая большая таблица имеет 578 000 записей.

Иногда для загрузки простой таблицы всего за 6 записей требуется 10 секунд. Мы находимся в гигабитной сети.

+0

Я ничего не изменил в базе данных за последний год. Недавно я заметил, что запросы выполняются медленно, за исключением сервера, на котором также включен SQL Server. Он находится в другом домене. – Rick

+1

Так что скажем, что неделю назад он бежал «быстро». Что изменилось. Вы обновили SQL Server? Ваша сеть была обновлена? Что здесь происходит? – Kuberchaun

+0

Сервер был обновлен с SQL Server 2005 до 2008 года. Я не могу точно сказать, в какой момент он замедлился, но это похоже на проблему связи. – Rick

ответ

0

Я удалил связанные таблицы в Access и добавил их снова. Казалось, это значительно улучшило время запроса.

Какой драйвер лучше для подключения к SQL Server 2008: Собственный клиент SQL Server 10.0 v.2007.100.2531.00 или SQL Server v 2000.85.1132.00

Драйвер подключения ODBC, который я использовал SQL Server Microsoft SQL Server. ODBC Driver Version 03.85.1132

+0

Я бы использовал собственный клиент SQL Server 10.0. Это новейшая версия и предназначена для использования новых функций в 2008 году. Она также быстрее, чем любой другой драйвер ODBC, который я когда-либо использовал с SQL Server. –

0

Это может быть вызвано присоединением пользователей к локальной таблице со таблицей на SQL Server.

Соединение локальной таблицы с таблицей SQL Server заставляет доступ к получить всю таблицу SQL Server и выполнить соединение на локальном компьютере.

У нас были похожие проблемы в прошлом.

+0

Я ничего не изменил в базе данных за последний год, и нет локальных таблиц. – Rick

0

Попробуйте обновить статистику на сервере SQl.

1

Проводят ли ПК, которые навсегда работают, имеют меньше памяти, чем скорейшие?

также проверяет версии драйверов ODBC на клиентах.

+0

Большинство ПК имеют 2 ГБ ОЗУ – Rick

1

SET EXPLAIN ON ... чтобы увидеть накладные расходы, связанные с запросами.

Попробуйте перестроить свои индексы и использовать кластеризацию, где необходимо группировать строки по идентификатору клиента или в любом столбце, которое требуется вашему приложению. Если это не поможет, проблема может заключаться в том, что SQL'08 имеет больше накладных расходов, чем '05, и вам может потребоваться увеличить объем памяти или больше мощности процессора.

Смежные вопросы