|
|
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
имеем 3 таблицы.... в первой 3 тыс. записей второй 10 т. третей 25 т. Делаю обьединение по одной записи т.е. select * from t1,t2,t3 where t1.id = t2.id and t2.id = t3.id and id = 3 Как с помощью индексов сделать данный запрос максимально быстрым? (разумееться у меня нет такого запроса :) просто обьеденяться они так... :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 17:15 |
|
||
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
Построй индексы по всем полям, которые у тебя в where участвуют. Дальше оптимизатор сделает всё за тебя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 17:17 |
|
||
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
Так совсем не заметен прирост производительности :( Может можно как-то хитрее сделать? Может есть как-то общий запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 20:36 |
|
||
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
Вообще говоря запрос выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И что тут предпринять по улучшению производительности - ума не приложу... может есть какие статьи. Типа индексы в InterBase :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 00:05 |
|
||
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
Начнем с запроса: from t1,е2,t3 заменить на from t1 inner join t2 on (t1.id = t2.id) и т.д. and t1.naz_up like :naz_in and t1.tel like :tel При Like индексы исп. только когда первые символы не % and upper(t2.fam COLLATE PXW_CYRL) like :fam and upper(t2.ima COLLATE PXW_CYRL) like :ima and upper(t2.otch COLLATE PXW_CYRL) like :otch при upper индексы не исп. and t3.date_otch between :start_date and :end_date индекс по t3.date_otch t1.id t2.id t3.id - первичные ключи или ...? индексы по всем А статьи на лучшем сайте по Interbase ------------------------ С уважением, Denis Uskov ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 08:33 |
|
||
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
inner join - спасибо попробую (но я где-то читал, помоему как раз на ibase.ru что лучше писать как раз ка у меня а не inner join) % - мне нужны т.к. поиск ведёться только по части значения На счет upper. И так понятно что индекс там не используеться. Вопрос имеет ли смысл создать для этих значений отдельные поля в которых будут уже готовые значения т.е. upper(t2.fam COLLATE PXW_CYRL) ? Получаеться не придёться делать upper всех записей (меньше нагрузка на сервак) и будут работать индексы (быстрее!) t1 - главная таблица id - номер клиента (тут он уникален получаеться) t2 и t3 - не уникален на ibase.ru что-то ничего супер-пуппер по индексам не нашёл :( Может естькакая книжка по идеологии индексов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 09:08 |
|
||
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
индексы на t1.id t1.nazvanie //t1.naz_up //t1.tel t2.id t3.id t3.date_otch убрать дистинкт, как лишний и мешающий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 09:24 |
|
||
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
1)Добавил поля для upper 2) индексы вовсех таблицах по id Скорость работы не увеличилась.....:( Видать в определённый момент индексы только мешают что и ломает всё картину (про upper - не вопрос нагрузка на сервак должна быть меньше). Вывод: Поиск веду по заготовленному значению аппер, индексы пока не парю... поглядим что будет когда база ещё увеличиться.....(или выдет fb2 которая может отключаться ненужные индексы :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 09:48 |
|
||
|
Индексы....
|
|||
|---|---|---|---|
|
#18+
и зачем использовать COLLATE PXW_CYRL ? попробуй вот так : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 10:10 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32416435&tid=1579175]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
169ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 435ms |

| 0 / 0 |
