Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по SQLite базу данных [D7, SQLite]


Страницы:   1 2

Wolf ©   (2007-12-13 01:21:00) 

Говорят быстрая и простая база данных. Вопрос про быстродействие.

1) Как будет отражаться на скорости запуска и работы программы работа с файлом базы размером 200 - 300 мб ? ( в базе все настройки списки и отчёты)

2) Возможно ли в SQLite использовать для хранения 2 разных файла ? Наприемр в 1 файле для ускорения быстродействия сохранять необходимые настройки и данные для работы, а отчёты сохранять во втором файле БД?

Интересует именно скорость работы ( открытие базы, выполенение SELECT, добавление записи в БД и пр ) так как для проекта который предпологаеться писать скорость очень сильно важна.

p.s Использование сетевых баз например MSSQL, MySQL или Firebird непременимо в проекте к сожалению. Нужна именно локальная и быстродействующая база данных.

Жду ответа.
С уважением к участникам форума.


DeadMeat   (2007-12-18 01:22:00) [1]

А SQL Server 2005 Compact Edition ?


sniknik   (2007-12-15 11:51:00) [2]

> так как я уже использую для нескольких своих проектов эти БД и ПРЕКРАСНО осведомлен о возможностях той или иной БД.
ну, не так уж и прекрасно, как выясняется. не знаеш реальных возможностей одной из "отсеянной" базы. а ее возможности превосходят выбранную на порядок.
по отношению к другой(BDE) ведешь себя не как программист, а как диверсант, и даже не замечаешь этого. наоборот, гордишься как основным своим достижением...
с образованием у тебя явные пробелы, о "ПРЕКРАСНО" тут речи идти не может.

> Если вариантов не осталось
вариантов валом на самом деле, но какой смысл их предлагать если мы так и не знаем твоих критериев выбора? (говоришь важна скорость работы, а базу которая в 6-7 раз быстрее забраковал)

хотя нет, я не прав, предлагать тебе никто ничего не будет... поиск элементарно делается поиском... :), если бы было чтото конкретное, а так варианты перебирать, искать за тебя и еще чтото доказывать. увольте.
сам заходишь в гугль и 200-300 альтернативных движков тебе обеспечено...
(сам когдато искал, правда у меня были конкретные требования и из всей массы под них подошли/скачал гдето 27-28, из них реально, не по заявленным возможностям подошли 2-3, из которых и выбрал 1, причем самый тормозной судя мнению в инете (правда основание для этого мнения было странным "потому что он написан на дельфи"...), неважно, может так и было, поверхностные тесты явного преимущества других не дали, а по остальным параметрам (в том числе и присутствие исходников) этот подходил больше)


Wolf   (2007-12-15 10:49:00) [3]

> Anatoly Podgoretsky ©   (15.12.07 10:47) [34]

Да пока меня устраивает SQLite но я хотел бы рассмотреть варианты. Если вариантов не осталось то думаю топик можно закрывать.

Спасибо за внимание.


Anatoly Podgoretsky   (2007-12-15 10:47:00) [4]

> Wolf  (15.12.2007 10:27:33)  [33]

> Интересует альтернатива. Небольшая, быстрая и не требовательная к ресурсам

Тебя не интересует альтернатива, ты уже все решил, тебе нужно одобрение окружающих.


Wolf   (2007-12-15 10:27:00) [5]

> sniknik ©   (14.12.07 21:21) [28]

> "волнения" уровня начинающих.

Я вот например зарабатываю на жизь тем что продаю программы в розницу :) Те которые написал и зарабатываю на этом неплохо. Чем зарабатываете на жизнь Вы мне не известно, но прошу заметить что я не говорю что Вы начинающий или глупый. Давайте будем уважать друг друга. Ведь получаеться что если я не поддерживаю Ваше мнение то я сразу лузер, недоучка или начинающий ?

На данный момент не хочу рассматривать MSSQL, MySQL, Access, Firebird и мне не интересно обсуждение данных программных продуктов. Я в самом начале топика вроде бы ясно описал что ищу альтернативу.

И убеждать меня в их применении не нужно, так как я уже использую для нескольких своих проектов эти БД и ПРЕКРАСНО осведомлен о возможностях той или иной БД.

Интересует альтернатива. Небольшая, быстрая и не требовательная к ресурсам


Wolf   (2007-12-15 10:21:00) [6]

> Anatoly Podgoretsky ©   (14.12.07 22:58) [29]

Не устраивают размеры. Если у меня программа занимает 700 кб то я не хочу ставить еще 20 мб MS SQL например. Мне проще скопировать DLL размером в 300 кб и при этом чтобы все работало.

Я не спорю. MS SQL очень хороший продукт с хорошими возможностями, но мне всей его функциональности с его весом не нужно.


Wolf   (2007-12-15 10:20:00) [7]

> Германн ©   (15.12.07 00:53) [30]

Слегка глупо инсталлировать программу при инсталяции онной запускать инстляцию BDE
При том что пользователь ВООБЩЕ не должен знать для чего BDE нужна и что это вообще такое. Он ставит софт который купил. По этому было проще выложить dll и ничего не запускать при установке.


Германн   (2007-12-15 00:53:00) [8]


> Для BDE вообще в своё время вытащил ВРУЧНУЮ все используемые
> ею DLL чтобы НЕ УСТАНАВЛИВАТЬ её на компьютере пользователя
> а просто копировать.
>

Как был варваром, так варваром и остался.


Anatoly Podgoretsky   (2007-12-14 22:58:00) [9]

> Wolf  (14.12.2007 19:59:26)  [26]

> MS SQL, MySQL и Firebird не рассматриваем.

Почему, потому что тебе неприятно?


sniknik   (2007-12-14 21:21:00) [10]

> По таким критериям :
опля... что тебя волнует,
а говорил работал с базами аксесс, и вообще с базами. ну, значит так работал.
"волнения" уровня начинающих.

> 1) Какие доп утилиты программы ...
...
1 - на чистом компьютере, вообще без ПО, даже без ОС вообще ни одна прикладная программа работать не будет. а вот если ОС есть, и она более менее современная то это все что необходимо, ничего "сверх" не потребуется.

2 - скомпили да проверь. на форму компонент положить в состоянии? хоть все, сначала без, а потом с, и вычисли разницу. :) только учти что большую часть (~%90) там будет модель COM занимать которую ты возможно подключишь и без ADO.

3 - не больше чем ОС выделит, и не меньше чем нужно для работы... (а какой смысл использовать как можно меньше памяти если ее тебе все одно выделили и никто болше ее использовать не может? вредительство какоето если кто так делает.)

> Я например всегда считал тяжеловесными файлы Access.
значит ты всегда ошибался.

> Возможно я не прав, но тогда прошу разъяснить в чём именно я неправ.
извини но если тебя не убеждает практически в 3 раза меньшее время запроса на почти в 2 раза большем количестве записей то ты уже потерян для разъяснений.


Wolf   (2007-12-14 20:00:00) [11]

С объемами БД определился, думаю будет не более 50 - 60 000 записей т.е не более 50 мб


Wolf   (2007-12-14 19:59:00) [12]

> sniknik ©   (14.12.07 12:48) [25]

Ну давай разберемся.

Какой вес будет у приложения если в нем использовать Access ?

По таким критериям :

1) Какие доп утилиты программы нужно ставить на машину пользователя ? Если у него чистый компьютер, без ПО
2) Размер компонент ADO в приложении ?
3) Размер в памяти приложения ?

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

Я например всегда считал тяжеловесными файлы Access.
Возможно я не прав, но тогда прошу разъяснить в чём именно я неправ.
Для меня сейчас крайне важна : скорость работы, пониженная ресурсо емкость,  и чтобы почти никакой нагрузки на проц.

Размер дистрибутива программ имеет смысл. Чем меньше тем лучше.
Варианты БД ?

MS SQL, MySQL и Firebird не рассматриваем.


sniknik   (2007-12-14 12:48:00) [13]

> В общем скорость устраивает, функционал тоже.
у аксесса не устраивал, а здесь устроил? ведь тормоз же полный судя по твоему тесту...
для интереса проверил аксесс
время инсерта 1-ой записи не определилось = 0. (в готовой тестовой программке расчет времени выполнения идет по времени, т.е. грубовато, чтобы такие мелкие значения ловить надо на "тики" переделывать. что неохота. (да и не зачем, я ей все одно всегда меряю более солидные величины))

полный селект для 18тыс записей (10 не нашел, взял первую попавшуюся хоть немного похожую) выполняется 0,244 мсек
вставка того же количества (инсерт в таблицу с выборкой ее же как источника)  0,266 мсек. (в таблице нет индексов, если бы были время наверняка немного бы увеличилось на перестройку. кстати индексы ты у себя тоже не учитываешь, а надо бы для нормальной работы. фактически как бы быстро запись не вставлялась без них это имеет чисто теоретическое значение, на практике случаи работы без индексов очень редки (я к примеру встречался только раз с оправданной ситуацией когда они не использовались))

размер таблицы... ну какое это сейчас имеет значение? будет она 30 мег или 300? если ее через инет не передавать... даже не стал выделять его (размер) из общей базы. (а даже передавать, архиваторы счас хорошие)

т.е. имхо, сменял ты "шило на мыло" (писал что пользовался аксесс базами), по непонятной до сих пор причине. просто "внезапная любовь" вдруг. или... терзают меня смутные сомнения... ;), а ты случаем не "популялизатор" SQLite-а? типа ходишь по форумам интерес подогреваешь...


Anatoly Podgoretsky   (2007-12-13 23:08:00) [14]

> Wolf  (13.12.2007 23:01:23)  [23]

> Теперь по второму вопросу : Можно разделить настройки и отчёты по разным файлам бд и обращаться к отчётам ( где будет множество записей ) не постоянно а только тогда когда нужно будет просматривать отчёты.

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


Wolf   (2007-12-13 23:01:00) [15]

> Anatoly Podgoretsky ©   (13.12.07 22:33) [21]
> Насчет загрузки процессора всего на 1-3% это очень плохо, процессор не работает.

Можно конечно уменьшить процент загрузки, но тут вставка происходила в Цикле 0 - 100 000 специально чтобы посмотреть на сколько все это будет загружать ЦП

В принципе 20 мб работают достаточно быстро, а это у меня получилось 162 000 строк в таблице.

Теперь по второму вопросу : Можно разделить настройки и отчёты по разным файлам бд и обращаться к отчётам ( где будет множество записей ) не постоянно а только тогда когда нужно будет просматривать отчёты.

В общем скорость устраивает, функционал тоже.
Спасибо всем кто принял участие в обсуждении данного вопроса. И лично спасибо за участие Anatoly Podgoretsky.

Думаю тему можно закрывать.

p.s для небольших проектов SQLite показала себя на высоте, для больших проектов конечно же лучше использовать другие БД которые и предназначаються для этого.


Anatoly Podgoretsky   (2007-12-13 22:36:00) [16]

При указаных характеристика 0.95 на вставку тебе потребуется, хотя посчитай сам - в сутках 86000 секунд.


Anatoly Podgoretsky   (2007-12-13 22:33:00) [17]

> Wolf  (13.12.2007 20:58:19)  [19]

Насчет загрузки процессора всего на 1-3% это очень плохо, процессор не работает.


Anatoly Podgoretsky   (2007-12-13 22:33:00) [18]

> Wolf  (13.12.2007 20:58:19)  [19]

Что до сих пор идет и всего то 100 000 записей, ужас.


Wolf   (2007-12-13 20:58:00) [19]

Компоненты : http://aducom.com/cen/download.php?view.12
SQLite 3.5.1

10 000 записей - размер файла 1 мб
Скорость выполнения запроса Insert 0.95 мсек
Скорость Select на 10 000 записей 672 мсек

На работе не сказываеться вообще, в цикле добавляя записи Insert загрузка проца 1-3 % ( цикл - 100 000 записей ) до сих пор идет :) будем ждать когда данных побольше будет

Интересно именно в цикле добавлять, чтобы сразу смотреть уровень загрузки ЦП


Anatoly Podgoretsky   (2007-12-13 16:54:00) [20]

> Dreamse  (13.12.2007 16:04:17)  [17]

Ну например Absolute DB вообще только один ехе файл.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо