Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Медленно работает LIKE [D7, FireBird 1.5]


Страницы:   1 2 3 4 5

galexis ©   (2006-06-22 10:28:00) 

Используется запрос типа select * from Table Where (Fld1 LIKE '%' || 'Text' || '%')

Данные Fld1 (тип VarChar длина 1000) состоят из нескольких слов (наименовние предприятий).
Так вот. Ищу, например, "Горьковский автомобильный завод" по одному слову "автомобильный". Запрос выполняется меньше секунды. Пытаюсь провести поиск по неполному слову, например, "горьковск" - и тут все, поиск идет минут 20.
Чего бы это?


galexis   (2006-06-22 11:13:00) [81]


> sniknik ©


> а "Горьковский" также быстро ищется, или  только "автомобильный"?
>  и потом проверки делались на том запросе который показан
> или "оригинале"?

Любое предприятие по целому слову ищется быстро, по двум и более тоже, а вот по неполному резко время поиска увеличивается. Если поиск отменить (поиск в фоне идет), то требуемое предприятие тоже находится.


galexis   (2006-06-22 11:09:00) [82]


> Sergey13 ©

Да, один и тот же запрос, меняется только фраза поиска. Чем она длинее, тем быстрее поиск, чем короче, тем медленнее. В принципе так и должно, но разница у слишком большая. Структура базы навязана свыше :)

Бэкап делаю раз в месяц, после обновления базы. Ресторе не делал, попробовать?


sniknik   (2006-06-22 11:08:00) [83]

> Не факт. Зависит от задачи. Может это и есть справочник. 8-)
ага, и где это у нас 80 тыс различных автомобильных заводов? или вообще заводов?
думал про это, но не похоже. (у нас справочники товаров меньше бывают... а тут заводы которые их производят...)

по вопросу
а "Горьковский" также быстро ищется, или  только "автомобильный"? и потом проверки делались на том запросе который показан или "оригинале"?


Sergey13   (2006-06-22 10:54:00) [84]

2 [2] galexis   (22.06.06 10:43)
> Таблица по которой LIKE - 80 тыс. записей.
Не так и много, в принципе.

> Запрос я конечно упростил до некуда, на самом деле выборка
> идет из порядка 50 таблиц.
И без LIKE он не тормозит? 50 таблиц - что-то многовато, ИМХО. Это надо умудриться такой написать. 8-) У меня больше 10-15 редко-редко встречается. Не слишком ли занормализована БД?
Конкретно приведенный запрос тормозит при смене слова поиска?

> Б/Р - это что?
Бекап/рестор.

2 [3] sniknik ©   (22.06.06 10:46)
>по правильному это строковое название не должно присутствовать в основной таблице в куче записей... надо делать отдельный справочник названий

Не факт. Зависит от задачи. Может это и есть справочник. 8-)


galexis   (2006-06-22 10:53:00) [85]


> sniknik ©

Я в курсе про справочник. Сначала база была небольшая, теперь руки не доходят, но сделаю обязательно.
Совсем недавно такие запросы выполнялись быстро, около 30 секунд и это устраивало пользователей. Ничего в программе не менял, в базе тоже и вот такая фигня. Чем отличается поиск по целому слову от поиска по части слова? Поле то одно и тоже.


sniknik   (2006-06-22 10:46:00) [86]

> Ищу, например, "Горьковский автомобильный завод"
по правильному это строковое название не должно присутствовать в основной таблице в куче записей... надо делать отдельный справочник названий, в основной только ссылки на него. тогда и размер базы будет меньше, и поиск будет в меньшей таблице происходить, а выборка по связке с ключевым полем будет "летать"...
в общем почитай про нормализацию баз данных. (поиск, google)


galexis   (2006-06-22 10:43:00) [87]

Таблица по которой LIKE - 80 тыс. записей.
Запрос я конечно упростил до некуда, на самом деле выборка идет из порядка 50 таблиц. Но в данном случае меняется только одно слово поиска.
Б/Р - это что?


Sergey13   (2006-06-22 10:35:00) [88]

>Медленно работает LIKE
Это нормально.

>и тут все, поиск идет минут 20.
Велика ли таблица? Б/Р нормально проходят?


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо