Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.28;
Скачать: CL | DM;

Вниз

Построение запросов и поиск по полям   Найти похожие ветки 

 
erika ©   (2005-07-14 14:57) [0]

Здравствуйте!

У меня 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); как можно ускорить поиск?

Заранее благодарна.


 
Val ©   (2005-07-14 15:00) [1]

1.видать, все дело в индексах.
2.а нельзя ли перекинуть условие where and"ом в последний join?


 
evvcom ©   (2005-07-14 15:03) [2]


> как можно ускорить поиск?

построить индекс по <покупка>.nombers


 
erika ©   (2005-07-14 15:11) [3]

поси производится по полям <билет>.DKNOM, <билет>.DKP, если использую IBTable, то при поиске прописываю IBTable.IndexFieldName := DKNOM, а как построить index в IB (работаю через IBExpert),  я  не знаю


 
Val ©   (2005-07-14 15:13) [4]

см.sql help - create index.
а в IBExpert это интуитивно понятно :)


 
erika ©   (2005-07-14 15:19) [5]

поиск производится по полям <билет>.DKNOM, <билет>.DKP, если использую IBTable, то при поиске прописываю IBTable.IndexFieldName := DKNOM, а как построить index в IB (работаю через IBExpert),  я  не знаю


 
erika ©   (2005-07-14 15:26) [6]

create index - куда идти что бы  сформировать, где  и  чего нажимать (если можно???)



Страницы: 1 вся ветка

Текущий архив: 2005.08.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
6-1116131265
A№t0№
2005-05-15 08:27
2005.08.28
Определение подключения к интернету


1-1123144619
Starcom
2005-08-04 12:36
2005.08.28
Есть кусок кода, как оптимизировать, что не так, где дурной тон?


4-1120639293
Demidoff
2005-07-06 12:41
2005.08.28
Как работает ShellChangeNotifier.


3-1121176529
redlord
2005-07-12 17:55
2005.08.28
создание базы данных для конкретной задачи


1-1123650757
gma
2005-08-10 09:12
2005.08.28
Проблема с FastReport