MS Access 2007 и SQL Server 2000 - PullRequest
1 голос
/ 19 июня 2009

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

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

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

Есть идеи?

Ответы [ 4 ]

1 голос
/ 19 июня 2009

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

0 голосов
/ 19 октября 2012

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

0 голосов
/ 20 августа 2012

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

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

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

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

0 голосов
/ 21 июня 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...