|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
Здорова товарищи. Хочу сделать запрос следующего характера (хочу узнать какое количество и сколько продано каждого товара, на какой то период, или там в каком филиале сколько продано) Есть следующие таблицы Код: sql 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52.
Делаю вот такой запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Но выполняется он где 1s 150ms или 992ms Ну то ест долго. в таблице записей около 200 тыс. Не подскажите как мне оптимизировать этот запрос, чтоб он выполнялся быстрее Заранее спасибо!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 02:36 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5.
Что-то я не могу понять - зачем здесь таблица orders Связь есть, но никакие данные оттуда не берутся. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 02:52 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
982183, Мне нужно из таблицы вытаскивать, вытаскивать, данные за определенный период то есть даты или время, то есть нужно допустим я задам временной интервал , и мне должен запрос вернуть сколько товара и продано за этот период ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 03:01 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
Увидел в комментах. Но проблему не понимаю. Время вполне комфортное. Я решаю подобные мелкие задачи не запросами-отчетами, а готовлю набор данных в EXEL, а на местах уже в сводных таблицах пользователи группируют их по своему желанию. 800т записей обрабатываются вполне комфортно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 03:14 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
MBlack, Приведённое время с учётом фильтра по дате? Надеюсь, индекс по дате есть? Покажи план выполнения. Я бы ещё left join на inner join поменял. Иногда помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 10:53 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
По дате индекс есть CREATE INDEX ORDERS_IDX4 ON ORDERS (ORDERDATE); ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 12:18 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
Вот план План PLAN JOIN (SORT (JOIN (T O INDEX (ORDERS_IDX4), T OD INDEX (FK_ORDERSDETAILS_2), T P INDEX (PK_PRODUCTS))), P INDEX (PK_PRODUCTS)) ------ Информация о производительности ------ Время подготовки запроса = 47ms Время выполнения запроса = 1s 60ms Среднее время на получение одной записи = 43,68 ms Current memory = 38 449 640 Max memory = 101 708 832 Memory buffers = 2 048 Reads from disk to cache = 667 Writes from cache to disk = 4 Fetches from cache = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 12:21 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
MBlack, ну и чём тебе время не нравится. 1 секунда это вполне нормально, вот если бы 1 минута... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 12:27 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 12:54 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
MBlackReads from disk to cache = 667 Writes from cache to disk = 4 Fetches from cache = 0 Это первый запрос к холодной базе, он упирается в скорость диска. На продакшене либо ставь более быстрые диски, либо не давай базе остыть. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 13:06 |
|
Вопрос по оптимизации запроса
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЭто первый запрос к холодной базе лиюо маленькие кэши и таблицы вытеснены были другими запросами ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2017, 13:48 |
|
|
start [/forum/topic.php?fid=40&fpage=39&tid=1561354]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 139ms |
0 / 0 |