|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Помогите, плизз! Пытаюсь оптимизировать запрос к бд, включает в себя много таблиц и функций, выполняется сейчас очень медленно, может подскажите, чем можно было бы облегчить его... Может все дело в том, что я не использую индексы, наследования, разбиения... может не оптимальная структура или функции,, не знаю только, как повлияют на оптимизацию, уже много чего противоречивого прочитала((( не знаю что делать, я в этом не сильна, помогите добрые люди! 'PostgreSQL 9.4.9 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17), 64-bit' Сам запрос: SELECT vc12.ngr AS ngr, vc12.gname AS gname, vc12.psid AS psid, vc12.chid AS chid, vc12.neid AS neid, vc12.name_old AS name_old, vc12.protected AS prot, vc12.k AS k, vc12.klm_w AS klm_a, vc12.klm_z AS klm_z, vc12.klm_p AS klm_p, p0nc_a.chid as chid_p0nc_a, p0nc_z.chid as chid_p0nc_z, p0nc_p.chid as chid_p0nc_p FROM public.vc12_with_group as vc12 LEFT JOIN public.unem_p0nc as p0nc_a ON vc12.neid=p0nc_a.neid AND ((p0nc_a.wttpid = vc12.awttpid AND vc12.klm_w=p0nc_a.klm_w) OR (p0nc_a.zttpid = vc12.awttpid AND vc12.klm_w=p0nc_a.klm_z) OR (p0nc_a.pttpid = vc12.awttpid AND vc12.klm_w=p0nc_a.klm_p)) LEFT JOIN public.unem_p0nc as p0nc_z ON vc12.neid=p0nc_z.neid AND ((p0nc_z.wttpid = vc12.zttpid AND vc12.klm_z=p0nc_z.klm_w) OR (p0nc_z.zttpid = vc12.zttpid AND vc12.klm_z=p0nc_z.klm_z) OR (p0nc_z.pttpid = vc12.zttpid AND vc12.klm_z=p0nc_z.klm_p)) LEFT JOIN public.unem_p0nc as p0nc_p ON vc12.neid=p0nc_p.neid AND ((p0nc_p.wttpid = vc12.apttpid AND vc12.klm_p=p0nc_p.klm_w) OR (p0nc_p.zttpid = vc12.apttpid AND vc12.klm_p=p0nc_p.klm_z) OR (p0nc_p.pttpid = vc12.apttpid AND vc12.klm_p=p0nc_p.klm_p)) ORDER BY ngr ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2017, 16:05 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Alewteena1, И Explain(analyze, buffers) 'Sort (cost=82229.23..82242.78 rows=5421 width=122) (actual time=56904.016..56968.317 rows=50230 loops=1)' ' Sort Key: vc12.ngr' ' Sort Method: external merge Disk: 4648kB' ' Buffers: shared hit=1872425, temp read=3884 written=4325' ' -> Hash Right Join (cost=60740.04..81893.01 rows=5421 width=122) (actual time=46678.012..56793.388 rows=50230 loops=1)' ' Hash Cond: (p0nc.neid = vc12.neid)' ' Join Filter: ((((portid_p0nc(p0nc.neid, p0nc.aendwork_slot, p0nc.aendwork_port, p0nc.aendwork_name)) = vc12.apttpid) AND ((vc12.klm_p)::numeric = (to_number("substring"("substring"(p0nc.aendwork_name, '. K\d\d\d[)].'::text), 4, 3), '999'::text)))) (...)' ' Rows Removed by Join Filter: 2234137' ' Buffers: shared hit=1872425, temp read=3298 written=3739' ' -> CTE Scan on p0nc (cost=930.62..12332.32 rows=14387 width=228) (actual time=2.340..8352.986 rows=14387 loops=1)' ' Buffers: shared hit=256434, temp written=445' ' CTE p0nc' ' -> Seq Scan on unem_channel unem_channel_3 (cost=0.00..930.62 rows=14387 width=272) (actual time=0.018..33.047 rows=14387 loops=1)' ' Filter: (layerrate = 'P0_nc'::text)' ' Rows Removed by Filter: 6383' ' Buffers: shared hit=671' ' -> Hash (cost=59741.65..59741.65 rows=5421 width=122) (actual time=46445.434..46445.434 rows=24063 loops=1)' ' Buckets: 1024 Batches: 4 (originally 1) Memory Usage: 1049kB' ' Buffers: shared hit=1615991, temp read=2670 written=2915' ' -> Hash Right Join (cost=38588.68..59741.65 rows=5421 width=122) (actual time=36524.030..46406.348 rows=24063 loops=1)' ' Hash Cond: (p0nc_1.neid = vc12.neid)' ' Join Filter: ((((portid_p0nc(p0nc_1.neid, p0nc_1.aendwork_slot, p0nc_1.aendwork_port, p0nc_1.aendwork_name)) = vc12.zttpid) AND ((vc12.klm_z)::numeric = (to_number("substring"("substring"(p0nc_1.aendwork_name, '. K\d\d\d[)].'::text), 4, (...)' ' Rows Removed by Join Filter: 2056537' ' Buffers: shared hit=1615991, temp read=2670 written=2672' ' -> CTE Scan on p0nc p0nc_1 (cost=930.62..12332.32 rows=14387 width=228) (actual time=2.182..8300.871 rows=14387 loops=1)' ' Buffers: shared hit=256434, temp written=445' ' CTE p0nc' ' -> Seq Scan on unem_channel unem_channel_2 (cost=0.00..930.62 rows=14387 width=272) (actual time=0.013..32.084 rows=14387 loops=1)' ' Filter: (layerrate = 'P0_nc'::text)' ' Rows Removed by Filter: 6383' ' Buffers: shared hit=671' ' -> Hash (cost=37590.29..37590.29 rows=5421 width=122) (actual time=36233.326..36233.326 rows=22313 loops=1)' ' Buckets: 1024 Batches: 4 (originally 1) Memory Usage: 1049kB' ' Buffers: shared hit=1359557, temp read=2004 written=1791' ' -> Hash Right Join (cost=16437.32..37590.29 rows=5421 width=122) (actual time=27471.561..36180.152 rows=22313 loops=1)' ' Hash Cond: (p0nc_2.neid = vc12.neid)' ' Join Filter: ((((portid_p0nc(p0nc_2.neid, p0nc_2.aendwork_slot, p0nc_2.aendwork_port, p0nc_2.aendwork_name)) = vc12.awttpid) AND ((vc12.klm_w)::numeric = (to_number("substring"("substring"(p0nc_2.aendwork_name, '. K\d\d\d[)] (...)' ' Rows Removed by Join Filter: 386122' ' Buffers: shared hit=1359557, temp read=2004 written=1567' ' -> CTE Scan on p0nc p0nc_2 (cost=930.62..12332.32 rows=14387 width=228) (actual time=2.152..8334.936 rows=14387 loops=1)' ' Buffers: shared hit=256434, temp written=445' ' CTE p0nc' ' -> Seq Scan on unem_channel unem_channel_1 (cost=0.00..930.62 rows=14387 width=272) (actual time=0.009..32.511 rows=14387 loops=1)' ' Filter: (layerrate = 'P0_nc'::text)' ' Rows Removed by Filter: 6383' ' Buffers: shared hit=671' ' -> Hash (cost=15438.93..15438.93 rows=5421 width=122) (actual time=27469.386..27469.386 rows=5457 loops=1)' ' Buckets: 1024 Batches: 1 Memory Usage: 682kB' ' Buffers: shared hit=1103123, temp read=2004 written=1122' ' -> Subquery Scan on vc12 (cost=12060.47..15438.93 rows=5421 width=122) (actual time=842.892..27452.504 rows=5457 loops=1)' ' Buffers: shared hit=1103123, temp read=2004 written=1122' ' -> Hash Right Join (cost=12060.47..15384.72 rows=5421 width=124) (actual time=842.888..27432.728 rows=5457 loops=1)' ' Hash Cond: (vc12_1.chid = g.chid)' ' Buffers: shared hit=1103123, temp read=2004 written=1122' ' -> Merge Left Join (cost=11760.68..12095.88 rows=5460 width=240) (actual time=796.938..1034.310 rows=5460 loops=1)' ' Merge Cond: ((vc12_1.neid = pz.neid) AND (vc12_1.zend_slot = pz.slot) AND (("substring"(vc12_1.zend_name, 1, 5)) = pz.unittype))' ' Join Filter: (CASE WHEN (("substring"(vc12_1.zend_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12_1.zend_name, 16, 1) = (pz.portnumber)::text) ELSE (("substring"(vc12_1.zend_name, ("position"(vc (...)' ' Rows Removed by Join Filter: 26163' ' Buffers: shared hit=2651, temp read=2004 written=1122' ' CTE vc12' ' -> Seq Scan on unem_channel (cost=0.00..930.62 rows=5460 width=272) (actual time=0.011..13.311 rows=5460 loops=1)' ' Filter: (layerrate = 'VC12'::text)' ' Rows Removed by Filter: 15310' ' Buffers: shared hit=671' ' -> Sort (cost=8423.16..8436.81 rows=5460 width=236) (actual time=698.378..709.820 rows=5460 loops=1)' ' Sort Key: vc12_1.neid, vc12_1.zend_slot, ("substring"(vc12_1.zend_name, 1, 5))' ' Sort Method: external sort Disk: 1200kB' ' Buffers: shared hit=1991, temp read=1401 written=944' ' -> Merge Left Join (cost=7133.04..7468.23 rows=5460 width=236) (actual time=475.428..659.877 rows=5460 loops=1)' ' Merge Cond: ((vc12_1.neid = pap.neid) AND (vc12_1.aendprot_slot = pap.slot) AND (("substring"(vc12_1.aendprot_name, 1, 5)) = pap.unittype))' ' Join Filter: (CASE WHEN (("substring"(vc12_1.aendprot_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12_1.aendprot_name, 16, 1) = (pap.portnumber)::text) ELSE (("substring"(vc12_1.aend (...)' ' Rows Removed by Join Filter: 3920' ' Buffers: shared hit=1991, temp read=1251 written=794' ' -> Sort (cost=4726.14..4739.79 rows=5460 width=232) (actual time=475.413..482.757 rows=5460 loops=1)' ' Sort Key: vc12_1.neid, vc12_1.aendprot_slot, ("substring"(vc12_1.aendprot_name, 1, 5))' ' Sort Method: external sort Disk: 1168kB' ' Buffers: shared hit=1331, temp read=1036 written=616' ' -> Merge Left Join (cost=3453.52..3788.72 rows=5460 width=232) (actual time=201.163..452.016 rows=5460 loops=1)' ' Merge Cond: ((vc12_1.neid = paw.neid) AND (vc12_1.aendwork_slot = paw.slot) AND (("substring"(vc12_1.aendwork_name, 1, 5)) = paw.unittype))' ' Join Filter: (CASE WHEN (("substring"(vc12_1.aendwork_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12_1.aendwork_name, 16, 1) = (paw.portnumber)::text) ELSE (("substring" (...)' ' Rows Removed by Join Filter: 34678' ' Buffers: shared hit=1331, temp read=890 written=470' ' -> Sort (cost=1046.62..1060.27 rows=5460 width=228) (actual time=84.453..91.632 rows=5460 loops=1)' ' Sort Key: vc12_1.neid, vc12_1.aendwork_slot, ("substring"(vc12_1.aendwork_name, 1, 5))' ' Sort Method: external merge Disk: 1168kB' ' Buffers: shared hit=671, temp read=147 written=292' ' -> CTE Scan on vc12 vc12_1 (cost=0.00..109.20 rows=5460 width=228) (actual time=0.022..37.800 rows=5460 loops=1)' ' Buffers: shared hit=671, temp written=145' ' -> Sort (cost=2406.90..2460.22 rows=21329 width=20) (actual time=116.431..187.605 rows=58369 loops=1)' ' Sort Key: paw.neid, paw.slot, paw.unittype' ' Sort Method: external sort Disk: 712kB' ' Buffers: shared hit=660, temp read=460 written=178' ' -> Seq Scan on ttp_ paw (cost=0.00..873.29 rows=21329 width=20) (actual time=0.012..32.646 rows=21329 loops=1)' ' Buffers: shared hit=660' ' -> Sort (cost=2406.90..2460.22 rows=21329 width=20) (actual time=97.414..124.426 rows=24210 loops=1)' ' Sort Key: pap.neid, pap.slot, pap.unittype' ' Sort Method: external sort Disk: 712kB' ' Buffers: shared hit=660, temp read=196 written=178' ' -> Seq Scan on ttp_ pap (cost=0.00..873.29 rows=21329 width=20) (actual time=0.013..27.214 rows=21329 loops=1)' ' Buffers: shared hit=660' ' -> Sort (cost=2406.90..2460.22 rows=21329 width=20) (actual time=98.317..159.141 rows=48002 loops=1)' ' Sort Key: pz.neid, pz.slot, pz.unittype' ' Sort Method: external sort Disk: 712kB' ' Buffers: shared hit=660, temp read=390 written=178' ' -> Seq Scan on ttp_ pz (cost=0.00..873.29 rows=21329 width=20) (actual time=0.014..27.704 rows=21329 loops=1)' ' Buffers: shared hit=660' ' -> Hash (cost=232.06..232.06 rows=5418 width=76) (actual time=42.053..42.053 rows=5457 loops=1)' ' Buckets: 1024 Batches: 1 Memory Usage: 614kB' ' Buffers: shared hit=78' ' -> Hash Join (cost=40.85..232.06 rows=5418 width=76) (actual time=4.533..31.001 rows=5457 loops=1)' ' Hash Cond: (g.neid = ne.neid)' ' Buffers: shared hit=78' ' -> Seq Scan on vc12_group g (cost=0.00..116.57 rows=5457 width=55) (actual time=0.010..7.967 rows=5457 loops=1)' ' Buffers: shared hit=62' ' -> Hash (cost=35.68..35.68 rows=413 width=25) (actual time=4.511..4.511 rows=413 loops=1)' ' Buckets: 1024 Batches: 1 Memory Usage: 24kB' ' Buffers: shared hit=16' ' -> Hash Join (cost=20.83..35.68 rows=413 width=25) (actual time=1.678..3.665 rows=413 loops=1)' ' Hash Cond: (ne.psindex = ps.psindex)' ' Buffers: shared hit=16' ' -> Seq Scan on ne_fo ne (cost=0.00..9.16 rows=416 width=8) (actual time=0.007..0.631 rows=416 loops=1)' ' Buffers: shared hit=5' ' -> Hash (cost=15.37..15.37 rows=437 width=25) (actual time=1.657..1.657 rows=437 loops=1)' ' Buckets: 1024 Batches: 1 Memory Usage: 26kB' ' Buffers: shared hit=11' ' -> Seq Scan on ps (cost=0.00..15.37 rows=437 width=25) (actual time=0.006..0.808 rows=437 loops=1)' ' Buffers: shared hit=11' 'Planning time: 6.931 ms' 'Execution time: 57027.445 ms' ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2017, 16:06 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Alewteena1, Код: plaintext
Надо в сессии увеличить work_mem до тех пор, пока не исчезнет. Потом в НОРМАЛЬНОМ виде скиньте сюда план запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2017, 17:03 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Alewteena1Alewteena1, И Explain(analyze, buffers) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
покажите определения этих вьюх, на которые вы вяжетесь зачем--то гробовыми ф-ями, которые, могабыть, даже не совсем всегда имутабны . ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2017, 17:06 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Оформите explain с сохранением отступов. И DDL используемых таблиц. Не думаю, что указанный запрос и приведённый explain - одно и то же. В explain явно cte виден, которого в запросе нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2017, 17:08 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
MelkijВ explain явно cte виден, которого в запросе нет.это вьюхи, думаецца. какой--то умник напихал в них сте, вместо подзапросов. вызывая материализацию. нужно ли оно там именно как сте --хз ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2017, 17:12 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
qwwq,покажите определения этих вьюх, на которые вы вяжетесь зачем--то гробовыми ф-ями, которые, могабыть, даже не совсем всегда имутабны . vc12_with_group Код: 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.
unem_p0nc Код: 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.
функция ищет в другой таблице соответствующий порт по нескольким признакам: portid_p0nc Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2017, 17:31 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Alewteena1, Что кажет Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2017, 18:00 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
ОКТОГЕН, '1048kB' ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 09:13 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Alewteena1'1048kB' Перед запросом выполните Код: plaintext
Потом план сюда скиньте. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 10:40 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 10:45 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Alewteena1, В представлении `unem_p0nc` замените Код: sql 1. 2. 3. 4. 5. 6. 7.
на Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 10:48 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
vyegorov, значит все таки этот With тоже затормаживает выполнение? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 15:36 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
ОКТОГЕН, Да, я увеличила SET work_mem = '12MB' Убрала With, добавила индексы на поля, где выполняю выборку, сейчас тестирую правда немного другой запрос(его тоже пытаюсь оптимизировать), но у меня от этого ничего не изменилось в нем, по крайней мере по времени выполнения - до и после увеличения памяти на 12мб, выполняется 27 сек: запрос: Код: 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.
Код: 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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75.
вьюшка unem_vc12: Код: 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. 53. 54. 55. 56.
Понимаю только, что я что-то кардинально неправильно делаю((( ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 15:53 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Alewteena1, таблицы ttp_: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: 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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123.
unem_channel Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: 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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 16:04 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
Alewteena1, Вы выбираете всё из таблиц своим запросом. Чем больше сами таблицы, тем больше запрос будет исполняться, что логично. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 16:34 |
|
Медленно выполняется запрос
|
|||
---|---|---|---|
#18+
vyegorovAlewteena1, Вы выбираете всё из таблиц своим запросом. Чем больше сами таблицы, тем больше запрос будет исполняться, что логично. Ну там таблицы до 47к строк. Странно то что на последнем этапе (merge left) при мердж 47к ttp_ pz и 5.4к строк по подзапросу > 1млн lio (отсюда и время 769.334..27218.885) - или кардиналити не то, но это достаточно долго для таких объемов, ну и откуда там столько lio не тоже вопрос (часто используемая таблица?) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 17:11 |
|
|
start [/forum/topic.php?fid=53&fpage=77&tid=1996638]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
others: | 340ms |
total: | 508ms |
0 / 0 |