Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем! Подскажите плиз, есть такой запрос: Select distinct v_crinvoice.id_n, v_crinvoice.numb_in, v_crinvoice.date_in,; v_crinvoice.lname, v_crinvoice.custname, v_crinvoice.address,; v_crinvoice.cashdate, v_crinvoice.amount, v_crinvoice.d_amount; From v_crinvoice, v_crcash; Where (LEFT(alltrim(v_crinvoice.vsrcode),2)='MS') and; (v_crinvoice.numb_in not in (Select v_crcash.numb_in From v_crcash; Where LEFT(alltrim(v_crcash.vsrcode),2)='MS')) or; ((v_crinvoice.numb_in = v_crcash.numb_in and; LEFT(alltrim(v_crcash.vsrcode),2)='MS' and; left(v_crinvoice.id_n,2) # left(v_crcash.id_n,2))); Into cursor 'Temp_Itog' Выполняется он около 17 минут при том, что компьютер у меня не самый слабый. Результат запроса верный Помогите, может кто знает как можно его оптимизировать. Заранее благодарна. С уважением, Юля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 14:12 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. Нужны соответствующие индексы LEFT(alltrim(v_crinvoice.vsrcode),2) v_crinvoice.numb_in v_crcash.numb_in LEFT(alltrim(v_crcash.vsrcode),2) left(v_crinvoice.id_n,2) left(v_crcash.id_n,2) а также см. SET EXACT SET ANSI и посмотри пример ниже Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 14:28 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
Юля, ты уверена, что надо Код: plaintext 1. 2. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 14:45 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
Есть у нее условие объединения. Просто сам запрос "слепо" написан. Может имеет смысл сделать 2 последовательных запроса. Как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. А вторым запросом отобрать только записи у которых Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 14:57 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
Владимир, в упор не вижу условия объединения. :( Вижу подзапрос - в подзапросе еще одно обращение к v_crcash, но зачем она фигурирует также и во FROM внешнего запроса?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 15:07 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
Вот исходный запрос в "адаптированном" виде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Тут действительно есть лишняя часть, но в таком виде выбросить вторую таблицу нельзя. Объединение идет после OR. По сути, надо выполнить 2 последовательных запроса. Если разделить "в лоб" то получим: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 15:28 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
Ну так того, что там OR, вполне достаточно, чтобы началось декартово произведение ;-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 15:44 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
2Юля: ВладимирМ показал, как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2005, 15:47 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
ВладимирМ, inner join не понимает я работаю в VFP3.0, в нём интересно будут работать условия объединения?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2005, 06:13 |
|
||
|
Как оптимизировать запрос и сократить время его выполнения
|
|||
|---|---|---|---|
|
#18+
Всё разобралась, Всем спасибо, а особенно Владимиру СПАСИБОЧКИ!! Всё работает!!!!!!! Сколького же ещё я не знаю и не умею, сколькому ещё предстоит научиться... С уважением, Юля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2005, 06:26 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32897378&tid=1594941]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 406ms |

| 0 / 0 |
