Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 588
Записей в блоге: 2

Посоветуйте локальную легкопереносимую с прогой СУБД с хорошей скоростью

02.01.2013, 21:13. Показов 792. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу прогу на дельфах, там будет словарик на 500 000 слов для проверки орфографии. Закинул в акцесс но скорость не очень удовлетворяет. Хотелось бы скоростную базу простую в установке и работе... И которую легко перенести на другой комп вместе с прогой...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.01.2013, 21:13
Ответы с готовыми решениями:

Посоветуйте бюджетник с хорошей камерой
до 10000

Посоветуйте до 5 дюймов с хорошей камерой
Подыскиваю замену своему highscreen ice2, все в нем нравится, кроме камеры, у меня старый нокиа есть, с5-03, так вот, у него снимки...

Посоветуйте ноутбук с хорошей видеокартой
Здравствуйте. Посоветуйте ноутбук с хорошей видеокартой (дискретной), Nvidia или AMD Radeon - что лучше для просмотра фильмов? Процессор -...

12
Эксперт Pascal/Delphi
 Аватар для droider
4888 / 2822 / 865
Регистрация: 04.10.2012
Сообщений: 10,265
02.01.2013, 21:30
Цитата Сообщение от alexan0308 Посмотреть сообщение
которую легко перенести на другой комп вместе с прогой...
в этом плане все же Access проще на мой взгляд.
Вы к БД через ADO подключаетесь я надеюсь?
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
02.01.2013, 21:32
Цитата Сообщение от alexan0308 Посмотреть сообщение
скорость не очень удовлетворяет
А индексы ты тоже "закинул" ?
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 588
Записей в блоге: 2
02.01.2013, 21:43  [ТС]
Цитата Сообщение от droider Посмотреть сообщение
Вы к БД через ADO подключаетесь я надеюсь?
ага...
Цитата Сообщение от mss Посмотреть сообщение
А индексы ты тоже "закинул" ?
ага... сделал ключевыми оба поля - ид и само слово... Ну в принципе работает очень быстро но хочется же вообще )) Медленным может мне кажется потому что много слов проверяется....
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
02.01.2013, 21:52
Цитата Сообщение от alexan0308 Посмотреть сообщение
потому что много слов проверяется
Или кроме собственно поиска делаешь при этом кучу лишних/вредных программных действий
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
02.01.2013, 22:37
alexan0308, как бысто поиск просходит сейчас? как быстро хотелось бы получить в итоге?

Какой sql-запрос отправляете на сервер?
есть опасение, что его структура может не способствовать подхвату индекса (например, select ... where name like '%бла-бла%' индекс не подхватит)
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 588
Записей в блоге: 2
02.01.2013, 22:53  [ТС]
Сначала открываю словарик
Delphi
1
2
3
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('SELECT * FROM slovar order by slovo');
Form1.ADOQuery1.Active:=True;
Потом делаю поиск слов из текста в этом словаре с помощью адотабле
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
Form1.ADOTable1.active:=true;
for i:=1 to WordsCount do
begin
   LookupRes :=  Form1.ADOTable1.Lookup('slovo', sssr, 'id;');
   flagwordright:=false;
         if not(VarIsNull(LookupRes)) then flagwordright:=true; // слово есть в словаре 
                                                          // поэтому нет ошибки
         if not(flagwordright) then //неправильное слово в RichEdit 
                begin
                    RichEdit_text:=sssr + ' на стр. №' + IntToStr(Straniza); RichEdit_add_text;
                    inc(error_count);
                end;
end;
Я поле слово сделал ключевым это нормально? Скорость может измерю сейчас....
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
03.01.2013, 00:50
alexan0308, правильно ли я вас понял, что вы открываете таблицу-справочник с 500 тыс. строк просто для целей "искать соответствия"? Если так, то это жесткое изнасилование компьютера. Хотелось бы мне знать, сколько отжирает ваша программа ОЗУ до и после открытия этого справочника, и как долго происходит это открытие.
Думаю, что куда эффективнее будет использование адресных запросов, примерно так:
SQL
1
SELECT * FROM Table1 WHERE name=:name
, либо
SQL
1
SELECT * FROM Table1 WHERE name LIKE :name || '%'
если Access принимает такой синтаксис, и контекст требует поиск по началу подстроки, а не только по полному совпадению.
Эти запросы будут использовать индекс (если вы его корректно построили) и займут минимум памяти и процессорного времени. Правда ваш дельфовый код нужно будет полностью переделать.
Впрочем, практика - критерий истины. Возможно ваши замеры покажут совсем другую картину, чем то, что я домыслил.
1
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 588
Записей в блоге: 2
03.01.2013, 01:50  [ТС]
Да, чо то я про память не подумал. У меня ее много, вот и не заметил. Переделал
Delphi
1
2
3
4
5
6
7
8
9
for i:=1 to WordsCount do
begin
   flagwordright:=false;
   Form1.ADOQuery1.SQL.Clear;
    Form1.ADOQuery1.SQL.Add('SELECT * FROM slovar where slovo="'+sssr+'"');
    Form1.ADOQuery1.Active:=True;
    slovo:=Form1.ADOQuery1.FieldByName('slovo').AsString;
    if slovo<>'' then flagwordright:=true;
end;
Память стало жрать в разумных пределах существенно меньше.... Скорость не заметил вроде разницы.. Только почему то постепенно падает в цикле

Добавлено через 1 минуту
А это вообще убрал...
Цитата Сообщение от alexan0308 Посмотреть сообщение
Сначала открываю словарик
Delphi
1
2
3
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('SELECT * FROM slovar order by slovo');
Form1.ADOQuery1.Active:=True;
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
03.01.2013, 09:47
ваш код
Delphi
1
2
3
4
5
6
   flagwordright:=false;
    Form1.ADOQuery1.SQL.Clear;
    Form1.ADOQuery1.SQL.Add('SELECT * FROM slovar where slovo="'+sssr+'"');
    Form1.ADOQuery1.Active:=True;
    slovo:=Form1.ADOQuery1.FieldByName('slovo').AsString;
    if slovo<>'' then flagwordright:=true;
я бы переделал в такой:
Delphi
1
2
3
4
5
6
7
with Form1.ADOQuery1 do
begin
  Active:=False;
  SQL.Text:=Format('SELECT 1 FROM slovar where slovo="%s"', [sssr]);
  Open;
  flagwordright:=not IsEmpty;
end;
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 588
Записей в блоге: 2
03.01.2013, 12:06  [ТС]
Ща попробую... я вот еще думаю вместо одной базы сделать 30 баз что ли... по буквам алфавита... В каждой будет примерно по 20 000 записей... запрос типа параметризовать... Летать будет?
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
03.01.2013, 13:17
alexan0308, скорее вы получите обратный эффект. Партиционирование, шардирование и прочие умные слова уместны на больших базах (сотни миллонов и миллиарды строк), и только тогда, когда разные части работают на разных железках, а не одной и той же персоналке.
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 588
Записей в блоге: 2
04.01.2013, 13:42  [ТС]
Да, на время взял базу и 40 тысяч слов - никакой разницы... Проблема видимо действительно не в базе а самой программе... Слова берутся и проверяются в файле Word поэтому тормоза...

Ну главное убедили остаться в access =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.01.2013, 13:42
Помогаю со студенческими работами здесь

Посоветуйте наушники-беруши с хорошей звукоизоляцией
Посоветуйте, пожалуйста, наушники-затычки, типа беруш. Цель - максимальная звукоизоляция. Нужны именно наушники-беруши, а не то что...

Посоветуйте смартфон в районе 15000, с хорошей камерой
Интересует телефон/смартфон в районе 15000 с хорошей камерой.

Посоветуйте видео карту для хорошей оптимизации в новых играх
Ребята посаветуйте какую видео карту получше этой поставить чтобы подошла. вот мои системные.Процессор: AMD Athlon 2 X2 250 (3000 МГц, 2...

Посоветуйте телефон типа Philips Xenium X2301 с хорошей камерой
Посоветуйте пожалуйста телефон типаPhilips Xenium X2301, только желательно, что бы камера была получше. Ну или какой нибудь другой...

Поезд ехал t1 ч со скоростью v1 км / ч, t2 ч со скоростью v2 и t3 ч со скоростью v3. Определить пройденные пути с разной
Поезд ехал t1 ч со скоростью v1 км / ч, t2 ч со скоростью v2 и t3 ч со скоростью v3. Определить пройденные пути с разной скоростью и весь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru