![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Большой размер .exe - файла [D7, MS Access]
Gromozeka © (2007-04-02 07:24:00)Здравствуйте!
Для доступа к файлу file1.mdb(размер <2 Mb) использую ADO,
Provider=Microsoft.Jet.OLEDB.4.0.
После компиляции размер программы в памяти составляет > 13 Mb.
прога простая - навигация и поиск в БД.
Почему такой размер исполняемого файла и можно ли как-нибудь оптимизировать прогу для его уменьшения?
Спасибо.
Sergey13 (2007-04-02 11:54:00) [1]> [16] Карелин Артем © (02.04.07 11:41)
А при чем тут кэш?
Карелин Артем (2007-04-02 11:45:00) [2]
> Jan1 (02.04.07 11:37) [15]
Да!
Карелин Артем (2007-04-02 11:41:00) [3]
> Sergey13 © (02.04.07 11:33) [14]
Кэш он и на сервере кэш. Только на сервере он больше значительно.
Jan1 (2007-04-02 11:37:00) [4]
> Ну хотя-бы потому что количество записей ограничивается
> ключевыми словами типа top или first перед звездочкой.
в акцесе?
2 автор:
а оно того стоит? при сегодняшних-то ОЗУ?
Sergey13 (2007-04-02 11:33:00) [5]> [13] Карелин Артем © (02.04.07 11:20)
А место для отбора записей ему не нужно?
Карелин Артем (2007-04-02 11:20:00) [6]Не ересь. Но хороший движок все записи держать в памяти не будет
Sergey13 (2007-04-02 10:52:00) [7]> [11] Карелин Артем © (02.04.07 10:47)
Ладно, перепишу.
select * from table where (условие, возвращающее некоторое количество записей)
Так не ересь?
Карелин Артем (2007-04-02 10:47:00) [8]
> Sergey13 © (02.04.07 09:46) [10]
Ну хотя-бы потому что количество записей ограничивается ключевыми словами типа top или first перед звездочкой.
Sergey13 (2007-04-02 09:46:00) [9]> [9] Карелин Артем © (02.04.07 09:42)
В чем ересь то? Ты пытался его выполнить? 8-)
Карелин Артем (2007-04-02 09:42:00) [10]
> Sergey13 © (02.04.07 09:41) [8]
Будешь докапываться, скажу что > select * from table where количество_записей=1000это ересь.
Sergey13 (2007-04-02 09:41:00) [11]> [6] Карелин Артем © (02.04.07 09:30)
Сама таблица ничего не считает. Считает движок доступа к данным. А он находится на клиенте.
Виталий Панасенко (2007-04-02 09:32:00) [12]Курсор НД на клиенте ? Если да, поменяй на "на сервере", может поможет
Карелин Артем (2007-04-02 09:30:00) [13]
> Sergey13 © (02.04.07 09:17) [5]
Файловая таблица считает сколько ей сказали.
Sergey13 (2007-04-02 09:17:00) [14]> [4] Карелин Артем © (02.04.07 09:11)
По моему есть разница если сказать серверу и файлу
select * from table where количество_записей=1000
Сервер прикатит эту 1000 и все, а файловая таблица откроется вся (если сильно упрощать) и отфильтруется программой (движком).
Карелин Артем (2007-04-02 09:11:00) [15]
> Sergey13 © (02.04.07 08:56) [3]
Сервер-не сервер... Открытый набор данных в обоих случаях лежит в памяти клиента.
Я понимаю, когда у меня полгига памяти откусывает программа, если я ей говорю вывести все данные за 4 года по всему холдингу с сервера MS SQL
Sergey13 (2007-04-02 08:56:00) [16]> [2] Gromozeka © (02.04.07 08:49)
Потому, ИМХО, что мускул какой-никакой сервер, а аксес - просто файл и все манипуляции с данными делает клиент.
Gromozeka (2007-04-02 08:49:00) [17]Ну когда делаю подобное под MySQL, то размер не более 8 метров, и то это редкость
Sergey13 (2007-04-02 08:40:00) [18]Наверное открыты большие датасеты + всякие сортировки/фильтрации в программе.
А что, 13 метров памяти - это много? Всего то наверное не 32 и уж тем более не 16.