|
34 | 34 | - количество sql запросов для `trips/index.html.erb` сократилось до 12
|
35 | 35 |
|
36 | 36 | ### Ваша находка 2
|
37 |
| -- rack mini profiler (и логи веб сервера) показал, что основное время тратится на рендеринг шаблонов (`trips/index.html.erb 2091.1 |
38 |
| -4917.9`). |
| 37 | +- rack mini profiler (и логи веб сервера) показал, что основное время тратится на рендеринг шаблонов `trips/index.html.erb 2091.1 |
| 38 | +4917.9`. |
39 | 39 | - рендереринг всех коллекций через `render partial:`
|
40 | 40 | - метрика снизилась до 1 секунды
|
41 | 41 | - `Rendering: trips/index.html.erb 716.2 975.7`
|
42 | 42 |
|
43 |
| -### Ваша находка №2 |
44 |
| -- rack mini profiler показал, что дольше всего (412.1 ms) выполняется запрос `SELECT "buses_services".* FROM "buses_services" WHERE "buses_services"."bus_id" IN ($1, <...>`. делаю explain, он показывает `Seq Scan on buses_services` как основную точку роста. |
| 43 | +### Ваша находка 3 |
| 44 | +- rack mini profiler показал, что основное время занимает запрос в сервисы (около 400мс). |
| 45 | +- вместо habtm делаю промежуточную таблицу, для нее и делаю eager loading вмсто services. в контроллере достаю весь и собираю хэш-справочник (id=>name) сервисов и использую его во вью. |
| 46 | +- метрика особенно не снизилась |
| 47 | +- запрос пропал из логов профилировщика (вместо него показывается запрос в сервисы, около 25мс, что 8 раз меньше) |
| 48 | + |
| 49 | +### Ваша находка 4 |
| 50 | +- rack mini profiler показал, что производится и запрос по count, и идентичный по выборке данных. |
| 51 | +- меняю count на length. |
| 52 | +- метрика особенно не снизилась |
| 53 | +- запрос count пропал из логов профилировщика |
| 54 | + |
| 55 | +### Ваша находка № 5 |
| 56 | +- rack mini profiler показал, что долго выполняются запросы `SELECT "buses_services".* FROM "buses_services" WHERE "buses_services"."bus_id" IN ($1, <...>` (делаю explain, он показывает `Seq Scan on buses_services` как основную точку роста),`` |
45 | 57 | - Добавляю индекс на `bus_id`
|
46 | 58 | - как изменилась метрика
|
47 | 59 | - как изменился отчёт профилировщика - исправленная проблема перестала быть главной точкой роста?
|
|
0 commit comments