Ангарский Форум

 FAQначало   ПоискПоиск  ПользователиПользователи  medals.php?sid=a3b31b78892ae4e76024f8020bd32702Награды   Подписанные темыПодписанные темы    Любимые темыЛюбимые темы   StatisticsСтатистика  ВходВход
  РегистрацияРегистрация  ПрофильПрофиль  ГруппыГруппы  ПрофильПриглашения  РепутацияРепутация  AttachmentsФайлы  ФотоальбомФотоальбом  Войти и проверить личные сообщенияВойти и проверить личные сообщения
ДневникиДневники    Мой ДневникНовое в блогах


 Зацените программы собственного изобретения...
На страницу Пред.  
1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов Ангарский Форум -> Персональные компьютеры
<  >  
Автор Сообщение
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 11 Апр 2007 10:38    Заголовок сообщения: Ответить с цитатой

Andrey писал(а):
Попробовал в память грузить?

В память надо грузить какой-то бинарный или текстовый файл, у меня база данных... Конвертить неохота....
Я считаю, что быстрее сделать невозможно... Покрайней мере я сделать быстрее поиск не смогу...
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Dolser
Прохожий
цитировать




Возраст: 30

Награды: Нет
Зарегистрирован: 11.04.2007
Сообщения: 31
Вся репутация : 0
Репутация: +0/-0

    

Откуда: Angarsk (garbage collector)

СообщениеДобавлено: 12 Апр 2007 15:51    Заголовок сообщения: Ответить с цитатой

Попробуйте XML (очень удобный формат для табличных данных).
[/b]
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
MrAK
Аксакал
цитировать



Аксакал

Возраст: 96

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 05.12.2006
Сообщения: 1946
Вся репутация : 64
Репутация: +64/-0

    



СообщениеДобавлено: 13 Апр 2007 09:34    Заголовок сообщения: Ответить с цитатой

Для нас непосвященных все это конечно конечно малопонятно, но вот у меня есть такие данные полученные опытным путем. Имеется DBFка, количество записей 534135, количество полей 221, размер на диске 1,1Gb. Cелективная выборка по текстовому полю (индексировано) в результирующую dbfку из 17 записей, заняла 0,235 сек. Последовальный поиск по заданному полю отработал еще быстрее (цифры уже не пишу Smile ), поиск по индексному ключу в свою очередь отработал быстрее последовательного поиска.
Комп Селерон 2,4/512 ОЗУ, СУБД Visual FoxPro v9.0
таблица есс-но локальная, открывалась в совместном режиме.

З.Ы. SQL - это не метод, это Structured Query Language, язык структурированных запросов Laughing
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 13 Апр 2007 09:51    Заголовок сообщения: Ответить с цитатой

Mrak писал(а):
Для нас непосвященных все это конечно конечно малопонятно, но вот у меня есть такие данные полученные опытным путем. Имеется DBFка, количество записей 534135, количество полей 221, размер на диске 1,1Gb. Cелективная выборка по текстовому полю (индексировано) в результирующую dbfку из 17 записей, заняла 0,235 сек. Последовальный поиск по заданному полю отработал еще быстрее (цифры уже не пишу Smile ), поиск по индексному ключу в свою очередь отработал быстрее последовательного поиска.

" -Пап, пап, а люди существуют... -Нет сынок это фантастика..."
Mrak писал(а):
SQL - это не метод, это Structured Query Language, язык структурированных запросов Laughing

Гы-гы, ещё один... Smile
Вообще я хотел мнение о программах услышать... А не литературный перевод моих мыслей, причём перевод со словарём...
Растроился, но не плачу...

Добавлено спустя 17 минут 41 секунду:

Статья http://www.ixbt.com/news/all/index.shtml?06/13/92
ExcelStor - высокопроизводительный винт ёмкостью 160 гиг.
"Cкорость чтения/записи, внутренняя: 966 Мбит/с;"
Это 966 Мбит/с разделить на 8 бит в байте, это 120.75 МБ/с.
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
LION
Л.Н.Толстой
цитировать



Л.Н.Толстой

Возраст: 51

Награды: 4 (Подробнее...)
Орден Форума 1-й степени (Количество: 1) Медаль осетровая. (Количество: 1) Орден Затмения 1-й степени (Количество: 1)
Зарегистрирован: 16.10.2006
Сообщения: 18682
Вся репутация : 137
Репутация: +185/-48

    

Откуда: аткедава -аттедова

СообщениеДобавлено: 13 Апр 2007 10:20    Заголовок сообщения: Ответить с цитатой

Парни подскажите - самую "лёгкую" программу для просмотр файлов "DB" -блокнот не предлагать Smile

_________________
Я не участвую в сценах, я не торгуюсь о ценах. Делай свое дело! (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Дневник Фотоальбом
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 13 Апр 2007 10:42    Заголовок сообщения: Ответить с цитатой

Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
MrAK
Аксакал
цитировать



Аксакал

Возраст: 96

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 05.12.2006
Сообщения: 1946
Вся репутация : 64
Репутация: +64/-0

    



СообщениеДобавлено: 13 Апр 2007 10:45    Заголовок сообщения: Ответить с цитатой

[quote="Aby"] -Пап, пап, а люди существуют... -Нет сынок это фантастика..."
[quote=]

Ты старших-то таки послушай Андрюша. В техникуме говоришь учился? Плохо ты видимо там Фокс изучал. Используя технологию Rushmore, Фокс ищет не в самой dbfке, а всего лишь в индексе, а индексный файл в данном случае всего 2,3 МБ. SQL-запросы фокса так же используют индексы, при этом явно его не открывая. Отсюда и берется скорость. Причем приведенные мной условия являются идеальными, поиск по & например уже отработает гораздо медленнее.
При этом в соседних областях кроме этой таблицы ничего не открыто, а при реальной работе это обычно 4-5-6 таблиц, да еще связанных.
И не забывай про кэш. Smile Кроме того не ровняй специализированный софт, который почти 20 лет писался и универсальные среды. Вот так вот нужно было ответить, а то сразу "Фантастика!" и обзоры винтов

З.Ы. Тут уже кто-то по матчасть говорил...
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 13 Апр 2007 11:36    Заголовок сообщения: Ответить с цитатой

Mrak писал(а):
Причем приведенные мной условия являются идеальными, поиск по & например уже отработает гораздо медленнее.
При этом в соседних областях кроме этой таблицы ничего не открыто, а при реальной работе это обычно 4-5-6 таблиц, да еще связанных.


Вот сейчас согласен...
Люблю, когда меня фактами тыкают, а не пустыми заученными фразами... Ошибки признавать умею, самоанализ работает...
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
AsPiro
ТелеЗомби
цитировать




Возраст: 20

Награды: Нет
Зарегистрирован: 19.05.2006
Сообщения: 377
Вся репутация : 11
Репутация: +11/-0

    



СообщениеДобавлено: 18 Апр 2007 12:01    Заголовок сообщения: Ответить с цитатой

Даю сцылку для интересующихся скоростями на программульку поиска ангарских телефонов:
http://up.li.ru/?id=282273;_TelAng.rar (3.5 Мб)
В базе 81113 записей. Возможен поиск по подстроке в любом поле или в нескольких сразуSmile

_________________
Нет Романтики В Китае (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 18 Апр 2007 12:27    Заголовок сообщения: Ответить с цитатой

AsPiro писал(а):
Даю сцылку для интересующихся скоростями на программульку поиска ангарских телефонов:
http://up.li.ru/?id=282273;_TelAng.rar (3.5 Мб)
В базе 81113 записей. Возможен поиск по подстроке в любом поле или в нескольких сразуSmile

Бугага! не впечатлил...
Думает дольше моей!

На рекламу купился?
Цитата:
fdb v2.4.3
База данных, предназначенная для специальных проектов, требующих скорости обработки данных и универсальности структур. Платформа - Windows, язык разработки - Delphi.


Добавлено спустя 1 минуту 43 секунды:

Хотя вот это порадовало:
Цитата:
5. Компактность и переносимость БД. Файл библиотеки fdb.dll и модуль поддержки динамических типов borlndmm.dll имеют общий размер порядка 100Кб. fdb не требует установки в систему или регистрации своих компонентов, не зависит от установленных в системе модулей.
6. Полный справочник по функциям и объектной модели fdb, включая уроки для обучения.
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
AsPiro
ТелеЗомби
цитировать




Возраст: 20

Награды: Нет
Зарегистрирован: 19.05.2006
Сообщения: 377
Вся репутация : 11
Репутация: +11/-0

    



СообщениеДобавлено: 18 Апр 2007 12:33    Заголовок сообщения: Ответить с цитатой

Aby писал(а):
Бугага! не впечатлил...
Думает дольше моей!
Твоей не пробовал - по сему впечатлять не собиралсяSmile
Кинь ещё раз сцылку на свою, а то та что из первого поста битаяSad

Aby писал(а):

На рекламу купился?
Цитата:
fdb v2.4.3
База данных, предназначенная для специальных проектов, требующих скорости обработки данных и универсальности структур. Платформа - Windows, язык разработки - Delphi.


Добавлено спустя 1 минуту 43 секунды:

Хотя вот это порадовало:
Цитата:
5. Компактность и переносимость БД. Файл библиотеки fdb.dll и модуль поддержки динамических типов borlndmm.dll имеют общий размер порядка 100Кб. fdb не требует установки в систему или регистрации своих компонентов, не зависит от установленных в системе модулей.
6. Полный справочник по функциям и объектной модели fdb, включая уроки для обучения.
Не знаю где ты это вычитал... Я использовал Yaffil. К "fdb v2.4.3" он не имеет ничего общегоSmile

Добавлено спустя 4 минуты 29 секунд:

Хм... нашёл о "fdb v2.4.3"... точно ничего общего...

_________________
Нет Романтики В Китае (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 18 Апр 2007 13:02    Заголовок сообщения: Ответить с цитатой

Телефонная книга...
http://theacid.narod.ru/FastTel.zip

AsPiro писал(а):
Я использовал Yaffil. К "fdb v2.4.3" он не имеет ничего общегоSmile

И кто у кого украл формат...Интересно...

База на ~72 тыс. первых номеров из ангарского тел. справочника над которыми проводил эксперименты...
http://theacid.narod.ru/List.rar
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
AsPiro
ТелеЗомби
цитировать




Возраст: 20

Награды: Нет
Зарегистрирован: 19.05.2006
Сообщения: 377
Вся репутация : 11
Репутация: +11/-0

    



СообщениеДобавлено: 18 Апр 2007 13:21    Заголовок сообщения: Ответить с цитатой

Aby писал(а):
AsPiro писал(а):
Я использовал Yaffil. К "fdb v2.4.3" он не имеет ничего общегоSmile

И кто у кого украл формат...Интересно...
За "fdb v2.4.3" не скажу, ибо не в курсе что за формат там.
А по поводу Yaffil - славная фирма Borland добровольно отдалаSmile

Добавлено спустя 20 минут 10 секунд:

Поглядел.
На моём компе (P4-2.8Гц, 512Мб) особой разницы не замечаю.
Кстати а почему у тебя всего 72929 записей?
Ну и для порядку покаж запрос которым ищешь...

_________________
Нет Романтики В Китае (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
MrAK
Аксакал
цитировать



Аксакал

Возраст: 96

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 05.12.2006
Сообщения: 1946
Вся репутация : 64
Репутация: +64/-0

    



СообщениеДобавлено: 18 Апр 2007 14:34    Заголовок сообщения: Ответить с цитатой

Подобных поделок типа fdb видел немеряно, начиная с ТурбоПаскаля, и где они только все сейчас...
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 18 Апр 2007 15:01    Заголовок сообщения: Ответить с цитатой

AsPiro писал(а):
Кстати а почему у тебя всего 72929 записей?

Экспорт делал из одного справочника ангарского...формат был непонятный, но похожий на форматированный тестовый...пришлось прямым перебором данные сливать...Т.к. времени у меня свободного нет... не стал долго ждать, пока процесс пройдёт полностью и отрубил...
Там вообще около 1,5 миллиона номеров, откуда столько я не знаю...проверять не берусь...да и нафиг мне это...Просто хотел проверить скорость работы при большом объеме информации. У меня она в трее болтается с моими личными номерами(~100 номеров), ищет всё моментально по любому полю.
AsPiro писал(а):
Ну и для порядку покаж запрос которым ищешь...

Хитрый индеец! Ну да ладно, запрос-то простейший...
Код:

ADOQuery.SQL.Add(' SELECT * FROM User');
ADOQuery.SQL.Add(' WHERE (Name LIKE ''%'+Edit.Text+'%'')');
ADOQuery.SQL.Add(' OR (Tel LIKE ''%'+Edit.Text+'%'')');
ADOQuery.SQL.Add(' OR (Coment LIKE ''%'+Edit.Text+'%'')');
// У меня дальше стоит выбор, по какому столбцу сортируем
// Не имеет отношения к делу поэтому напишу проще
ADOQuery.SQL.Add(' ORDER BY Name');
// ВОТ И ВСЁ!
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
AsPiro
ТелеЗомби
цитировать




Возраст: 20

Награды: Нет
Зарегистрирован: 19.05.2006
Сообщения: 377
Вся репутация : 11
Репутация: +11/-0

    



СообщениеДобавлено: 18 Апр 2007 15:54    Заголовок сообщения: Ответить с цитатой

Aby писал(а):
AsPiro писал(а):
Кстати а почему у тебя всего 72929 записей?

Экспорт делал из одного справочника ангарского...формат был непонятный, но похожий на форматированный тестовый...пришлось прямым перебором данные сливать...Т.к. времени у меня свободного нет... не стал долго ждать, пока процесс пройдёт полностью и отрубил...
Там вообще около 1,5 миллиона номеров, откуда столько я не знаю...проверять не берусь...да и нафиг мне это...Просто хотел проверить скорость работы при большом объеме информации.
ЯсненькоSmile Просто я открыл твою базу и сравнил первые строки со своей и они совпали. Вот и решил что данные изх одного источника. Если не трудно, кинь сцылочку на этот справочник с 1,5 мульёнами номеров - любопытно глянутьSmile

Aby писал(а):
У меня она в трее болтается с моими личными номерами(~100 номеров), ищет всё моментально по любому полю.
Ну поиск среди 100 номеров - сделать медленным надо очень постаратьсяSmile))

Aby писал(а):
AsPiro писал(а):
Ну и для порядку покаж запрос которым ищешь...

Хитрый индеец! Ну да ладно, запрос-то простейший...
Код:

ADOQuery.SQL.Add(' SELECT * FROM User');
ADOQuery.SQL.Add(' WHERE (Name LIKE ''%'+Edit.Text+'%'')');
ADOQuery.SQL.Add(' OR (Tel LIKE ''%'+Edit.Text+'%'')');
ADOQuery.SQL.Add(' OR (Coment LIKE ''%'+Edit.Text+'%'')');
// У меня дальше стоит выбор, по какому столбцу сортируем
// Не имеет отношения к делу поэтому напишу проще
ADOQuery.SQL.Add(' ORDER BY Name');
// ВОТ И ВСЁ!

Мой весьма похож:
Код:
SELECT NUMBER, CLIENT, STREET, HOME, FLAT FROM TEL
WHERE
(NUMBER LIKE :NUMBER)AND
(CLIENT LIKE :CLIENT)AND
(STREET LIKE :STREET)AND
(HOME LIKE :HOME)AND
(FLAT LIKE :FLAT)
ORDER BY CLIENT ASC

Отличие лишь в том, что условия накладываются на 5 полей независимо. И соединяются логическим "И", что более ресурсоёмко по сравнению с твоим вариантом (лог. ИЛИ).

Ради любопытства сейчас попробую сделать с лог. ИЛИ с одинаковым параметром на все поля...

_________________
Нет Романтики В Китае (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 18 Апр 2007 16:23    Заголовок сообщения: Ответить с цитатой

AsPiro писал(а):
Если не трудно, кинь сцылочку на этот справочник с 1,5 мульёнами номеров - любопытно глянутьSmile

Трудно...т.к. она спиз....Эээ... взята из лок. сети...
AsPiro писал(а):
Мой весьма похож:

Различие ещё и в том, что мой ищет символы внутри слова, благодаря лексемме "%". Т.е. если начать поиск буквы "а", то он найдёт слово "КошАк"...
AsPiro писал(а):
Отличие лишь в том, что условия накладываются на 5 полей независимо.

Мне это не грозит...
AsPiro писал(а):
И соединяются логическим "И", что более ресурсоёмко по сравнению с твоим вариантом (лог. ИЛИ).

Что-то сомневаюсь...

Добавлено спустя 2 минуты 22 секунды:

Булевые операции они равнозначны по ресурсоёмкости...
Я так думаю...
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
AsPiro
ТелеЗомби
цитировать




Возраст: 20

Награды: Нет
Зарегистрирован: 19.05.2006
Сообщения: 377
Вся репутация : 11
Репутация: +11/-0

    



СообщениеДобавлено: 18 Апр 2007 16:34    Заголовок сообщения: Ответить с цитатой

Aby писал(а):
AsPiro писал(а):
Если не трудно, кинь сцылочку на этот справочник с 1,5 мульёнами номеров - любопытно глянутьSmile

Трудно...т.к. она спиз....Эээ... взята из лок. сети...
ЖальSad

Aby писал(а):
AsPiro писал(а):
Отличие лишь в том, что условия накладываются на 5 полей независимо.

Мне это не грозит...
AsPiro писал(а):
И соединяются логическим "И", что более ресурсоёмко по сравнению с твоим вариантом (лог. ИЛИ).

Что-то сомневаюсь...

Добавлено спустя 2 минуты 22 секунды:

Булевые операции они равнозначны по ресурсоёмкости...
Я так думаю...
Я там некорректно высказался... Я про количество полей участвующих в условии. Чем больше полей тем дольше проверка условияSmile

Вот вариант с поиском одинаковой подстроки в полях Номер,Клиент,Улица:
http://up.li.ru/?id=282286;_TelAng2.rar
На моём компе тормозов не ощущаетсяSmile

_________________
Нет Романтики В Китае (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Aby
Оратор
цитировать



Оратор

Возраст: 48

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 03.04.2007
Сообщения: 573
Вся репутация : 3
Репутация: +6/-3

    

Откуда: 13 мкр

СообщениеДобавлено: 18 Апр 2007 16:53    Заголовок сообщения: Ответить с цитатой

AsPiro писал(а):
На моём компе тормозов не ощущаетсяSmile

На слово верю...
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Antti
Оратор
цитировать



Оратор

Возраст: 36

Награды: 2 (Подробнее...)
Орден Форума 1-й степени (Количество: 1) За мысли и слова (Количество: 1)
Зарегистрирован: 12.12.2003
Сообщения: 541
Вся репутация : 9
Репутация: +15/-6

    

Откуда: Ангарск

СообщениеДобавлено: 20 Апр 2007 13:56    Заголовок сообщения: Ответить с цитатой

Есть такой вариант....
Он используется для поиска по точно известным реквизитам с точностью до еденицы.

Так как реквизитов запроса много, применяется такайа схема


Идет поиск по первому реквизиту.
Получаем результат.
Далее ищем уже в результате предыдущего запроса, второй реквизит
В данном случае получим точный и краткий результат поиска
При чем можно объеденять несколько реквизитов в один запрос, с использованием LIKE .


Тоесть появится возможность добавлять условия
типа: Фамилия примерно такая, квартал примерно такой, дом точно известен, квартира примерно такая или неизвестна.
И вариантов компонирования много. Даже если в базе не 10 полей а 1000.

Это конечно имеет смысл в миллионной базе но все же ...
тонкая настройка поиска облегчает жизнь.

_________________
100% контрацептивов НЕТ! проверено.
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
AsPiro
ТелеЗомби
цитировать




Возраст: 20

Награды: Нет
Зарегистрирован: 19.05.2006
Сообщения: 377
Вся репутация : 11
Репутация: +11/-0

    



СообщениеДобавлено: 20 Апр 2007 14:03    Заголовок сообщения: Ответить с цитатой

Примерно так и сделано в самом первом варианте моей проги. Единственное, я поленился сделать динамический запрос - скорость работы меня на тот момент устроила и я решил особо не заморачиваться оптимизацией.

_________________
Нет Романтики В Китае (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
AsPiro
ТелеЗомби
цитировать




Возраст: 20

Награды: Нет
Зарегистрирован: 19.05.2006
Сообщения: 377
Вся репутация : 11
Репутация: +11/-0

    



СообщениеДобавлено: 23 Апр 2007 08:54    Заголовок сообщения: Ответить с цитатой

Antti писал(а):
Так как реквизитов запроса много, применяется такайа схема

Идет поиск по первому реквизиту.
Получаем результат.
Далее ищем уже в результате предыдущего запроса, второй реквизит
В данном случае получим точный и краткий результат поиска
При чем можно объеденять несколько реквизитов в один запрос, с использованием LIKE.
Суть Вашей схемы можно выразить таким запросом(для поиска по 3 полям):
Код:
SELECT * FROM
    (
    SELECT * FROM
        (
        SELECT * FROM
            TABLE1
        WHERE FLD1 LIKE :PAR1
        )
    WHERE FLD2 LIKE :PAR2
    )
WHERE FLD3 LIKE :PAR3

Проведём такой мысленный эксперимент:
Будем считать что параметры имеют вид '%бла-бла-бла%', предполагаю поиск подстроки в полях.
Допустим в нашей таблице 1 миллион записей.
Допустим по условию самого первого запроса отбираються 500 тыс. записей. Далее второй запрос пусть из этих 500 тыс. выберет 250 тыс.
И наконец последний запрос из полученных 250 тыс. выбирет 1 тыс.
И теперь посчитаем сколько раз будут перебираться записи для проверки условий: 1000000+500000+250000=1750000 раз!
В случае классического запроса:
Код:
SELECT * FROM TABLE1
WHERE (FLD1 LIKE :PAR1)AND(FLD2 LIKE :PAR2)AND(FLD3 LIKE :PAR3)
Записи будут перебираться ровно 1000000 раз!


Antti писал(а):

Тоесть появится возможность добавлять условия
типа: Фамилия примерно такая, квартал примерно такой, дом точно известен, квартира примерно такая или неизвестна.
И вариантов компонирования много. Даже если в базе не 10 полей а 1000.
В этом случае разумнее применить динамическое формирование запроса.

_________________
Нет Романтики В Китае (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
MrAK
Аксакал
цитировать



Аксакал

Возраст: 96

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 05.12.2006
Сообщения: 1946
Вся репутация : 64
Репутация: +64/-0

    



СообщениеДобавлено: 09 Окт 2009 09:06    Заголовок сообщения: Ответить с цитатой

Aby писал(а):
Mrak писал(а):
Причем приведенные мной условия являются идеальными, поиск по & например уже отработает гораздо медленнее.
При этом в соседних областях кроме этой таблицы ничего не открыто, а при реальной работе это обычно 4-5-6 таблиц, да еще связанных.


Вот сейчас согласен...
Люблю, когда меня фактами тыкают, а не пустыми заученными фразами... Ошибки признавать умею, самоанализ работает...


Что-то вспомнил былое, про скорость обработки баз.
Есть задача, выборка данных по условию, условие это текущая смена. Выборка происходит при добавлении новых данных, для лучшего визуального отображения. Короче говоря чтобы оператор два раза одно и то же не занес внизу экрана отображались все отвесы его смены. Завес и добавление могут происходить изредка, а могут одни за одним. Раз в год базы очищались от старых данных. А тут решили забить и через два года начались тормоза, время выборки увеличилось до 15 секунд, записей около 150 тыс. Запрос связанный из 4+1 таблиц, условие выборки типа
Код:
where base.data_g>=d1 And base.data_g<=d2

Причем добавление ( insert into base from memvar) новой записи проходило моментально, а вот "обновление" пипец... комп Сеleron 2Гц, режим работы сетевой, сеть 100 мб, "опплок" отключен.
В результате "анализа" выяснилось что запрос являлся неоптимизируемым, т.е. т.н. "оптимизация Rusmore" не работала.
Изменив условие запроса на
Код:
WHERE  Base.data_t BETWEEN t_smena_from AND t_smena_to

c предварительным объявлением переменных, запрос стал частично-оптимизируемым ("full optimize" добиваться не стал) и скорость выборки с 15 сек уменьшилась до 1 сек. Сейчас записей за 200 тыс, время выполнения не меняется. А ты говоришь "фантастика".

Сам запрос:
Код:
SELECT Base.id, PROPER(Assort.name), Base.brutto, Base.tara, Base.kol_k,;
  NVL(Spr_pal.name,"ненайдено"), Base.data_t, Base.data_g,;
  Users.username,;
  Base.brutto-Base.tara-(Base.kol_k*Spr_palok.ves) AS netto,;
  NVL(Spr_obol.naim,"ненайдено") AS obol;
 FROM ;
     term!Base ;
    INNER JOIN Term!Users ;
   ON  Base.id_user = Users.id_user ;
    LEFT OUTER JOIN Term!spr_obol ;
   ON  Spr_obol.id_obol = Base.id_obol ;
    INNER JOIN assort ;
   ON  Base.u_n = Assort.u_n ;
    LEFT OUTER JOIN Term!spr_palok ;
   ON  Spr_pal.id_pal = Base.id_pal;
 WHERE  Base.data_t BETWEEN t_smena_from AND t_smena_to;
 ORDER BY Base.data_t DESC
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
LION
Л.Н.Толстой
цитировать



Л.Н.Толстой

Возраст: 51

Награды: 4 (Подробнее...)
Орден Затмения 1-й степени (Количество: 1) Орден Форума 1-й степени (Количество: 1) Медаль осетровая. (Количество: 1)
Зарегистрирован: 16.10.2006
Сообщения: 18682
Вся репутация : 137
Репутация: +185/-48

    

Откуда: аткедава -аттедова

СообщениеДобавлено: 09 Окт 2009 12:48    Заголовок сообщения: Ответить с цитатой

какую базу мучаете то ?

_________________
Я не участвую в сценах, я не торгуюсь о ценах. Делай свое дело! (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Дневник Фотоальбом
AsPiro
ТелеЗомби
цитировать




Возраст: 20

Награды: Нет
Зарегистрирован: 19.05.2006
Сообщения: 377
Вся репутация : 11
Репутация: +11/-0

    



СообщениеДобавлено: 09 Окт 2009 15:41    Заголовок сообщения: Ответить с цитатой

Может LEFT OUTER JOIN'ы на INNER JOIN'ы можно заменить?
Индекс на поле Base.data_t есть?


А вообще FoxPro давно пора на свалку истории.

_________________
Нет Романтики В Китае (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
MrAK
Аксакал
цитировать



Аксакал

Возраст: 96

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 05.12.2006
Сообщения: 1946
Вся репутация : 64
Репутация: +64/-0

    



СообщениеДобавлено: 09 Окт 2009 17:03    Заголовок сообщения: Ответить с цитатой

AsPiro писал(а):
Может LEFT OUTER JOIN'ы на INNER JOIN'ы можно заменить?
Индекс на поле Base.data_t есть?.

Индекс есть, замена JOINов ни к чему ни приводила.


AsPiro писал(а):
А вообще FoxPro давно пора на свалку истории.


Конечно пора, но... Среди настольных СУБД равных ей по скорости не было и нет. Другое дело что за нее раньше брались тетки с трудом перешедшие с PL/1 на dBase и всех прелестей FPD2.6b, не говоря уже о VFP, так и ниасилившие и в конечном итоге писавшие убогую горбуху...
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
Alex_Seedish
Прохожий
цитировать




Возраст: 31

Награды: Нет
Зарегистрирован: 06.10.2009
Сообщения: 7
Вся репутация : 0
Репутация: +0/-0

    

Откуда: Ангарск-Таун

СообщениеДобавлено: 11 Окт 2009 01:50    Заголовок сообщения: Ответить с цитатой

Я балдею, думал в Ангарске кроме паскаля и кубейсика люди мало чо видели. А кто деньги зарабатывает программированием из Вас? Реально вообще?

_________________
Парень ВЫСОКИХ температур
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
ForTruth
Знающий человек
цитировать



Знающий человек

Возраст: 40

Награды: Нет
Зарегистрирован: 26.01.2009
Сообщения: 781
Вся репутация : 35
Репутация: +35/-0

    



СообщениеДобавлено: 11 Окт 2009 21:59    Заголовок сообщения: Ответить с цитатой

Ещё во времена Спектрума попалась мне статья в «Технике Молодёжи», в которой описывалась настольная игра под названием «Жизнь».
Наверное, люди, так или иначе имеющие отношение к программированию, слышали о ней.
Во всяком случае, описание есть в википедии.
Так вот в настольном варианте использовался довольно большой набор фишек, и требовалась такая же концентрация внимания.
Я и подумал: а почему бы не автоматизировать процесс. Первая реализация была на Спектруме, ну а потом и на РС.
Это мой единственный "серьёзный" Very Happy опыт программирования. Правда, на VB. Very Happy

_________________
Не всякий учитель есть источник знаний, равно как и любой из них может стать источником заблуждений... (с)
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
MrAK
Аксакал
цитировать



Аксакал

Возраст: 96

Награды: 1 (Подробнее...)
Орден Форума 1-й степени (Количество: 1)
Зарегистрирован: 05.12.2006
Сообщения: 1946
Вся репутация : 64
Репутация: +64/-0

    



СообщениеДобавлено: 12 Окт 2009 08:50    Заголовок сообщения: Ответить с цитатой

Хм, я когда-то про "Жизнь" читал в каком-то еще советском журнале типа "Радио" и игра соответственно была для советского компа на КР580 типа РК-86 или "Микроши" Smile
"Портированная" в общем Laughing

Цитата:
Я балдею, думал в Ангарске кроме паскаля и кубейсика люди мало чо видели. А кто деньги зарабатывает программированием из Вас? Реально вообще?


Дыкть это же начала, раньше каждый должен был это пройти. У меня один стьюдент написал на кушке целый эмулятор технологической цепочки, причем элементы цепочки выбирались мышкой, вращались, проходили логическую проверку в этой цепочке и потом это все типа работало, задавались параметры, менялись параметры, юзер играл роль оператора установки. И все это на qbasice в ДОСе, а там нужно было целый интерфейс связи с мышом писать.
Правда до конца он все так и не доделал, но свое "отлично" получил. Сейчас этот стъюдент получил уже ученую степень, правда по истории Laughing
Вернуться к началу
Не в сети Посмотреть профиль Отправить личное сообщение Фотоальбом
ТОЛЯ
Гость
цитировать












    



СообщениеДобавлено: 12 Май 2011 18:54    Заголовок сообщения: СРОЧНО Ответить с цитатой

КТО МОЖЕТ НАПИСАТЬ ПРОГРАММУ В DELPHI РАЗУМЕЕТЬСЯ НЕ БЕСПЛАТНО ВОТ НОМЕР ЗВОНИТЕ 89500975750
Вернуться к началу
Имя
Роботизм Для Вашей идентификации поставте галочки, напротив нужных пунктов.
 - Да, я бот !.  - Я не Бот.  - И не был ботом
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea sick
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Ангарский Форум -> Персональные компьютеры Часовой пояс: GMT + 9
На страницу Пред.  
1, 2, 3  След.
Страница 2 из 3
 

Перейти:  
Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы не можете скачивать файлы в этом форуме




Не хотите смотреть рекламу на форуме ? Прочтите эту тему