![]() |
|
|
![]()
|
|
| FallFan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| neic |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 839 Регистрация: 28.1.2007 Репутация: нет Всего: 7 |
Блин, ты всегда как-то запутано говоришь своими псевдоалгоритмами.
Скажи: что входит в программу(какие данные), что в ней должно происходить (пункт не обязателен), что должно выходить. |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: нет Всего: 49 |
Эффект будет достигнут только при условии, что скорость доступа к промежуточным поисковым таблицам + их обновление будет превышать скорость поиска этих данных.
По вашему алгоритму непонятно что будет происходить, если записи изменялись. Не их количество, а именно их содержание. -------------------- Я желаю всем Счастья! |
|||
|
||||
| FallFan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 30.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
Программа (функция) выполняет простой поиск по БД (Access 2003). Имеются поля "Вопрос", "Ответ", "Комментарий" с типом данных «MEMO», поле "Index", тип данных «числовой» и поле «Flags» с типом данных «текстовый». Поиск происходит по полям "Вопрос", "Ответ", "Комментарий".
Заливать многостраничный тест в БД, пока не собираюсь – ограничиваюсь ссылками на файлы, поэтому возможно с «MEMO» перейду на «текстовый». На выходе программа(Функция) выдает номера записей ("Index") при совпадении. В поле "Flags" записываются флаги состояния записи (новая запись, нет ответа, нет комментария и т.д) туда же вставлю флаг измений записи. Это сообщение отредактировал(а) FallFan - 6.8.2009, 16:51 |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |