![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Построение запросов и поиск по полям [D6, IB6.x]
erika © (2005-07-14 14:57:00)Здравствуйте!
У меня IB. Проблема заключается в следующем:
* три таблицы - клиент (РК INK)
- билет (РК IDK, FK INK)
- покупки (РК ISL, FK IDK),
которые свзаны соответсвенно клиент -> билет -> покупки
* обсновной таблицей является клиент, у которого может быть несколько книжек и определенное количество покупок по каждой из них
* формируется запрос
select * from <клиент>
inner join <билет> on <клиент>.ink= <билет>.ink
inner join <покупка> on <билет>.idk = <покупка>.idk
where <покупка>.nombers <=5
order by <билет>.DKNOM, <билет>.DKP, <покупка>.nombers
который выбирает из базы всех клиентов с количеством покупок по книжке не более 5% ( в результате получается ококло 70500 позиций)
Вопросы:
1. Почему формирование запроса выполняется в течении 3-5 минут (для пользователя это слишком долго)?
2.Поиск по набору данных как при использовании IBTable (если запрос сопоставляется с VIEW), так и при использовании IBDATASET (если запрос прописывается в SelectSQL) осуществляется с существенной задержкой (поле поиска не является PK или FK); как можно ускорить поиск?
Заранее благодарна.
erika (2005-07-14 15:26:00) [1]create index - куда идти что бы сформировать, где и чего нажимать (если можно???)
erika (2005-07-14 15:19:00) [2]поиск производится по полям <билет>.DKNOM, <билет>.DKP, если использую IBTable, то при поиске прописываю IBTable.IndexFieldName := DKNOM, а как построить index в IB (работаю через IBExpert), я не знаю
Val (2005-07-14 15:13:00) [3]см.sql help - create index.
а в IBExpert это интуитивно понятно :)
erika (2005-07-14 15:11:00) [4]поси производится по полям <билет>.DKNOM, <билет>.DKP, если использую IBTable, то при поиске прописываю IBTable.IndexFieldName := DKNOM, а как построить index в IB (работаю через IBExpert), я не знаю
evvcom (2005-07-14 15:03:00) [5]
> как можно ускорить поиск?
построить индекс по <покупка>.nombers
Val (2005-07-14 15:00:00) [6]1.видать, все дело в индексах.
2.а нельзя ли перекинуть условие where and'ом в последний join?