|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
Добрый день. Есть база данных. Лежит тут http://www.ex.ua/get/629412770428/29673342 (2,2 мб) Выполняю к ней запрос который на быстрой машине отрабатывает порядка 30-40 секунд, а на медленной и того больше. И индексы есть, и используются, данных мало но тормоза нереальные. План запроса не осилил :( Подскажите что можно улучшить? Код: 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.
Суть запроса получение таблицы для отображения в документ Инвентаризация. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2012, 14:51 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
У тебя есть очень плохой индекс по полю active в таблице front.goods. Удаляем его - и вуаля: скорость повышается на порядки ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2012, 19:10 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
Да, и ещё. Пересчёт статистики индексов ещё немного ускорил выполнение запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2012, 19:37 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
ArtDen, Это какая-то черная магия. Все летает. Появились еще вопросы: Где именно в плане запроса было видно, что этот индекс тормозит? Ну и собственно, чем этот индекс так плох? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 11:10 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
Да просто план запроса показал, что для этого индекса количество row было намного больше чем для остальных индексов. Вот я его методом научного тыка и удалил. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 19:29 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
А индекс плох тем, что количество уникальных значений индексируемого поля крайне мало по сравнению с количеством записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 19:33 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
ArtDenДа просто план запроса показал, что для этого индекса количество row было намного больше чем для остальных индексов. Вот я его методом научного тыка и удалил. :) Вот брат первого запроса. Он тоже выполняется непозволительно долго. Разница в запросах в том, что пердыдущий выбирает строки только из таблицы документа, а этот все имеющиеся. Подскажи пожалуйста, что в этом запросе не так и где это видно в плане? Код: 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.
PS. На всякий случай планы во вложении. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2012, 21:59 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
У меня последний запрос выполняется мгновенно и ничего не возвращает ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2012, 06:12 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
ArtDen, Проверял на другой базе. Вот запрос Код: 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.
База лежит тут: http://www.ex.ua/load/629412770428/29827280 (3.1 мб) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2012, 15:25 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
Следующий скрипт спасёт отца русской демократии :) Код: sql 1. 2. 3. 4.
Это то, что удалось выведать из плана, пробежавшись по нему быстрым взглядом. Чтобы ускорить ещё сильнее, надо изучать структуру базы, внимательно смотреть план запроса, делать составные индексы или возможно менять структуру базы ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2012, 19:05 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
ArtDenСледующий скрипт спасёт отца русской демократии :) :) Гуд, обязательно проверю. Все таки хотел бы получить ответ на вопрос - где именно видно что этот индекс больше всего жрет время? Покажи плиз строку для примера. Нигде не могу найти доку в которой бы рассказали как читать план запроса sqlite. Может плохо искал? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2012, 20:46 |
|
Помогите оптимизировать запрос
|
|||
---|---|---|---|
#18+
YP977Все таки хотел бы получить ответ на вопрос - где именно видно что этот индекс больше всего жрет время? Покажи плиз строку для примера. Ну вот например. Первая же строка для explain query plan: Код: plaintext
YP977Нигде не могу найти доку в которой бы рассказали как читать план запроса sqlite. Может плохо искал? Ну как бы http://www.sqlite.org/eqp.html ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2012, 07:31 |
|
|
start [/forum/topic.php?fid=54&fpage=18&tid=2008998]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 276ms |
total: | 446ms |
0 / 0 |