|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Помятуя слова Еманова о том, что тройка может быть медленнее на одиночных запросах, поймал таки ощутимое замедление. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Это так надо или руки у меня? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2016, 16:16 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgm, запросы к rdb$types в 2.5 и 3.0 не эквивалентны. В 3.0 там существенно больше записей. Так что переделывай тест ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2016, 16:29 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Симонов Денис, Да. Всё верно! Пример для воспроизведения я сделал некорректный. Вот теперь надо кумекать, как сделать корректный... на реальных-то данных воспроизводится. Хоть и не в 2 раза разрыв по времени, но есть. Пока буду клепать, глядишь и ответ найду. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2016, 17:09 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgmна реальных-то данных воспроизводится.Реальные данные, как правило, обрабатываются одновременно N реальными пользователями, где N >> 1. А в этом случае 2.5 безнадёжно проср отстанет от 3.0 (особенно если трёшка будет работать как SS; да и SC тоже; а вот 3.0 Cs на сегодня будет примерно как 2.5 Cs). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 01:26 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
ТаблоидРеальные данные, как правило, обрабатываются одновременно N реальными пользователями, где N >> 1. Судя по всему, в моём случае виноват новый проброс условий внутрь вьюшек. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 09:18 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgm, примерчик таки хотелось бы увидеть ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 09:49 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgm, я попробовал переделать твой запрос так чтобы он был независим от rdb$types. TempCacheLimit = 1024M в 2.5 эквивалентное значение, но в числом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: sql 1. 2. 3. 4. 5.
2.5.5План PLAN (T2 NATURAL) PLAN SORT ((T1 NATURAL)) ------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 8s 143ms Среднее время на получение одной записи = 814,30 ms Current memory = 274 013 576 Max memory = 429 997 008 Memory buffers = 16 384 Reads from disk to cache = 0 Writes from cache to disk = 0 Чтений из кэша = 22 072 089 3.0План PLAN (T2 NATURAL) PLAN SORT (T1 NATURAL) ------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 10s 576ms Среднее время на получение одной записи = 1 057,60 ms Current memory = 280 340 544 Max memory = 318 095 424 Memory buffers = 16 384 Reads from disk to cache = 0 Writes from cache to disk = 0 Чтений из кэша = 22 072 096 вот оно. Проброс условий тут не причём. Оптимизатор даёт полностью идентичные планы, но сам кэш в моноконнекте в 3.0 чуть чуть медленее. Чтобы подсластить пилюлю, на совсем виртуальных данных 3.0 выигрывает, видимо рекурсивные запросы там выполняются оптимальнее Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
2.5.5------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 17s 940ms Среднее время на получение одной записи = 1 794,00 ms Current memory = 274 052 152 Max memory = 430 779 496 Memory buffers = 16 384 Reads from disk to cache = 0 Writes from cache to disk = 0 Чтений из кэша = 55 075 3.0------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 15s 101ms Среднее время на получение одной записи = 1 510,10 ms Current memory = 280 499 432 Max memory = 444 644 152 Memory buffers = 16 384 Reads from disk to cache = 0 Writes from cache to disk = 0 Чтений из кэша = 55 063 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 10:29 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#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.
p_attribute_values - вьюшка p_objects - вьюшка на вьюшке Если что: Бэкап в zip-е весит 32 метра, 7z - 10 метров ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 11:21 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgm, из этих запросов не фига не понятно. afgmp_attribute_values - вьюшка p_objects - вьюшка на вьюшке вьюхи можно представить как cte и тогда всё будет в одном запросе. Планов всё равно не видно. В 3.0 исправлен старый баг оптимизатора, который появился в 2.x, поэтому различное поведение на +0, ||'' на поле по которому идёт группировка меня не удивляет. Планы дадут более полный ответ. Для 3.0 можно ещё на explain глянуть ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 11:40 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Симонов Денисafgm, из этих запросов не фига не понятно. Да я прекрасно понимаю понимаю. Без реальной базы даже с полными метаданными и полными простынями планов разбираться слишком муторно. Метаданные представлений Код: 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. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138.
Запрос без строки Код: 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.
Запрос со строкой Код: 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.
Со строкой и без, что в 2.5, что в 3.0 планы внутри версии не меняются. А вот между версиями - разные. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 12:42 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgm, бр... Тяжело конечно что-то понять. Я бы для начала сравнил планы для исходных вьюх. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 13:46 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Симонов ДенисЯ бы для начала сравнил планы для исходных вьюх. Ну вот уже для p_objects, ранее, я на 3-ке получил улучшение, потому как условия проталкиваются глубже. В случае преставления на представлении, как я понял. Вот кажется отсюда ноги и растут. Вижу разные планы, а надо бы понимать "почему?" они разные (3.0, ясное дело :)), и почему в одном случае помогает, а в ином вредит. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 14:11 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgm, сам запрос то насколько реальный? Просто там энтот подзапрос (SELECT COUNT(*) FROM A A2 WHERE ...) на фиг не упал. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 14:23 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Симонов Дениссам запрос то насколько реальный? Просто там энтот подзапрос (SELECT COUNT(*) FROM A A2 WHERE ...) на фиг не упал. Сейчас да. Это уже вырожденный случай. Но изначально там был каскад из list-ов. Там и словил. В результате упростил до простой группировки, но вопросы-то остались. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2016, 14:46 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Продолжаю разбираться. Есть план для запроса с with. Ругается если его указать явно, после запроса. Как в таком случае указать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2016, 12:44 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgm, план можно указать только для запроса целиком, а не для отдельной его части в with ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2016, 12:53 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Симонов Денис, а я так и делаю Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: plaintext 1.
Если убрать PLAN JOIN и оставить только PLAN SORT, то не ругается и даже выполняется. А как указать оба плана? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2016, 13:23 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Оба нельзя, можно только 1. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2016, 13:56 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамОба нельзя, можно только 1. Жаль. Я думал прибить одинаковые планы в 2.5 и 3.0, и проверить производительность. Так можно было бы наблюдать внутренние скорости. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2016, 15:13 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
afgm, дык возьми план который даёт 2.5 (только для всего запроса) и прибей его к 3.0 тоже для всего запроса. И сравни. Потом попробуй наоборот. З.Ы. Прибивать планы плохая практика. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2016, 15:19 |
|
FB 3.0 медленнее на поздапросе
|
|||
---|---|---|---|
#18+
Симонов Денисдык возьми план который даёт 2.5 (только для всего запроса) и прибей его к 3.0 тоже для всего запроса. И сравни. Потом попробуй наоборот. Так в этом-то и проблема (см. выше). Симонов ДенисЗ.Ы. Прибивать планы плохая практика. И прибить я хочу именно для теста. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2016, 16:06 |
|
|
start [/forum/topic.php?fid=40&msg=39172895&tid=1562340]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
107ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 19ms |
total: | 229ms |
0 / 0 |