Форум: "Базы";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
ВнизПоиск и скорость поиска Найти похожие ветки
← →
AlexLines (2007-03-02 15:53) [0]Уважаемые знатоки. Есть БД Парадокс в ней 11 тыс. записей поле memo
Провожу поиск по полю memo
Query1.SQL.Add("SELECT * FROM My.db Where BodyMemo like "%А%"");
В том случае, если искать А или В или К и т.д. происходит отбор практически всех записей (11 тыс.). В том случае, если слово Александр допустим 500 записей.
В первом случае поиск происходит за 15 секунд, во втором менее 1 секунды.
В связи с этим не понятно, для того, чтобы отобрать 500 записей оператору, как я понимаю, необходимо просмотреть все. Почему же поиск занимает значительно меньшее время?
Если найдено 11 тыс. записей не понятно на что уходит целых 14 секунд?
Заранее благодарю
← →
Desdechado © (2007-03-02 15:57) [1]Во-первых, это не поиск, а отбор (поиск - это позиционирование на записи, удовлетворяющей условию).
Во-вторых, по MEMO-полям всегда идет полный перебор.
В-третьих, часть записе может быть при переборе отсеяна сразу за счет длины искомого слова, например.
В-четвертых, помним о кэшировании данных.
← →
AlexLines (2007-03-02 16:04) [2]Понял, спасибо
А можно ли в этом случае ускорить поиск. Если да то какие пути возможны ...
← →
Desdechado © (2007-03-02 16:11) [3]
like "%А%"
ускорить нельзя, даже не для MEMO-полей
← →
AlexLines (2007-03-02 16:15) [4]Т.е. вариантов нет никаких? Какие подходы к организации поиска есть, если не использовать like "%A%"
← →
Плохиш © (2007-03-02 16:20) [5]
> В первом случае поиск происходит за 15 секунд, во втором
> менее 1 секунды.
>
> В связи с этим не понятно, для того, чтобы отобрать 500
> записей оператору, как я понимаю, необходимо просмотреть
> все. Почему же поиск занимает значительно меньшее время?
>
>
> Если найдено 11 тыс. записей не понятно на что уходит целых
> 14 секунд?
Они уходят на передачу тебе остальных 10500 записей...
← →
AlexLines (2007-03-02 16:27) [6]Ну и Плохиш. Варианты, какие есть по поиску в БД, чтобы не было торможения а?
← →
Romkin © (2007-03-02 16:31) [7]Полнотекстовый поиск - сам организуй данные так, чтобы поиск был быстрым
← →
AlexLines (2007-03-02 16:35) [8]Так вот я и хочу узнать хотя бы о подходах к организации такого поиска
← →
Сергей М. © (2007-03-02 16:38) [9]Ему про фому говорят, а он все про ерему свое гнет)
← →
AlexLines (2007-03-02 16:43) [10]Так вот прошу про фому поподробнее. Вообще так что ли сложно ответить, если вы конечно же знаете?
← →
Виталий Панасенко © (2007-03-02 16:44) [11]использовать индексы. что, в твоем случае, невозможно...
← →
AlexLines (2007-03-02 16:48) [12]Если не сложно, можете подсказать литературу или какие-либо статьи по индексам, чтобы можно было хотя бы с чего-то начать?
← →
Sergey13 © (2007-03-02 16:50) [13]> AlexLines
А что у тебя в этом поле?
← →
Сергей М. © (2007-03-02 16:51) [14]
> AlexLines (02.03.07 16:48) [12]
Какие индексы по мемо-полю ?
Нет таких. И быть не может.
← →
AlexLines (2007-03-02 16:53) [15]
> А что у тебя в этом поле?
Текст - приблизительно 1000 знаков
← →
Сергей М. © (2007-03-02 16:54) [16]
> AlexLines
Переводи свой софт на любую сколь-либо серьезную SQL-серверную СУБД-платформу.
Там ты сможешь задействовать на серверной стороне пользовательские ф-ции, в которых можно до определенных пределов оптимизировать полнотекстный поиск.
← →
Sergey13 © (2007-03-02 16:55) [17]> [15] AlexLines (02.03.07 16:53)
Я догадывался, что там символы и имел в виду - по смыслу там что?
← →
AlexLines (2007-03-02 16:57) [18]Спасибо, Сергей М.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.05 c