Форум: "Прочее";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизВыбор СУБД Найти похожие ветки
← →
xman © (2006-04-27 11:06) [0]Здравствуйте...помогите определится в выборе СУБД.
Хочу написать программку-справочник. В ней будет очень много записей и при попытках реализовать ее с компонентами ADO(msAccess), при создании более 20000 записей, программа при запуске долго открывает БД.
Какую мне СУБД выбрать или может есть способы ускорить процесс открытия базы компонентами ADO.
Программка маленькая и хочется что бы пошурику можно было открыть ее, глянуть в справочник и закрыть :)...
Win2k, Delphi7
спасибо за внимание ;)
← →
McSimm © (2006-04-27 11:09) [1]Что значит "открывать БД" ?
← →
McSimm © (2006-04-27 11:10) [2]Если вы все 20000 записей читаете при запуске программы, то выбор СУБД - не совсем тот вопрос, о котором надо задумываться
← →
Calm © (2006-04-27 11:10) [3]может индексы?
← →
XMAN © (2006-04-27 11:15) [4]McSimm: т.е. когдa ADO.ACTIVE:=TRUE; , тогда и происходит задержка )
Calm: Я так понял что индексы помогают при поиске...
← →
Игорь Шевченко © (2006-04-27 11:16) [5]McSimm © (27.04.06 11:10) [2]
Вот я только что прочитал 20000 записей (в StringList) - мгновенно :))
← →
XMAN © (2006-04-27 11:18) [6]McSimm [2] : я сделал так что при старте, большинство записей отфильровуется...но все же, если записей будет больше и больше...я думаю около 100 000 )...тогда и при фильре будет сложно
Да и вторая задачка...файл.mdb уже около 150 мегабайт...тоже не совсем удобно при копировании
← →
Danilka © (2006-04-27 11:18) [7][3] Calm © (27.04.06 11:10)
выборка из одной таблицы справочника с 20к записями пройдет на ура и без всяких индексов.
Присоединяюсь к [2], нефиг все качать на клиента, только то, что он попросит.
← →
XMAN © (2006-04-27 11:20) [8]>>Вот я только что прочитал 20000 записей (в StringList) - мгновенно :))
согласен...но при поиске..каждую строку обрабатывать не интересно ))...я так с самого начала и начинал ...думал стринглист устроит
← →
McSimm © (2006-04-27 11:20) [9]
> ADO.ACTIVE:=TRUE;
это что ? table, query, dataset ?
--
Пользователь не может прочитать 20000 записей, значит и программе это не нужно.
← →
XMAN © (2006-04-27 11:23) [10]
> это что ? table, query, dataset ?
пардон Query
> Пользователь не может прочитать 20000 записей, значит и
> программе это не нужно.
согласен, но иногда нужно что бы в таблице отобразились все записи и вот тогда...приходится долго ждать
← →
Vlad © (2006-04-27 11:24) [11]
> XMAN © (27.04.06 11:18) [6]
> McSimm [2] : я сделал так что при старте, большинство записей
> отфильровуется...но все же, если записей будет больше и
> больше...я думаю около 100 000 )...тогда и при фильре будет
> сложно
>
> Да и вторая задачка...файл.mdb уже около 150 мегабайт...
> тоже не совсем удобно при копировании
Смотря как фильтровать. Если с помощью SQL запроса и наличии необходимых индексов - то моментально.
А про 150 мегабайт не понял, что именно неудобно?
← →
Sergey13 © (2006-04-27 11:29) [12]2[10] XMAN © (27.04.06 11:23)
> согласен, но иногда нужно что бы в таблице отобразились все записи
Зачем? Можешь пример привести?
← →
Vlad © (2006-04-27 11:29) [13]
> согласен, но иногда нужно что бы в таблице отобразились
> все записи и вот тогда...приходится долго ждать
попробуй CursorLocation = clUseServer
← →
XMAN © (2006-04-27 11:30) [14]
> А про 150 мегабайт не понял, что именно неудобно?
я думаю что для справочника это немного большой размер
← →
McSimm © (2006-04-27 11:34) [15]
> иногда нужно что бы в таблице отобразились все записи
это заблуждение, рожденное от, извините, батонокидательства.
имеющиеся компоненты навязывают большинству програмистов интерфейс, вот и появляются гриды с десятками и сотнями тысяч записей.
как вы собираетесь это все читать ?
← →
Игорь Шевченко © (2006-04-27 11:36) [16]McSimm © (27.04.06 11:34) [15]
> вот и появляются гриды с десятками и сотнями тысяч записей.
В гриде всего 18-20 записей :))
> как вы собираетесь это все читать ?
С правой стороны есть удобная полоса прокрутки :))
← →
XMAN © (2006-04-27 11:38) [17]
> как вы собираетесь это все читать ?
пользователь это читать не собирается...
программа выбирает то что нужно...отфильровует и показывает в визуально...но в некоторых случаях для показа нужного результата приходится отключать фильтр...
← →
Плохиш © (2006-04-27 12:03) [18]
> пользователь это читать не собирается...
> программа выбирает то что нужно...отфильровует и показывает
> в визуально...но в некоторых случаях для показа нужного
> результата приходится отключать фильтр...
Странный какой-то справочник или реализатор.
Скажите, что обсуждается в этой ветке? А то видно только разговор слепого с глухим.
← →
Rule © (2006-04-27 12:15) [19]незнаю что там в адо, но у меня допустим в ФБ 150 тыщ записей каждая из 15 полей, половина которых варчаровые ... так вот полный фетч этих записей занимает 3 секунды ...
← →
MsGuns © (2006-04-27 14:05) [20]>XMAN © (27.04.06 11:38) [17]
>...отфильровует и показывает в визуально...но в некоторых случаях для показа нужного результата приходится отключать фильтр...
Представим картинку:
Семья собралась на шашлык в ближайшую рощу. Для пикника тащит холодильник с мясом и овощами, а также всю имеющуюся мебель для сиденья и лежания, включая кровати и надувные матрасы.
Для приготовления "фильтрует" содержимое холодильника, выбирая только мясо, лук и помидоры. Когда шашлыки готовы, "фильтруется" мебель: пара кресел-качалок и один надувной матрас.
Крррасотишша !!!
← →
Sergey13 © (2006-04-27 14:26) [21]2[20] MsGuns © (27.04.06 14:05)
Не, сразу после обеда твой пример не впечатляет. Если бы пару часов назад - я бы слюной изошел. 8-)
← →
Vlad © (2006-04-27 14:58) [22]
> MsGuns © (27.04.06 14:05) [20]
Вы приходите в библиотеку за каким-либо справочником, скажем Вас интересует значение... гравитационной постоянной.
Вы же не просите библиотекаря вырвать страницу из книжки, а просите целую книжку. Хотя нафига вам нужно листать лишние сотни страниц?
← →
alex_*** © (2006-04-27 15:05) [23]может для начала дать ADO.DisableControls() ?
← →
Sergey13 © (2006-04-27 15:12) [24]2[22] Vlad © (27.04.06 14:58)
А что бы прочитать в том спарвочнике про "значение... гравитационной постоянной" ты его будешь от корки до корки читать? Или по оглавлению нужное найдешь?
← →
Vlad © (2006-04-27 15:19) [25]
> Sergey13 © (27.04.06 15:12) [24]
а никто не заставляет DBGrid читать от начала до конца. Сортируй данные как тебе угодно. Сделай механизм навигации, как это реализовано в Quantum Grid.
← →
Desdechado © (2006-04-27 15:42) [26]сначала формулирутся, что собственно ищем
потом делается отбор несчастных 10-100 строк
все это занимает минимум времени и памяти (кроме формулирования, которое у некоторых индивидуумов зависает или, поглощая все доступные ресурсы, приводит к рестарту системы)
← →
homm © (2006-04-27 22:07) [27]имхо все действительно проше. Не нужны все 20000 записей пользователю,
1) заранее узнаеш количество записей
2) устанадливаеш прогрессбар на это количество
3) в sql запросе limit прописываеш
4) при скролинге даеш новый зпрос с другим limit
← →
Sergey Masloff (2006-04-27 22:18) [28]Да чего мелочиться. Лучше сразу конфигурируем Oracle Real Application Clusters. Только нужно межузловые каналы продумать. Можно конечно сразу аппаратные каналы памяти прикупить чтобы не париться. Сконфигурировать bigfile tablespaces и спишь спокойно - ты сделал все что мог ;-))
← →
Sergey13 © (2006-04-28 09:34) [29]2[28] Sergey Masloff (27.04.06 22:18)
И главное не забыть мягкий диван в серверную. Так приятно полежать и полюбоваться на всю эту красоту. 8-)
← →
MsGuns © (2006-04-28 13:18) [30]>Vlad © (27.04.06 14:58) [22]
>Вы же не просите библиотекаря вырвать страницу из книжки, а просите целую книжку. Хотя нафига вам нужно листать лишние сотни страниц?
Сравнение неудачно. Ибо противоречит принципу атомарности сущностей БД ;)
← →
Anatoly Podgoretsky © (2006-04-28 15:25) [31]Просить надо 20000 книг
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.014 c