|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Подскажите как можно оптимизировать эту хранимую процедуру. Есть таблицы: Tasks (общие поля), Tasks_Changes_Parts (частные поля для каждого пользователя), Tasks_Common (дополнительная), Projects_Changes_Parts (проекты). Есть индексы по полям: uid_customer, email_performer (текстовое длиной 800 байт), email_user_cp, uid_project, uid_project_cp, uid_obj, uid_user, uid_task_cp, uid_user_cp. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 12:17 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
gepard1980 Есть таблицы: Tasks (общие поля), Tasks_Changes_Parts (частные поля для каждого пользователя), Tasks_Common (дополнительная), Projects_Changes_Parts (проекты). Есть индексы по полям: uid_customer, email_performer (текстовое длиной 800 байт), email_user_cp, uid_project, uid_project_cp, uid_obj, uid_user, uid_task_cp, uid_user_cp. вы вместо этого скрипты создания таблиц и индексов приведите ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 12:19 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
msLex, ********************************************************************************** Код: 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. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 12:34 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
gepard1980, названия таблиц в запросе не совпадают с названиями в скрипте создания таблиц, поэтому сами поправьте как должно быть. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 15:40 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
1. Разучить таки INNER JOIN и не лениться его писать. 2. Не лениться писать aliases. Везде. 2. Понять, что OR - это зло. 3. Ну... фантазию проявить. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 15:43 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Благодарю за ответы! Пишу на ASP.NET, поэтому особо не силён в sql. В приведенных вами примерах используются в том числе временные таблицы, думаю это скорости не прибавит. Прикрепил стоимости планов выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 17:03 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Предложенный ROLpogo вариант: ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 17:04 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
gepard1980, По моему плану вижу, что это только заливка в темп, а где сам селект? И индексов нет, которые я указал, поэтому и получили лишний лукап. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2020, 17:12 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
ROLpogo, сам select вот. И стоимость низкая, но вот если вкупе с insert-ом во временную таблицу будет ли это быстрее начального варианта? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 09:38 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
ROLpogo, сейчас добавил индексы. План попроще стал, но стоимость всё равно 1,4. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 09:48 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
gepard1980, Да, с временной должно быть быстрее. Не пойму зачем лукап делается при селекте из Tasks_Changes_Parts в темп? Индекс должен был обеспечить всеми нужными полями. Что там показывает в output на лукапе? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2020, 13:06 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
ROLpogo, еще студия предлагает сделать некластеризованный индекс для ускорения инсерта: ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 09:19 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
gepard1980, Картинки практически ни о чем. Выкладывайте актуальные планы в формате sqlplan. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 09:30 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
gepard1980, в моем индексе есть искомое поле uid_task_cp. Похоже вы его не создали и в запросе используется другой индекс IX_lion_Tasks_CP_Uid_User. create nonclustered index IX_Tasks_CP_Uid_User1 on lion_data.dbo.Tasks_Changes_Parts (uid_user_cp) include (uid_task_cp) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 10:50 |
|
|
start [/forum/topic.php?fid=46&msg=39942247&tid=1686281]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 363ms |
total: | 481ms |
0 / 0 |