Есть огромный SELECT по 20-ти таблицам, одни join-ы, больше похоже, нарисованный в виде схемы в Access-е, для построения отчета, т.е. есть операции с полями таблиц, а не простое отображение.
Кто то когда то его сочинил, всегда все работало, и на тестовой базе работает нормально.
Но. На промышленной прерывается с ошибкой "Операция прервана пользователем", фиг поймешь, что access-у там не понравилось.
Я вижу пока возможность переделать запрос из 1-ого в 20, пока не найдется тот запрос, который и приводит к ошибке.
Может, кто то сталкивался с подобными ситуациями, знает более эффективные пути решения?
Здравствуйте, ksd, Вы писали:
ksd>Есть огромный SELECT по 20-ти таблицам, одни join-ы, больше похоже, нарисованный в виде схемы в Access-е, для построения отчета, т.е. есть операции с полями таблиц, а не простое отображение. ksd>Кто то когда то его сочинил, всегда все работало, и на тестовой базе работает нормально. ksd>Но. На промышленной прерывается с ошибкой "Операция прервана пользователем", фиг поймешь, что access-у там не понравилось. ksd>Я вижу пока возможность переделать запрос из 1-ого в 20, пока не найдется тот запрос, который и приводит к ошибке. ksd>Может, кто то сталкивался с подобными ситуациями, знает более эффективные пути решения?
0. Делаем бекап
1. Попробуйте перенести базу на другой компьютер и повторить
2. Попробуйте восстановление и сжатие бд (Меню-Сервис-Служебные программы).
3. Переделка врядли поможет. Смотрите отличия тестовой базы от промышленной. В первую очередь индексы.
BE>0. Делаем бекап BE>1. Попробуйте перенести базу на другой компьютер и повторить BE>2. Попробуйте восстановление и сжатие бд (Меню-Сервис-Служебные программы). BE>3. Переделка врядли поможет. Смотрите отличия тестовой базы от промышленной. В первую очередь индексы.
Дада забыл указать, что все таблицы, участвующие в запросе, внешние, прилинкованы через ODBC, как в тестовой базе, так и в промышленной. У меня нет доступа к промышленной БД.
Re[3]: как правильно "чинить" запросы в ms access?
Здравствуйте, ksd, Вы писали:
ksd>Дада забыл указать, что все таблицы, участвующие в запросе, внешние, прилинкованы через ODBC, как в тестовой базе, так и в промышленной. У меня нет доступа к промышленной БД.
Отлично! Весьма незначительное дополнение.
Еще что-нибудь? Какая настоящая база, не хочешь сказать?
По сабжу: возможно запрос выполняется долго и отваливается по таймауту.
W>Еще что-нибудь? Какая настоящая база, не хочешь сказать?
какая настоящая, не знаю.
W>По сабжу: возможно запрос выполняется долго и отваливается по таймауту.
не похоже, отваливается относительно быстро.
один запрос так переделал, помогло, тут, что то не получается: убираю самый самый вложенный select из join-ов в отдельный запрос, access говорит, что ошибка в выражении join.