![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Большая БД на Access2000 и ADO [D7, Access]
FatalWay © (2004-07-11 09:01:00)Можно ли использовать связку Access2000 + ADO + Delphi7, если БД будет 200-700 Mb???
Клиент делает только запросы Select.
БД лежит но компе юзера или в локалке.
Если связка неприемлема что поменять???
YurikGL (2004-07-11 14:10:00) [21]
> sniknik © (11.07.04 13:45)
Если у автора 1000 записей пускай Access пользует, но я делал телефонный справочник 300 тыс записей, поиск по подстроке в фамилии, например, да и просто вывод всех записей на экран мягко говоря тормозит.
Наверняка можно и запрос оптимизировать и на экран блочно выводить, но не проще другую СУБД взять?
sniknik (2004-07-11 13:45:00) [22]вывод: не используйте TADOTable (он просто для облегчения привыкания, но строго не рекомендован к использованию (по мне так вообше не нужно было давать такой "поблажки" как TADOTable))
еще вывод: учите sql, а также настройки ado. прямой перенос методов с BDE недопустим.
> можете подобный эксперимент провести сами. если можно, то хотелось бы знать результаты...
честно? уже заколебался их проводить, эти эксперементы. но ладно повторил, по твоему, как описано с небольшими дополнениями
id автоинкремент ключевое поле.
вношу в поле datetime текущее время.
машина AMD 1300(1400 но частота в биосе занижена) памяти 512, винт взял махтор 80гиг (несколько, и использовать рейд не совсем честно ;о)), вин 2000 про
время внесения 31,255сек вторая попытка 32,056. 3я-34.349 4я-37ю384
итого в базе 4*65535=262140 записей
теперь делаем запрос
INSERT INTO DateTest SELECT Now AS DTime FROM DateTest
(внесет все 262140 повторно)
время выполнения 4.947 сек
в базе 2*262140=524280 записей
по моему нормально.
Zlod3y (2004-07-11 13:01:00) [23]Я начинал с БДЕ, потом ушёл в АДО, теперь возращаюсь обратно!
Может я неправильно выразился!
Для работы с АДО я использовал компоненты TADOConnection, TADOTable и TADOQuery, но при использовании ОДБЦ я пользуюсь исключительно TDataBase, TTable и TQuery.....
Эксперимент был такой:
в базу, состоящей из одной таблицы с двуми полями: "ID" и "Дата+Время", вводилось 65535 записей.
На моей домашней машине: Cel 700, 256 мб ОЗУ, довольно медленный 10-гиговый квантум, вин 2000 про
почему-то при связке TTable-ОДБЦ-"база.mdb" такой массив записей был введён за 27 минут!
при связке TADOTable-Jet-"база.mdb" после 6-ой тысячи я всё выключил, так как ждать замучался, причём на лицо был эффект замедления....чем больше становилась база, тем медленное заносились записи, при такой связке!
выводы делайте сами. можете подобный эксперимент провести сами. если можно, то хотелось бы знать результаты...или я может чё не так делал.
С уважением к Мастерам!
sniknik (2004-07-11 11:17:00) [24]Zlod3y (11.07.04 10:58) [5]
небось с BDE начинал? не для подкола, просто привыкшие к BDE и его методам замечательно там работающим именно на медленность жалуются при переходе на ADO.
> пробуй ODBC-драйвера они быстрее раза в 2-2,5
для вас это может быть откровением но ODBC работает через Jet (OLE DB для ADO), т.е. связка получается "ваши компоненты"->ODBC->ADO->Jet->"база" вместо возможного ADO->Jet->"база"
очень быстро ;о), а еще с десяток промежуточных добавить так просто скорость света будет ;о))).
может ты както не так того мастера понял?
Zlod3y (2004-07-11 10:58:00) [25]мне как-то кто-то из мастеров сказал что акцес и скорость не совместимые вещи.....также как микрософт и безопасность :-D
через ADO не советую, медленно слишком, пробуй ODBC-драйвера они быстрее раза в 2-2,5.....лично испытания проводил
Zlod3y (2004-07-11 10:55:00) [26]при таких размерах акцес - это ацтой...... попробуй DBase
sniknik (2004-07-11 10:47:00) [27]200-700Mb для access ерунда, проблемы начинаются после 1.5gb (размер считать в упакованом виде, в рабочем состоянии это будет 1,8-1,9гиг, да, это проверялось на jet sp6 есть уже sp8 там может быть уже по другому)
но вот как писать... если запросы без ограничений (как открываются таблицы) то можно добится тормозов и на более меньших размерах. ;о))
YurikGL (2004-07-11 09:28:00) [28]Кстати, > 200-700 Mb???это в сжатом виде? И какое количество записей планируется? Может 200-700 Мб картинок?
YurikGL (2004-07-11 09:07:00) [29]Можно, но, скорее всего, тормоза будут.