|
|
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
https://docs.oracle.com/cloud/latest/db112/SQLRF/sql_elements006.htm#SQLRF51098 Oracle Database ignores hints and does not return an error under the following circumstances: • The hint contains misspellings or syntax errors. However, the database does consider other correctly specified hints in the same comment. Эта фраза выглядит как "если в комменте есть два хинта, и один из них некорректный, а второй - корректный, то второй применится." На практике легко проверить, что первый же ошибочный хинт выключает все хинты, следующие за ним, независимо от их корректности. Это ошибка в доке или я просто не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 16:28 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
ValergradНа практике легко проверить, чтоНу так продемонстрируй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 16:33 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Valergrad, Да, про это уже кто-то писал давно в блоге у себя... сходу не вспомню у кого, но это известная штука ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 16:37 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Хотя если я правильно помню то игнорирует только до конца строки, поэтому если хинты расположить каждый в своей строке то будут работать те что правильные. Кром того точно знаю что так хинты можно закомментировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 16:40 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Valergrad, Код: plsql 1. 2. 3. 4. 5. 6. | 0 | SELECT STATEMENT | | 1000 | 26000 | 6 (0)| 00:00:01 ||* 1 | HASH JOIN | | 1000 | 26000 | 6 (0)| 00:00:01 || 2 | TABLE ACCESS FULL| TST_TAB | 1000 | 13000 | 3 (0)| 00:00:01 || 3 | TABLE ACCESS FULL| TST_TAB | 1000 | 13000 | 3 (0)| 00:00:01 | Код: plsql 1. 2. 3. 4. | 0 | SELECT STATEMENT | | 1000 | 26000 | 1510 (1)| 00:00:01 || 1 | NESTED LOOPS | | 1000 | 26000 | 1510 (1)| 00:00:01 || 2 | TABLE ACCESS FULL| TST_TAB | 1000 | 13000 | 3 (0)| 00:00:01 ||* 3 | TABLE ACCESS FULL| TST_TAB | 1 | 13 | 2 (0)| 00:00:01 | 11.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 16:41 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Valergrad, Эта фраза не выглядит так. Но если вопрос - могут ли "левые" слова влиять на применимость кооректных хинтов - ответ да. 16304443 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 16:48 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
хотя, видимо, все меняется: Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 16:54 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Простая демонстрация без планов. Код: plsql 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. Надеюсь не надо уточнять, что не стоит делать из этого далеко идущие выводы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 16:56 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
А попробуйте это: select /*+ full(t3,t4) use_nl(t1,t2)*/ * from tst_tab t1 inner join tst_tab t2 on t1.id = t2.id; Plan hash value: 3128579258 ------------------------------------------------------------------------------- | Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time | ------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1000 | 26000 | 6 (0)| 00:00:01 | |* 1 | HASH JOIN | | 1000 | 26000 | 6 (0)| 00:00:01 | | 2 | TABLE ACCESS FULL| TST_TAB | 1000 | 13000 | 3 (0)| 00:00:01 | | 3 | TABLE ACCESS FULL| TST_TAB | 1000 | 13000 | 3 (0)| 00:00:01 | ------------------------------------------------------------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:04 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
блин, вспомнил что в той статье в чьем-то блоге показывался пример на буквах, и не все буквы приводили к игнорированию остальных хинтов, а вот вспомнить в чьем блоге и нагуглить не удается... Если правильно помню, Тимур Ахмадеев там тоже участвовал в дискуссии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:04 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop Надеюсь не надо уточнять, что не стоит делать из этого далеко идущие выводы. Вывод: "не стоит в принципе рассчитывать на то, что в случае некорректности одного хинта будут работать остальные" - далеко идущий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:06 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
xtenderблин, вспомнил что в той статье в чьем-то блоге показывался пример на буквах, и не все буквы приводили к игнорированию остальных хинтов А у меня нет цензурных букв на такое поведение оракла :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:08 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Valergraddbms_photoshopНадеюсь не надо уточнять, что не стоит делать из этого далеко идущие выводы. Вывод: "не стоит в принципе рассчитывать на то, что в случае некорректности одного хинта будут работать остальные" - далеко идущий?Корректный вывод. Я про бесполезность построения теорий в каких именно случаях левые буквы влияют на корректные хинты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:10 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
имхо просто не надо кривые хинты писать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:15 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
или хотя бы закомментируйте их ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:16 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
ValergradА попробуйте это: select /*+ full(t3,t4) use_nl(t1,t2)*/ * from tst_tab t1 inner join tst_tab t2 on t1.id = t2.id; Со всем этим уже не работает. Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:29 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Да ладно хинты :D Код: plsql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 17:29 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
j2kДа ладно хинты :D Код: plsql 1. 2. выделять же нужно... а то не сразу в глаза бросается... $) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 18:11 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop бесполезность построения теорий в каких именно случаях левые буквы влияют на корректные хинты. Это вопрос к парсеру - именно он решает, в каком месте заканчивается некорректная последовательность волшебных символов и начинает искать следующую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 19:36 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
xtenderблин, вспомнил что в той статье в чьем-то блоге показывался пример на буквах, и не все буквы приводили к игнорированию остальных хинтов А ты посмотри на последний SQL в примере от dbms_photoshop'а. Похоже еть недокументиpовaнные хинты для отмены хинтов: Код: plsql 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. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 21:41 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Почти нашел! Вот https://jonathanlewis.wordpress.com/2011/01/16/ignoring-hints-4/ и оттуда по линкам дальше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 23:15 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Так что все v$reserved_words будут всё ломать :) а там-то полно всего... и это только длиной в 1 символ Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2017, 23:18 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
Я помогу творческим личностям которым некуда девать энергию. Продолжайте. Код: plsql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2017, 00:27 |
|
||
|
Ошибочные хинты в запросе
|
|||
|---|---|---|---|
|
#18+
xtenderили хотя бы закомментируйте их ))))) Не, я когда вижу закомментированный код - сразу удаляю, у нас же гит есть для истории! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2017, 10:09 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39535544&tid=1885114]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
187ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 573ms |

| 0 / 0 |
