|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Здравствуйте! Подскажите пожалуйста можно ли как то оптимизировать данный запрос: Код: plsql 1. 2. 3. 4. 5. 6.
Здесь COMM_TYPE - столбец таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 13:05 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
eliasum, Вряд ли в comm_type используется перечисление одновременно mail-мэйл-факс, посему приведенное условие сводится к 1=1. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 13:14 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Постройте полнотекстовый индекс... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 15:43 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
А сколько строк в наборе данных / таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 07:19 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Можно так представить запрос, отвлеченно: Код: plsql 1. 2. 3. 4. 5. 6.
строк в наборе данных / таблице - 13054 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 07:30 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
А почему ты думаешь, что его вообще оптимизировать надо? Тем более на таком количестве строк ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 07:46 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Предположил для общего саморазвития)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 08:25 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 11:07 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
eliasum, /*+ PARALLEL */ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 11:28 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
eliasum, запрос c условием Код: plsql 1.
не будет использовать индекс. Поэтому тут уже сказали andrey_anonymous Постройте полнотекстовый индекс... или изменением схемы данных (материализацией по этим условиям при вставке) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 12:09 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
MazoHist запрос c условием Код: plsql 1.
не будет использовать индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 12:17 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
-2- посему приведенное условие сводится к 1=1. Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 12:37 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
eliasum, если абстрагироваться от странностей фильтра, то можно так: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 13:35 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
MazoHist Поэтому тут уже сказали andrey_anonymous Постройте полнотекстовый индекс... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 13:37 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Кобанчег MazoHist Поэтому тут уже сказали andrey_anonymous Постройте полнотекстовый индекс... А причем NOT LIKE если text index? Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 15:47 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
вообще, если хочешь склеить мозг, такую пачку лайков/нелайков только через или и клеить бр-р-р ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 15:49 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
SY А причем NOT LIKE если text index? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 17:01 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Кобанчег SY А причем NOT LIKE если text index? Ну выдели. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 17:22 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#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. 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 17:33 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
А чтобы запихатьь все в domain index: Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 17:44 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Кстати, врядли TC интересуют совпадeния/несовпадeния по части слова. Скажем 'WINE CELL AR', так-что: Код: 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 18:08 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
SY, Чудес не бывает, для того, чтоб проверить НЕ вхождение надо прочитать ВСЁ. Или если пойти от обратного, то сначала найти то, что не должно попасть, а потом вычитать всё остальное. Или более конкретно, в приведённом примере, после создания индекса tokenized strings хранятся в DR$WILDCARD_IDX$I. Добавим немного строк. Код: plsql 1.
Начнем с вхождений Код: plsql 1. 2. 3. 4. 5.
Теперь посмотрим НЕвхождения. Код: plsql 1. 2. 3. 4. 5.
А в это время под капотом... Сначала выбираем токены удоветворяющие условию. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Потом для каждого отдельно выполняем запрос по нахождению rowid. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Потом читаем из таблицы все строки по rowid кроме найденных получаем 30005-1111=28895 строк. Далее рассмотрим случаи когда НЕвхождение сужает число срок. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
ODCIIndexStart в зависимости от предиката может применять всякие изыски в динамически сгенерированном запросе, но иногда может не работать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 19:40 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Ну и главное: далеко ли мы ушли от LIKE перейдя к contains? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 19:43 |
|
Несколько условий LIKE и NOT LIKE для одного столбца
|
|||
---|---|---|---|
#18+
Тс запутался в or/and, а вы на полном серьёзе обсуждаете эту муть... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 22:40 |
|
|
start [/forum/search_topic.php?author=yurivku&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 1744ms |
total: | 1917ms |
0 / 0 |