|
|
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
привет, скажите pls чем лучше пользоваться в ситуации, когда есть строка из 10 символов, на 9 месте может встречаться символ 1, like '1' или substring( , 10, 1) = 1 ? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 19:24 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
Теоретически, substring будет чуть пошустрее. На практике, я разницы "на глаз" не замечал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 19:46 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
yaro83 пишет: > скажите pls чем лучше пользоваться в ситуации, когда есть строка из 10 > символов, на 9 месте может встречаться символ 1, like '1' или substring( > , 10, 1) = 1 ? Для чего пользоваться ? Заметь, что -- WhiteOwl неправ -- like '1' эквивалентно = '1' Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 20:07 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
MasterZivЗаметь, что -- WhiteOwl неправ -- like '1' эквивалентно = '1'Почему это я неправ??? like '1' действительно будет эквивалентно ='1'. Но это очень частный случай, совершенно не используемый в реальной жизни. На него нет смысла равняться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 20:21 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
Что-бы не поставили, а если это единственное условие поиска, о будет tablescan ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 23:27 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
White OwlПочему это я неправ??? Потому что фраза "Теоретически, substring будет чуть пошустрее." не имеет смысла. Когда пошустрее? Где ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2008, 00:29 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
я может с ошибками код пишу, sybase не знаю declare @string varchar(10) select @string = '0000000001' if (@string like '1') begin ... end либо if (substring(@string, 10, 1) = '1') begin ... end что быстрее будет работать из этих двух инструкций, в варианте когда @string это varchar(10) и @string это varchar(20) вида 00000000000000000001? thx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2008, 11:01 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
yaro83 пишет: > if (@string like '1') begin ... end Должно быть if (@string like '%1') begin ... end > что быстрее будет работать из этих двух инструкций, в варианте когда > @string это varchar(10) и @string это varchar(20) вида 00000000000000000001? Пофигу. Там разница будет в наносекундах. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2008, 16:12 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
Получается, что if (@string like '1') работает быстрее Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 09:42 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
Нет, фигня если блоки поменять местами то substring(@string, 10, 1) = '1' быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 09:56 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
я пытался вот такое протестировать Код: plaintext 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. но ничего путного не получил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 10:03 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
Badger пишет: > Автор: "Badger" > Получается, что if (@string like \'1\') работает быстрее Не занимайтесь ерундой. Лучше исправьте ошибку, о которой я вам говорю уже в который раз вместо if (@string like \'1\') должно быть if (@string like \'%1\') так что вы мерили просто if (@string = \'1\') которому @string like \'1\' эквивалентно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 10:18 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
MasterZiv Не занимайтесь ерундой. Лучше исправьте ошибку, о которой я вам говорю уже в который раз вместо if (@string like '1') должно быть if (@string like '%1') так что вы мерили просто if (@string = '1') которому @string like '1' эквивалентно. Posted via ActualForum NNTP Server 1.4 Ошибку исправил, а время осталось практически темже какой блок раньше, тот и быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 10:26 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
у меня в тесте стоит if (@teststring like '%1%') - разве не тоже самое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 10:26 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
yaro83 wrote: > Автор: "yaro83" > у меня в тесте стоит if (@teststring like \'%1%\') - разве не тоже самое? У тебя - да, стоит. У него - нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 11:42 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
т.е. можно ли сформулировать, что пытаться оптимизировать like заменив его на substring и введя разрядность в строке не имеет смысла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 11:58 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
yaro83 wrote: > т.е. можно ли сформулировать, что пытаться оптимизировать like заменив > его на substring и введя разрядность в строке не имеет смысла? Конечно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 12:16 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
тяжело в это поверить ибо доступ по индексу быстрее же должен быть, чем перебор со сравнением, думаю, в STL это можно ярко показать и в Oracle это тоже будет видно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 12:29 |
|
||
|
реализация like и substring
|
|||
|---|---|---|---|
|
#18+
yaro83 wrote: > тяжело в это поверить ибо доступ по индексу быстрее же должен быть, чем > перебор со сравнением, думаю, в STL это можно ярко показать и в Oracle > это тоже будет видно... Где ты там индексы видал в ваших тестах ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2008, 13:47 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=35424803&tid=2011493]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
144ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 406ms |

| 0 / 0 |
