Текущий архив: 2003.09.15;
Скачать: CL | DM;
Вниз
Оптимальное использование базы данных Найти похожие ветки
← →
Ru (2003-08-26 12:42) [0]Как будет лучше (оптимальнее): подключаться к базе при необходимости или при запуске программы подключится к базе, а отсоединиться при выходе из приложения?
← →
Anatoly Podgoretsky (2003-08-26 12:46) [1]А оптимальность какая интересует?
← →
LVitaliy (2003-08-26 12:48) [2]При загрузки программы соединятся с базой.
можно поставить индикатор загрузки и открыть основные таблицы
только не много остольные по мере необходимости
← →
Ru (2003-08-26 12:51) [3]>Anatoly Podgoretsky © (26.08.03 12:46) [1]
Меня интересует, что будет лучше для программы и для базы. С одной стороны, для увеличения сохранности базы (в Парадокс), мне советовали: подключайся по необходимости, с другой стороны если юзер м.д.к, то это неизлечимо.
← →
VAleksey (2003-08-26 12:51) [4]Открыть только те таблицы, которые будут нужны от 60 до 100%. Остальные по необходимости.
PS
> Anatoly Podgoretsky ©
:-)))
← →
Zacho (2003-08-26 12:52) [5]
> Ru © (26.08.03 12:51) [3]
В каком смысле "лучше" ? А "для увеличения сохранности базы" - разницы никакой.
← →
VAleksey (2003-08-26 12:55) [6]
> Ru © (26.08.03 12:51)
В контексте вопроса данное замечание значения не имеет.
← →
Ru (2003-08-26 12:55) [7]>Zacho © (26.08.03 12:52) [5]
мне та побарабану, когда открывать. А вот глюканет программа, произойдет потеря и скажут мне: "Базы надо было открывать только когда их используешь" - чем это опровергнуть?
← →
Zacho (2003-08-26 12:59) [8]
> Ru © (26.08.03 12:55) [7]
Какая потеря ? В случае отвала клиентского приложения просто откатятся все неподтвержденные транзакции. И не путаешь ли ты базы с таблицами ?
← →
Ru (2003-08-26 13:03) [9]>Zacho © (26.08.03 12:59) [8]
У меня еще Парадоксовое мышление, так что могу путать.
Как правильнее, лучше, удобнее (мне как программисту удобнее открыть раз и не трогать больше и плевать на мнение юзеров) работать с базами Interbase?
← →
Sandman25 (2003-08-26 13:06) [10]Ru
C Interbase обычно лучше использовать TQuery, а не TTable.
Заканчивайте с Парадоксовским мышлением :)
← →
VAleksey (2003-08-26 13:08) [11]
> Ru © (26.08.03 12:55)
Какая потеря ??
Делай соммит почаще.
← →
Zacho (2003-08-26 13:16) [12]
> Ru © (26.08.03 13:03) [9]
При запуске программы - подключиться к БД. Отключится - само, при завершении :)
А термина "открыть" таблицу (не базу, а именно таблицу) здесь просто нет. Можно открыть какой-либо датасет в приложении. Возможно, именно это тебя интересует ?
> Sandman25 (26.08.03 13:06) [10]
А еще лучше - не пользоваться BDE вообще.
← →
Ru (2003-08-26 13:22) [13]IBX которая в D6.
Приконектился с помощью IBDataBase, подключаюсь IBDataSet.
Так что это не имеет значения, то есть до верхней части ноги все?
← →
Sandman25 (2003-08-26 13:23) [14]Zacho © (26.08.03 13:16)
Согласен. Только все равно IBQuery обычно больше подходит, чем IBTable, именно это я и имел ввиду :)
← →
MsGuns (2003-08-26 13:35) [15]Если Парадокс и через BDE, то "средство от лома" такое.
1. Не давать редактить в DB-Aware компонентах.
2. Все коррекции в таблицах выполнять запросами (TQuery)
3. Не редактить через TTable
4. Не вшивать бизнес-логику (в частности ограничения целостности) через DeskTop, а реализовывать ее программно алгоритмикой проверок
5. Перед вставкой записей проверять наличие ключей
6. Не менять первичные ключи - только вставки или удаление
7. Перед открытием первой таблицы делать проверку корректности всей БД и в случае поломки "поднимать" ее из архива. (Для сети несколько посложнее тактика, но стратегия та же)
← →
Ru (2003-08-26 13:37) [16]Всем спасибо. Отбой.
← →
ZrenBy (2003-08-26 13:39) [17]>>MsGuns © (26.08.03 13:35) [15]
8. Реализовать протоколирование действий с БД и
дозапись протокола во вчерашний бэкап
← →
MsGuns (2003-08-26 13:49) [18]>ZrenBy © (26.08.03 13:39) [17]
Ну это уже вааааащееее ;))))
← →
Anatoly Podgoretsky (2003-08-26 13:55) [19]Оптимизация возможна только по одному парметру/критерию, ты его не привел
Если оптимизируешь скорость, то тратишь реусры и наоборот.
В многопользовательской среде - золотое правило не держать ресурсы дольше, чем это необходимо, но это в ущерб скорости.
← →
VAleksey (2003-08-26 14:00) [20]
> MsGuns © (26.08.03 13:35)
При всем уважении небольшая критика с комментариями.
1) ???? После редактирования сбросьте буфер dbiSaveChanges.
2) Если при запросе мы получим исключение по индексу, то вполне вероятно налетим на то, что индексы вообще рухнут.
3) См. пункт 1.
4) Абсолютно согласен.
5) Если редактировать ч/з TTable, то необязательно, а вот в случае с Query, то ОБЯЗАТЕЛЬНО.
6) Немного не понял, но интуитивно согласен :-) ;-).
7) см. Пункт 4.
← →
Ru (2003-08-26 14:03) [21]>Anatoly Podgoretsky © (26.08.03 13:55) [19]
Для однопользовательской базы моего размера это не так важно. InterBase вроде позволяет множеству пользователей работать с базой так как им хочется (не позволяя выполнять одновременно более одной транзакции).
У меня по примеру:
можно записать Button56.Caption:=...
а можно и btnExecProcMyProc.Caption:=...
Принципиальной разницы нет, но считается, что второй вариант "лучше".
← →
Zacho (2003-08-26 14:08) [22]
> Ru © (26.08.03 14:03) [21]
> InterBase вроде позволяет множеству пользователей работать
> с базой так как им хочется (не позволяя выполнять одновременно
> более одной транзакции).
Не правильно. Одновременно может быть запущено сколько угодно транзакций, в том числе в контексте одного подключения. Другое дело, что все запросы в контексте одного подключения будут выполняться последовательно (и не важно, в одной транзакции или нет).
Страницы: 1 вся ветка
Текущий архив: 2003.09.15;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.011 c