|
|
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Привет всем. Особое спасибо тем кто мне помог в теме ИСПОЛЬЗОВАНИЕ ВХОДНЫХ ПЕРЕМЕННЫХ В ОПЕРАТОРАХ IN И BETWEEN . Возникла новая проблема. Меня не устраивает время выполнения моей процедуры, которая фактически представляет собой навороченный select. Сориентируйте пожалуйста каково оптимальное время выполнения запроса? У меня выполняется где-то за 2 s 200 ms. Но это через IBExpert. Когда я пробую тоже провернуть через клиентский набор данных в Delphi у меня практически всё виснет. Не понимаю что происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 20:27 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
в IBExpert можно посмотреть так называемый "палн выполения запроса". я уверен, что у Вас не используются индексы. Почитайте в этой области теории и документации.... если что непонятно, спрашивайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 20:33 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Насчёт индексов: 1 первичный ключ - по полю Счётчик 5 внешних ключей - связи со справочниками. Поясни пожалуйста как вообще использовать индексы при запросе или существующие индексы сами используются? Plan PLAN (USERS NATURAL) Adapted Plan PLAN (USERS NATURAL) ------ Performance info ------ Prepare time = 3ms Execute time = 2s 173ms Avg fetch time = 241,44 ms Current memory = 9 532 416 Max memory = 9 654 384 Memory buffers = 2 048 Reads from disk to cache = 0 Writes from cache to disk = 2 Fetches from cache = 993 825 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 20:56 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
ну, а теперь запрос ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 20:59 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
> Поясни пожалуйста как вообще использовать индексы при запросе или существующие индексы сами используются? должны использоваться сами, если могут. в вашем случае - не используются (не могут, скорее всего потому что отсутствуют нужные), о чем говорит слово "натурал". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:00 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Допустим я пишу: select * from users И результат такой же, т.е. индексы не используются, но почему не понятно Plan PLAN (USERS NATURAL) Adapted Plan PLAN (USERS NATURAL) ------ Performance info ------ Prepare time = 5ms Execute time = 2ms Avg fetch time = 0,20 ms Current memory = 9 535 463 Max memory = 10 160 608 Memory buffers = 2 048 Reads from disk to cache = 0 Writes from cache to disk = 6 Fetches from cache = 429 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:13 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
а когда выбираете все строки и не сортируете - их и незачем использовать! :) у вас же не так? вы и отбираете по каким-то значениям, и сортируете? че, запрос секретный какой? давайте его сюда, ругаться не буду :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:19 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Запрос не секретный, а просто очень страшный. Я боюсь меня будут ругать на чём свет стоит за то что всё это можно было бы сделать по-другому. Итак: (просто необходимо вычислить планы поставок, продаж, и ещё по двум тарифным ставкам - каждый на год) - это только часть begin for select users.*, users.JANUARY*(select opmeaning from proc_ttr(:IPJANUARY, users.K_GRO, (select opmeaning from proc_cu(users.JANUARY, users.FEBRUARY, users.MARCH, users.APRIL, users.MAY, users.JUNE, users.JULY, users.AUGUST, users.SEPTEMBER, users.OCTOBER, users.NOVEMBER, users.DECEMBER, users.K_GROUP_USERS)), :IPNDS)), users.FEBRUARY*(select opmeaning from proc_ttr(:IPFEBRUARY, users.K_GRO, (select opmeaning from proc_cu(users.JANUARY, users.FEBRUARY, users.MARCH, users.APRIL, users.MAY, users.JUNE, users.JULY, users.AUGUST, users.SEPTEMBER, users.OCTOBER, users.NOVEMBER, users.DECEMBER, users.K_GROUP_USERS)), :IPNDS)), users.MARCH*(select opmeaning from proc_ttr(:IPMARCH, users.K_GRO, (select opmeaning from proc_cu(users.JANUARY, users.FEBRUARY, users.MARCH, users.APRIL, users.MAY, users.JUNE, users.JULY, users.AUGUST, users.SEPTEMBER, users.OCTOBER, users.NOVEMBER, users.DECEMBER, users.K_GROUP_USERS)), :IPNDS)), from users into :COUNTER, :NAME_USERS, :K_REGION, :K_BRANCH, :K_CONTRACT, :K_GRO, :K_GROUP_USERS, :JANUARY, :FEBRUARY, :MARCH, :APRIL, :MAY, :JUNE, :JULY, :AUGUST, :SEPTEMBER, :OCTOBER, :NOVEMBER, :DECEMBER, :JANUARYTTR, :FEBRUARYTTR, :MARCHTTR do suspend; end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:27 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
не удержусь: о майн готт!!! ;) выбирается вся таблица и натурала не избежать. могу предложить не считать, а хранить данные - завести еще таблицу, где по юзерам, годам и месяцам хранить посчитанные данные.... usercounter (это я так понял уникальный ключ) year integer month integer (1-12) value (что там считается) может, кто еще поскажет, а у меня крыша поехала..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 21:59 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Daa...............:) Mojo licjnoje mnjenije, nacjinai vsje c nacjala. Slishkom zamucjena eta procedura. Malcik ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2004, 07:25 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Мдя. Лучше начать сначала и перепроетировать БД. Судя по запросу это попытка работать с SQL сервером как с плоской БД, а это ивил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2004, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32401409&tid=1579249]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 446ms |

| 0 / 0 |
