|
|
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
пока нашел только одно отличие: в самой бд: на боевой базе: LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8' на тестовой LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' все остальное совпадает. физически на разных машинах, оперативы намного больше на боевом. в запросе какрас идет сравнение построчное Код: sql 1. 2. 3. 4. 5. 6. 7. на боевом значения берутся по индексу на тестовом идет прямое обращение к бд=( может быть причина разных планов в LC_COLLATE, LC_CTYPE или еще искать причины? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 10:22 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
АГДЕСАМИПЛАНЫЕПТ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 10:33 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
Ivan Durak, пример (все лишнее поубирал) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ЕПТСАМПЛАННАТЕСТОВОЙ: Код: 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. 139. 140. 141. 142. 143. ЕПТСАМПЛАННАБОЕВОМ: Код: 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. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 11:09 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
Legushka, попробуйте явно указать планировщику сколько строк в wdoc: так: Код: sql 1. либо так (+стоит использовать distinct on (pk/unique field) если это возможно, чтобы не сортировать результат): Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 12:20 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
ну дык на тесте он решил что пардон затратно делать 9 мильенов индекс сиков. Проще один скан и сорт. Вот статистика на тесте по wperson0: CTE Scan on wperson0 np0 (cost=0.00..180361.06 rows=9018053 width=100)" А вот на бою: CTE Scan on wperson0 np0 (cost=0.00..0.02 rows=1 width=100)" Либо такое разное количество записей, либо статистика недостоверная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 14:07 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
Ivan, один запрос выполняется за 240-2000ms на тестовом бесконечно долго каждая партиция содержит 1-4млн записей на боевом и на тестовом количество примерно одинаковое неужели оперативка определяет как выполнять запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 14:54 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
LegushkaIvan, один запрос выполняется за 240-2000ms на тестовом бесконечно долго каждая партиция содержит 1-4млн записей на боевом и на тестовом количество примерно одинаковое неужели оперативка определяет как выполнять запрос? Наиболее вероятные варианты: 1)разные настройки базы на боевом и тестовом 2)на тестовом почему то нет нужных индексов 3)разные major версии базы на боевом и тестовом Учитывая что вывод explain несколько отличается в части автор" CTE wdoc" " -> HashAggregate (cost=0.76..1.26 rows=100 width=0)" " Group Key: unnest('{80404130,80404134}'::integer[])" " -> Result (cost=0.00..0.51 rows=100 width=0)" vs автор" CTE wdoc" " -> HashAggregate (cost=0.02..0.03 rows=1 width=0)" " -> Result (cost=0.00..0.01 rows=1 width=0)" я склоняюсь в варианту 3 (и/или похаченому ROWS у функции unnest на боевом сервере). Приведите вывод Код: plaintext -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 15:06 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
Maxim Bogukя склоняюсь в варианту 3 (и/или похаченому ROWS у функции unnest на боевом сервере). вы правы: Т: "PostgreSQL 9.4.4 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit" Б: "PostgreSQL 9.1.18 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11), 64-bit" -- Maxim BogukПриведите вывод explain analyze select * from unnest(ARRAY[80404130,80404134]); на тестовой и боевой базе. Т: "Function Scan on unnest (cost=0.00..1.00 rows=100 width=4) (actual time=0.097..0.100 rows=2 loops=1)" "Planning time: 0.145 ms" "Execution time: 0.161 ms" Б: "Function Scan on unnest (cost=0.00..1.00 rows=100 width=4) (actual time=0.032..0.033 rows=2 loops=1)" "Total runtime: 0.068 ms" получается что на очень старом постгресе БД работает быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 16:20 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk , спасибо, избавилася от этой функции и на тестовой стало работать по индексам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 16:24 |
|
||
|
разные планы выполнения на боевой и развернутой тестовой бд. причины?
|
|||
|---|---|---|---|
|
#18+
на тесте, т.к. 9.4. можно пофантазировать сюда: Код: 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. и вообще -- любовь к дистинктам на мильонных табличках -- это что-то. в бою, к сожалению, "лейтерал" не скажешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2015, 16:40 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39031406&tid=1997813]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 440ms |

| 0 / 0 |
