2009-06-18 6 views
1

Недавно я был обновлен до Office 2007. У меня есть несколько баз данных Access (которые я сохранил в формате Access 2000 по нескольким причинам), которые связаны с базами данных SQL Server 2000. У меня есть десятки запросов в этих базах данных, которые я часто использую. Я ежедневно создаю новые запросы, сортируя, суммируя и обычно анализируя данные.MS Access 2007 и SQL Server 2000

С момента обновления некоторые запросы занимают очень много времени (минуты, а не секунды), а один новый, который я пытался запустить, не завершен вообще, мне нужно завершить задачу в Access. Это довольно простой запрос, он объединяет 3 таблицы и сортирует по одному из полей. Я делаю это ВСЕ ВРЕМЯ, и теперь, похоже, я не могу.

Я искал обсуждения подобных проблем, но не видел конкретных рекомендаций.

Любые идеи?

+0

Можете ли вы опубликовать запрос о том, что у вас возникли проблемы, чтобы мы могли видеть всю картину? Возможно, схема таблицы тоже, если это не очевидно в запросе. –

ответ

1

Я бы предложил удалить все связанные с ODBC таблицы и воссоздать их с нуля в качестве отправной точки.

0

Если ваши запросы не нужно вносить какие-либо изменения в данные, вы можете найти их преобразование в SQL Pass через запросы, это значительно ускорит их. Обратите внимание, что эти запросы не анализируются с помощью Jet DB Engine, а отправляются непосредственно на сервер и обходят любые связанные таблицы.

Вам придется использовать синтаксис MS SQL и потерять сетку QBE, хотя результат будет доступен только для чтения.

Если вам необходимо обновить данные, возможно, хранимые процедуры - это путь.

0

Когда я преобразовал сервер SQL Server, я использовал помощник миграции SQL Server. Я рекомендую его очень. Очень хорошо, что он делает.

Сказав это, я предполагаю, что вы используете связанные таблицы в своем FE. Я конвертирую медленные запросы, копируя SQL из Access, а затем вставляя его в окно «нового запроса» в SQL Server Management Studio. Затем, обрабатывая все синтаксические изменения по одному, я конвертирую запрос в T-SQL и сохраняю его как представление с тем же именем, что и запрос в Access.

У меня есть небольшая рутина, которая затем переименовывает запрос Access в «Local_», ​​а затем создает связанную запись таблицы с представлением на SQL Server. Вы обнаружите, что запрос, который использовался в течение нескольких минут, будет выполняться в течение нескольких секунд таким образом. Конечно, вы можете сделать это вручную.

Помощник по миграции SQL Server, кстати, преобразует много запросов (он не пытается конвертировать запросы действий, а только выбирать запросы ...) с небольшим или никаким вмешательством.

0

Я бы использовал проекты данных доступа с SQL Server 2000. Он отлично работает, когда ваш SQL-сервер является старым.

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