Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [VB6] Поисковик с запоминанием запросов, вопрос производительности 
V
    Опции темы
FallFan
Дата 21.7.2009, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 30.3.2008
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Все доброго времени суток!

Создается новая таблица "Прошлые Запросы" с тремя полями ("Запрос", "Индексы строк вывода на запрос", "Количество записей на момент запроса"). 

Далее реализуется алгоритм при совпадении текущего запроса с полем "Запрос" из таблицы "Прошлые Запросы" ("Запрос" = Текущий запрос):

1. Если 
       "Количество записей на момент запроса" < Текущее количество записей,
    То 
       производим поиск для запроса заново
    И
       обновляем информацию для запроса в "Прошлые Запросы".

2. Если 
       "Количество записей на момент запроса" = Текущее количество записей,
    То 
       производим вывод строк  с индексами = "Индексы строк вывода на запрос".

3. Если 
       "Количество записей на момент запроса" > Текущее количество записей,
    То 
       производим поиск для запроса в записях у которых индекс > "Количество записей на момент запроса" и выводим их
    И
       добавляем к уже выведеным записям, записи у которых индекс = "Индексы строк вывода на запрос".
    И
       обновляем информацию для запроса в "Прошлые Запросы".      

Количество записей будет от 1000 до 5000 (в основной базе) и от 100 до 1000 в "Прошлые Запросы", а колличество одновременных пользователей максимум 15-20. Предел задержки вывода результата 1-1.5 мин. (т.е. не критично). Поиск по всем записям основной базы будет редким исключением, т.к. введен поиск в определенных категориях.

Вопрос: Будет ли ощутимый прирост в скорости работы программы при такой реализации, если принять, что каждый текущий запрос имеет 
              вероятность в 50% совпасть с "Запрос" из "Прошлые Запросы"?
              ... 25% ?

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

Это сообщение отредактировал(а) FallFan - 21.7.2009, 23:48
PM   Вверх
neic
Дата 23.7.2009, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Блин, ты всегда как-то запутано говоришь своими псевдоалгоритмами.

Скажи: что входит в программу(какие данные), что в ней должно происходить (пункт не обязателен), что должно выходить.
PM MAIL WWW ICQ Skype   Вверх
Naghual
Дата 23.7.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: нет
Всего: 49



Эффект будет достигнут только при условии, что скорость доступа к промежуточным поисковым таблицам + их обновление будет превышать скорость поиска этих данных.

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


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
FallFan
Дата 6.8.2009, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 30.3.2008
Где: Санкт-Петербург

Репутация: нет
Всего: нет



  Программа (функция) выполняет  простой поиск по БД (Access 2003). Имеются поля "Вопрос", "Ответ", "Комментарий" с типом данных «MEMO», поле "Index", тип данных «числовой» и поле «Flags» с типом данных «текстовый». Поиск происходит по полям "Вопрос", "Ответ", "Комментарий".
 
   Заливать многостраничный тест в БД, пока не собираюсь – ограничиваюсь ссылками на файлы, поэтому возможно с «MEMO» перейду на «текстовый».

   На выходе программа(Функция) выдает номера записей ("Index") при совпадении.

   В поле "Flags" записываются флаги состояния записи (новая запись, нет ответа, нет комментария и т.д) туда же вставлю флаг измений записи.  


Это сообщение отредактировал(а) FallFan - 6.8.2009, 16:51
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0406 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.