Вопрос

Сценарий: Существует устаревшая программа (не уверена, какой язык) и меня попросили «компактные и архивные формы в базе данных». На данный момент, когда пользователь открывает приложение, это принимает около 2-5 минут, чтобы загрузить около 27000 записей !!! Моя теория заключается в том, что она загружается все записи на запуск, но это может не быть единственной причиной. После выполнения некоторого копания и поиска конца доступа, который выглядит правильно, я также нашел те же файлы доступа на 15+ других акциях в компании. Теперь это приложение было создано где-то около 1997 года, когда я угадываю, был бы нормой, но они действительно будут захватывать данные из 15+ баз данных доступа? Что кажется, что норма для ускорения этой программы является архивирование более старых записей в другой базе данных доступа (поэтому я думаю, что это загружает все при запуске.

Вопрос: У меня встреча в понедельник, чтобы обсудить программу и было задаваться вопросом, может ли кто-нибудь предложить некоторые полезные вопросы, теории, решения и т. Д. Это не то, что я не могу сделать это самостоятельно, я просто думаю, что еще одна перспектива не могла больна Отказ Также еще один забавный факт состоит в том, что я могу не сможет получить исходный код, потому что он мог быть создан подрядчиком, а код потерян давно.

Примечание: Будет ли возможна доступ к авто-архиве старых записей? Это означало бы передачу их в другую БД под названием XXXARCH.

Заранее спасибо. Я постараюсь ответить на любые вопросы, которые у вас есть.

РЕДАКТИРОВАТЬ:

Вот обновление в ситуации.

Похоже, это только используя одну базу данных в качестве основного и одного для архива. У меня все еще есть еще не иметь свою собственную учетную запись пользователя, чтобы открыть приложение, но при поиске базы данных есть таблица пользователя с идентификатором входа и тот же пароль (пароль), поэтому я попытался входить в систему как один из тех пользователей и просто выбрать некоторые данные не изменяют ничего. При выборе я смог получить данные почти мгновенно и не видел никакого замедления, что другие пользователи получали. Я до сих пор не видел исходный код, но из того, что я могу сказать (взять exe и помещать его в блокнот), похоже, он был закодирован в VBA и, вероятно, создан с использованием MS Access. Также кажется, что приложение создает Temp.mdb в папке данных. В настоящее время это не имеет ничего в этом. Нет столов, ничего. Я предполагаю / надеюсь, что это то, что замедление пользователей вниз и может быть удалена для повышения производительности. Я опубликую другое обновление, как только я получу исходный код и имею лучшее представление о том, что замедляет его.

Это было полезно?

Решение

Пару вещей, чтобы рассмотреть:

Базы данных доступа (MDB), как правило, нужно регулярному компактному / ремонту, как указано в заголовке, если они часто используют. Однако я редко обнаружил, что это помогает производительностью более чем минимально. Если это было очень долгое время, файл может подумать действительно большой, и это может быть частью проблемы, если пользователи обращаются к нему по медленному сетевому соединению.

Кто-то собирается предложить обновление до «больших» БД, как SQL Server, либо в вашей компании, либо на этом форуме. Не делайте этого, пока вы не выделяете проблему или, если у вас нет причин, кроме производительности. Существует разумный шанс, что проблемы вызваны плохой конструкцией приложений или архитектурой БД. Бросая более мощный инструмент на проблему без изменения подхода вряд ли поможет.

Доступ DB собирается максимум на одновременных пользователях задолго до того, как он максимум на данных. Многие пользователи (30+) просто начнут использовать систему? Это может быть частью проблемы.

Архивация старых записей: вам придется построить что-то, чтобы сделать это. Хорошая новость заключается в том, что это не так уж сложно.

Доступ к 15+ базам данных: Вы уверены, что передний конец GUI не написан в доступе. Это распространенная архитектура с доступом к тому, что передний конец MDB загружается на машину конечного пользователя (скопирована повсюду), подключающуюся к центральному файлу данных MDB OUT в сети. Лучший способ сказать - это открыть базы данных и посмотреть, содержат ли они только таблицы или таблицы + формы / отчеты.

Другие советы

Мне кажется, ваш первый порядок бизнеса должен быть решить эту проблему:

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

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

Если у вас нет исходного кода, вы не можете изменить базу данных Back-End на SQL Server и ничего другого.

Однако, если у вас на самом деле есть доступ к файлам данных и сможете их редактировать, почему бы не проверять индексацию? 27K Records Trivial для любой базы данных, включая доступ, а также медлительность в загрузке данных предлагает мне, что таблицы просто не проиндексированы должным образом. Если вы осмотрите таблицы и не видите индексов на очевидных полях, затем попробуйте добавлять их и посмотреть, будет ли это скорость.

Если это не так, то это означает, что приложение плохо спроектировано, и поскольку вам не хватает исходного кода, нет много всего, что вы можете сделать с этим.

Все вышеперечисленное предполагается, конечно, что сетевая среда подходит для доступа / Jet / Ace. То есть, если эти файлы базы данных доступны через все, что другие, кроме проводной локальной сети, то по нему ничего не может быть сделано (WAN и WiFi полностью предназначены для Jet / Ace).

Последнее из всех, на тему архивирования, я думаю, что нет никаких оправданий для постоянных архивирования данных, если вы не работаете против жестких ограничений на аппаратное / программное обеспечение. В этом случае вы даже не близко к этому.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top