|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
Всем привет. Есть неуникальный индекс по двум полям. dbms_metadata.get_ddl Код: plsql 1. 2. 3. 4. 5. 6.
Ожидается, что при его использовании в плане будет range scan, однако, каким-то чудом туда влезает skip scan, так еще и кардинальность считает неверно - конечная выборка тысяч 300. Статистика актуальная. Код: 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.
1. Вопрос собственно, почему оптиизатор выбрал SS и где-нужно подкрутить, чтобы был RS? 2. Дублирование access предиката фильтром filter("DOC"."BR"=1) не делает двойную работу? Я имею ввиду после выбора по индексу не перефильтровывается ли еще раз filter("DOC"."BR"=1) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 12:38 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
mlc, покажите статистику используя этот скрипт: https://github.com/xtender/xt_scripts/blob/master/stats/tab.sql Без дополнительной информации в голову приходит только вариант, что в статистике Low_value столбца DDATE больше чем 2019-09-01 и параметр optimizer_index_cost_adj занижен ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 12:57 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
mlc, ну и в целом, с такими вопросами надо сначала смотреть в 10053 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 12:58 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
xtender, optimizer_index_cost_adj дефолтный. Код: plsql 1. 2. 3. 4. 5. 6.
Статистику сейчас соберу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 13:22 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
mlc, 10053 сразу покажи ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 13:38 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
xtenderв статистике Low_value столбца DDATE больше чем 2019-09-01 Я скорее предположил бы обратное - в табличку вставили пару записей за будущий год :) Еще бывают развлечения с интервальным секционированием, но тут вроде не оно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 14:04 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
Skip scan выгоден, если мизерное количество уникальных значений ddate и количество br=1 тоже незначительное. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 15:02 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
xtender, table stat Код: 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.
Код: plsql 1. 2. 3. 4. 5.
index stat Код: 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.
Код: plsql 1. 2. 3. 4. 5.
columns stat Код: 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.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Сейчас трассу сделаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 15:19 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
-2-, По сути сейчас приближено к тому, что вы описали. Только при SS кардинальность улетает в космос и остальная часть запроса из-за этого куска также неверно считается. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 15:23 |
|
index range vs index skip scan
|
|||
---|---|---|---|
#18+
mlc, Кстати, посмотрел результаты выборки, оказывается, что конечная выборка вовсе 13 строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 15:55 |
|
|
start [/forum/topic.php?fid=52&msg=39870593&tid=1882022]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 145ms |
0 / 0 |