|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Коллеги, подскажите вариант оптимизации подобного запроса. В некоторых случая запрос выполняется непозволительно долго, и система не дожидается ответа. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Вносить изменения в структуру нельзя, добавлять индексы нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:37 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Код: sql 1.
это правда работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:42 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
ChallengerВ некоторых случая запрос выполняется непозволительно долгоТогда почему вы решили, что проблема в запросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:44 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Shakill, Это работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:48 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Shakill Код: sql 1.
это правда работает?простите, был напуган. но структуру хотя бы показать можно. с имеющимися индексами и прочим ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:48 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
invmChallengerВ некоторых случая запрос выполняется непозволительно долгоТогда почему вы решили, что проблема в запросе? Я тешу себя надеждой, что его можно заменить на что-то работающее быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:48 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
ChallengerВносить изменения в структуру нельзя, добавлять индексы нельзя. Купить процессоры, память, диски можно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:49 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#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. 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:54 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
ChallengerВот структура, раз спрашиваете, А про результат, который достигается этим запросом, тоже расскажите ? Версию сервера покажите ? А может даже реальный план выполнения ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 17:58 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
A таблица tbImgInfo случаем тоже не блокируется (в смысле туда добавить nolock или set transaction isolation level unrestricted)? Попробуй как быстро на сервере напрямую выполняется раз 10-20 .. частично для поиска тормозов можно пока условия упроистить (например исключив/заменив{на предопределённый список} where .. ..not in..(select..)and..not in(select..) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 18:31 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Измените запрос так, чтобы не было OR. Во-вторых Ваше ТОП 30 с упорядочиванием приводит к сортировке, если в выборке несколько миллионов записей и больше - последствия будут катастрофичными. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 11:29 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Владислав КолосовВаше ТОП 30 с упорядочиванием приводит к сортировке, если в выборке несколько миллионов записей и больше - последствия будут катастрофичными. С чего вы это взяли ? Вроде сортировка идет по полю image_id, которое является кючем кластеризованного индекса. Откуда там возник сортировка ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 12:15 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
ExpromentВроде сортировка идет по полю image_id, которое является кючем кластеризованного индекса. Откуда там возник сортировка ? сортировки не будет в случае, если для выполнения будет выбрана стратегия сканирования индекса, совпадающего с сортировкой. и тогда, к слову, при неверной оценке для выполнения запрошенного TOP 30 может потребоваться высканить чуть ли не все! а в противном случае выборка будет организована по-другому, реализована полностью, отсортирована и вам вернется TOP 30, как и просили короче, нет универсального ответа на ваш вопрос. точнее он есть, но он не особо поможет - ставьте критерии выборки такие, чтобы запрос "сразу" и "эффективно" отбирал "достаточно мало" данных, тогда они будут дальше отсортированы и сделано TOP 30. но это фантастика ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 12:33 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Shakill Код: sql 1.
это правда работает? ChallengerShakill, Это работает. А сакральный смысл этого может кто-нибудь мне втолковать. Или я совсем плох стал... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 13:40 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
aleks2, можно убрать where и смысл останется тем же, т.к. поля not null ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 13:59 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
aleks2А сакральный смысл этого может кто-нибудь мне втолковать.Это альтернатива not exists. Для больших оригиналов ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2014, 14:02 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Пропадал я тут на некоторое время. Сейчас вернулся - все перечитал внимательно, но так и не понял можно ли что-то сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 16:42 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Можно, я же написал. Уберите OR. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 16:48 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
GloryА про результат, который достигается этим запросом, тоже расскажите ? Версию сервера покажите ? А может даже реальный план выполнения ? Glory, версия SQL Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Express Edition on Windows NT 6.1 (Build 7601: Service Pack 1) План выполнения выложу чуть позже. GloryА про результат, который достигается этим запросом, тоже расскажите ? Выбираются записи по определенному критерию, которые еще не обработаны. Те, которые обработаны - фиксировались в сторонней таблице tbImgInfo. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 16:57 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
ChallengerВыбираются записи по определенному критерию, которые еще не обработаны. Те, которые обработаны - фиксировались в сторонней таблице tbImgInfo. И предложенный текст запроса является единственно возможным решением ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2014, 16:59 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Glory, конечно нет. Я как раз и спрашиваю про альтернативу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 17:40 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
ChallengerЯ как раз и спрашиваю про альтернативу. Т.е. вы предлагаете написать свободное сочинение на тему "Выбираются записи по определенному критерию, которые еще не обработаны. Те, которые обработаны - фиксировались в сторонней таблице tbImgInfo." ? Т.е. самим придумать "определенные критерии" и "еще не обработаны" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 17:41 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Нет сочинения написать не предлагаю. Предлагаю просто подать идею как здесь изменить запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 17:52 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
ChallengerПредлагаю просто подать идею как здесь изменить запрос. Посмотреть на план. Выявить самые дорогие шаги. Переписать их. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 17:54 |
|
Можно ли оптимизировать запрос
|
|||
---|---|---|---|
#18+
Challenger, подумайте лучше над изменением "схемы данных". потому как если во главу угла ставить "моментальные" выборки - данные для них должны храниться "уже готовыми", то есть, как минимум, проиндексированными "под выборку". иначе (грубо! + уже писал же про это) у вас будет или (долгий?) скан с расчетами, пока не наберутся ваши TOP записей или полноценное выполнение запроса, чтобы после оставить ваши TOP записей. иногда, при определенном распределении данных, "достаточно" запинать оптимизатор так, чтобы он всегда работал по варианту "скан + расчет пока не наберется TOP" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2014, 18:11 |
|
|
start [/forum/topic.php?fid=46&msg=38647573&tid=1701941]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 534ms |
0 / 0 |