|
|
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hi all DDL: Код: 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. Статистика по запросам сабжа: Код: 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. 58. 59. 60. 61. 62. Однако, характер данных таков, что like '%qwertyuiop%' и NOT like '%qwertyuiop%' должны вроде как работать одинаково: первый должен игнорировать (не рассматривать вообще) 9 млн строк, т.к. длина шаблона превышает фактическое число символов в поле ( а оно ведь известно ? ); второй же должен сразу учитывать их (опять-таки без анализа содержимого) - по той же причине. Что тогда еще влияет ? ЗЫ. Запрос без всяких условий: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 20:31:48 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Ты, как обычно, чепуху всякую навыдумываешь. Во-первых, я не уверен, что такая оптимизация вообще есть (и думаю, что её нет). Во-вторых, она возможна только для литералов, но невозможна для параметров. Тебя конкретно эта "оптимизация" интересует (тогда нужно про неё и спрашивать) или разница в технике операторов LIKE и NOT LIKE ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 21:26:32 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамВо-первых, я не уверен, что такая оптимизация вообще есть (и думаю, что её нет).Да как это ?! ну очевидно же, что незачем анализировать строку, если её длина МЕНЬШЕ длины шаблона блин! Гаджимурадов РустамВо-вторых, она возможна только для литералов, но невозможна для параметров. Тебя конкретно эта "оптимизация" интересует (тогда нужно про неё и спрашивать) или разница в технике операторов LIKE и NOT LIKE ?А почему это для параметров невозможно ? Вот есть ХП, в неё прилетел какой-то там параметр - он же конкретное значение в рантайме будет иметь. Ну, и... чем отличается это от случая, когда явный литерал будет задан ? "План" выполнения тут не надо составлять, просто берём строки и сравниваем. Короче, интересует прежде всего вот что: 1) LIKE - он способен сразу откидывать строку без рассмотрения или нет ? 2) действительно ли LIKE останавливается и выдаёт результат при обнаружении совпадения с шаблоном ? или лезет дальше, до конца строки ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 21:35:22 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидочевидно же, что незачем анализировать строку, если её длина МЕНЬШЕ длины шаблона блин!Та ты шо ? А сравни-ка мне Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 22:24:01 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидNOT like трудится дольше. И чем длиннее строка, тем сильнее различие.Тоже чепуха. Ты сравнил 2 числа, попал пальцем в ... никуда, и сделал из этого выводы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 22:26:29 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид> Да как это ?! ну очевидно же, что незачем анализировать Таблоид> строку, если её длина МЕНЬШЕ длины шаблона блин! Это от шаблона зависит. В случае s1 like %s2% и s2 заведомо больше s1 - да, но для этого надо саму s1 знать, а типы данных могут быть разные, плюс нуллы, плюс БЛОБы. Т.е. когда унутрях дойдёт до сравнения строк, то бишь s3 cmp s4 - побайтного сравнения не будет, конечно, но, думаю, это уже *TL-код, а не FB. > 1) LIKE - он способен сразу откидывать строку без рассмотрения или нет ? > 2) действительно ли LIKE останавливается и выдаёт результат при обнаружении > совпадения с шаблоном ? или лезет дальше, до конца строки ? 1. Теоретически - способен в некоторых случаях. 2. Лично я вопрос не понял. Никто не останавливается, like - это boolen-предикат, который работает так же, как и все остальные boolean-предикаты. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 22:31:00 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladТа ты шо ? А сравни-ка мне Код: sql 1. думаю, вопрос не настолько примитивен был)) искомая строка из лайка, по идее, должна преобразоваться парсером в конечный автомат - набор вызовов StartsText, ContainsText, EndsText, объединенных логическим умножением. если при проверке хотя бы одной из функции вышло False - нет смысла проходить все последующие ступени. если перед выполнением очередной функции оставшаяся длина тестируемой строки меньше, чем длина искомой подстроки (и кодировка не содержит непотребностей в виде суррогатных пар) - нет смысла проходить и текущую ступень. ну а уж чтобы сканить строку до конца, когда автомат отработал и вернул True - тут я не знаю, как надо "постараться")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 23:12:04 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
интересен вопрос: если поиск идет в блобе, который занимает несколько страниц, и шаблон находится в первых страницах - блоб все равно будет считан полностью или только до первого вхождения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 23:15:18 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
fd00ch> блоб все равно будет считан полностью ... ? Да, AFAIK. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 23:26:52 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
fd00chдумаю, вопрос не настолько примитивен былА я вот - не думаю. Я читаю вопрос и на него отвечаю. fd00chискомая строка из лайка, по идее, должна преобразоваться парсером в конечный автоматRTFM: Knuth-Morris-Pratt algorithm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 23:50:16 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
fd00chинтересен вопрос: если поиск идет в блобе, который занимает несколько страниц, и шаблон находится в первых страницах - блоб все равно будет считан полностью или только до первого вхождения?Если шаблон полностью исчерпан, то поиск останавливается. Блоб дочитываться не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 23:51:08 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladА сравни-ка мне Код: sql 1. Ах, вот ты как... :-) Тогда уточню правило: если хотя бы одно из "слов" шаблона имеет char_length() больше, чем длина фактически хранимых в поле символов, то сопоставлять бестолку. Под "словами" понимаю лексемы, разделённые метасимволами `%` и `_`. Контрпример будет ? PS. Пока что есть смутное сомнение, что LIKE не учитывает макс. длину слова внутри шаблонов. 1. buf = 256 Код: 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. 2. buf = 65000 (#FileSystemCacheThreshold = 65536) Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 01:10:49 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladТаблоидNOT like трудится дольше. И чем длиннее строка, тем сильнее различие.Тоже чепуха. Ты сравнил 2 числа, попал пальцем в ... никуда, и сделал из этого выводыОга Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 01:13:50 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидПока что есть смутное сомнение, что LIKE не учитывает макс. длину слова внутри шаблонов. Естественно не учитывает, поскольку поиск по длинному шаблону в коротких данных смысла не имеет. А те мизерные доли процента пользователей, которые маются такой фигнёй, рояля не играют. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 01:16:46 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамЭто от шаблона зависит. В случае s1 like %s2% и s2 заведомо больше s1 - да, но для этого надо саму s1 знать, а типы данных могут быть разные, плюс нуллы, плюс БЛОБы. Т.е. когда унутрях дойдёт до сравнения строк , то бишь s3 cmp s4 - побайтного сравнения не будет, конечно, но, думаю, это уже *TL-код, а не FB.Не, погодь! я как раз и говорю: существуют случаи, когда сравнивать НЕ НУЖНО. Если известно, конечно же, фактическое число символов, хранимое в строке (см выше, однократно - перед началом подсчета - определяется число символов в самом длинном "слове" в шаблоне). Про варчары и блобы - отчётливо помню, что тут говорилось: ФБ *знает* число символов в таких полях. Про то, что такое-то поле содержит нулл - тем более знает. Гаджимурадов Рустам> 2) действительно ли LIKE останавливается и выдаёт результат при обнаружении > совпадения с шаблоном ? или лезет дальше, до конца строки ? 2. Лично я вопрос не понял. Никто не останавливается, like - это boolen-предикат, который работает так же, как и все остальные boolean-предикаты.я не про пробегание "вниз по строкам" , это понятно всё. Я про работу алгоритма самого LIKE: вот он движется вдоль строки , находит первое соотв-вие - и дальше остановиться должен, выдав для этой строки TRUE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 01:20:17 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, давай ты сначала научишься учитывать все факторы , а потом я буду смотреть на твои примеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 01:22:03 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидПока что есть смутное сомнение, что LIKE не учитывает макс. длину слова внутри шаблонов. Естественно не учитывает, поскольку поиск по длинному шаблону в коротких данных смысла не имеет. А те мизерные доли процента пользователей, которые маются такой фигнёй, рояля не играют.Они (данные) не во всех записях такие короткие! У мну поле в этом примере = варчар(20), а могло бы быть и варчар(2000). Посмотри в первый пост: там всё начинается с `q`, а заканчивается `qwertyuiop`. Или возьми справочник контрагентов, когда в нём и физлица и юрики. Какой смысл сопоставлять шаблон "%АДМИНИСТРАЦ%ЯРОСЛАВСК%ПРЕДСТАВ%" с челами типа "ПЕТРОВ" или "КУЗНЕЦОВ" (а таких там - прорва!) ? Мысль понятна, надеюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 01:24:15 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladдавай ты сначала научишься учитывать все факторы , а потом я буду смотреть на твои примеры.Какие "все факторы" не учтены сейчас ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 01:25:50 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидhvladдавай ты сначала научишься учитывать все факторы , а потом я буду смотреть на твои примеры.Какие "все факторы" не учтены сейчас ?Твоя версия ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 02:04:02 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид> PS. Пока что есть смутное сомнение, что LIKE Таблоид> не учитывает макс. длину слова внутри шаблонов Создавал ты топик с уверенностью, что учитывает. Таблоид> Я про работу алгоритма самого LIKE: вот он движется Таблоид> вдоль строки, находит первое соотв-вие - и дальше Таблоид> остановиться должен, выдав для этой строки TRUE. Ну так и делает (наверное - не проверял). Как и любой другой boolean-предикат. Таблоид> Они (данные) не во всех записях такие короткие! Таблоид> Какой смысл Начинается. Вроде бы, изначально речь шла о полях таблицы (по крайней мере, мне так показалось), а не о конкретных записях. А смысл... с практической т.з. смысла в том, что ты предлагаешь особого нет - ну да, оптимизация, да, в условном 1% случаев кому-то поможет (если такие как ты ещё есть). :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 02:04:44 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидКакой смысл сопоставлять шаблон...А что ты выигрываешь ? 1 сек на 10млн записей ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 02:05:18 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladТаблоидпропущено...Какие "все факторы" не учтены сейчас ?Твоя версия ?А я первый тебя спросил :-) hvladА что ты выигрываешь ? 1 сек на 10млн записей ? В этом (тривиальном) варианте - да. А что будет при проверке более длинного шаблона и наличии аттачей-конкурентов - кто ж его знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 09:54:53 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам с практической т.з. смысла в том, что ты предлагаешь особого нет - ну да, оптимизация, да, в условном 1% случаев кому-то поможет (если такие как ты ещё есть). :)т.е. по шаблонам, состоящим из "слов" длиннее 10 символов, уже не ищут, что ле ? Экзотика ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 09:57:22 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидА я первый тебя спросил :-)Ну так первый и ответь. Если оно тебе надо. ТаблоидА что будет при проверке более длинного шаблона и наличии аттачей-конкурентов - кто ж его знает.Ну да, конкуренты мешают вычислять like. PS Займись уже чем-нить реально полезным... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 12:23:52 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, лучше попроси у Влада сборку или патч, где страницы выделяются экстентами (о чём он написал в firebird.devel). Там есть что потестировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 12:29:29 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, она у него есть :) Но ему же важнее 2 микросекунды в like'е найти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 12:34:58 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvlad, а мне можно? Я в fbdevel вроде написал, что хочу потестить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 12:37:46 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Симонов Денисhvlad, а мне можно? Я в fbdevel вроде написал, что хочу потестить.Я видел твоё письмо, на выходных соберу и выложу бинарники. А у Tabloid'а - патч и он собирает себе сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 12:47:11 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladНу да, конкуренты мешают вычислять like.Ну, немного, конечно же, но таки да: мешают :-) Вот статистика для того же хоста, когда на нём 250 dml-молотилок издеваются над известной тебе базой idx_under_load. Код: 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. 58. 59. 60. 61. 62. 63. 64. hvladPS Займись уже чем-нить реально полезным...0xFF. я вчера собирал ФБ с сырцов. Твой патч на экстенты (см аттач) - применяется без ошибок (пока --dry-run). Но я забыл: в нём есть эти самые "перепутанные строки" или нет ? И если есть, то покажи, плз, где они. Модератор: Вложение удалено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 14:36:58 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, 1. ты не перепутал частное мыло с общим форумом ? 2. я разве давал своё согласие на публикацию этого патча ? 3. это не тот патч 4. нет слов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 15:50:46 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, пора пустырник попить. или новопассит, или ... что-то вроде того. У меня тоже есть знакомый такой, судорожный. Постоянно его тормозить приходится. p.s. из лучших побуждений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 16:10:32 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
kdv, не бей его, я сам (аккуратно и нежно) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 16:46:25 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
в принудительный отпуск его срочно, куда-нить на Колыму подальше ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 16:48:28 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladТаблоид,2. я разве давал своё согласие на публикацию этого патча ?пффф...... 2 ip /ws: удалите нахрен плз мой пост!... 2 hvlad: откудова я знал, что его нельзя сюда выпостить ? тем более, ты сказал, что бинарники с этим же функционалом выложишь... ps. смягчающим обст-вом для себя вижу только одно: собирателей из сырцов тут, на скл.ру, меньше, чем пальцев на руках и ногах. Авось, не увидят :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 17:32:55 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
dimitrв принудительный отпуск его срочно, куда-нить на Колыму подальше ;-)0xFF. я и так на Колыме сижу. До центра моцквы добираюсь теперь полтора часа (когда дождя/снега нет), до работа - два с половиной. А из ДП самолёт вроде как 40 минут летит ? Так что не надо "ля-ля", всех не перевешаете! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 17:36:11 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидоткудова я знал, что его нельзя сюда выпоститьДело не в зя\низя. И не в конкретном патче. Ну неужели взрослым людям нужно рассказывать банальности про этику, про частную переписку и её отличие от публичного общения ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 17:42:37 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
У меня дежавю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 17:56:31 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
wadmanУ меня дежавю...чё там ? рассказывай... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:05:11 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидwadmanУ меня дежавю...чё там ? рассказывай... По поводу лайк и длины строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:06:55 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
wadmanПо поводу лайк и длины строки.да блин... тынц давай, чего огородами ходишь! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:11:33 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидwadmanПо поводу лайк и длины строки.да блин... тынц давай, чего огородами ходишь! :-) Был-бы тынц, я-бы не дежавю написал, а баян. Но в памяти почему-то именно фб касается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:21:57 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
wadmanПо поводу лайк и длины строки.Это не о том, ли, что в параметр нельзя всунуть больше символов, чем есть в поле ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:27:59 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladwadmanПо поводу лайк и длины строки.Это не о том, ли, что в параметр нельзя всунуть больше символов, чем есть в поле ? Про параметры было на скуле, точно помню. Но у меня дежавю вызвал твой пример с лайками и с %. Грубо говоря, это пустой холивар. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:32:13 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
wadmanГрубо говоря, это пустой холивар.Не может быть ! А как же 1 сек\10млн записей ? Это же катастрофа ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:37:17 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladwadmanГрубо говоря, это пустой холивар.Не может быть ! А как же 1 сек\10млн записей ? Это же катастрофа ! За то пообщались душевно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 18:43:40 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
wadmanБыл-бы тынця все заголовки своих топегов давно в эксель вытаскиваю отсюда, тупым копипастом. Когда не могу найти гуглом, то просто начинаю просматривать обычным поиском в этом экселе, по Упр-Фе. Чаще всего помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 19:04:04 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, нажать вверху страницы ссылку авторТемы: [ избранные, мои , участ.]не помогает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 20:51:42 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
fd00chТаблоид, нажать вверху страницы ссылку авторТемы: [ избранные, мои , участ.]не помогает?не сильно. много там чего-то накопилось (за бесцельно прожитые годы :-)), а поиск на этому форуме - не самая сильная его сторона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 21:04:40 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
hvladне бей его, я сам (аккуратно и нежно) я не бью. просто я знал и знаю несколько людей вот с такими "нервами", с одной стороны это смешно, если смотреть с точки зрения серии Футурамы про то, как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 21:21:38 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Так-с. "продолжаем разговор!" (С) :-) Тут вылезло вот еще что: на произв-сть влияет декларированная длина varchar-поля. Выше были цветочки, там варчар(50). А вот что получается для ягодок, когда варчар(32760). DDL: Код: 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. Дальше - то же самое. Вычитка: SQL> set stat on; 46 sec Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: 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. Сначала я думкал, что он тратит время на "паддинг" до 32760, когда считывает в память строки, а не на сам LIKE. Но вот что получается при обычном execute block'e, когда строка уже предварительно создана с замыкающими пробелами - тут вообще к базе обращений нету: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. output: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. === vs === Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. output: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. И почти то же самое время, когда строка имеет длину = 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. Но тут как-то не видно "независимости" этой. 0xFF. И чего это файл так взбух при варчаре 32760 ? там несжимаемый заголовок записи вырос или чего ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 21:48:02 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
kdvС другой стороны это адский угар, в том смысле что руки опережают мозг, и совершенно явно нужно как-то притормозить.блин, ну покаялся я ужо перед Владом (в личке), чего еще-то ? нехрена было вообще разговор про эти экстенты тут заводить... :-) kdvС третьей стороны, я же видел Таблоида очно (Павел, извини, что о тебе в третьем лице), и "невротиком" я бы его не назвал.дык я вообще не волнуюсь ни об чём... давно как бэ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 21:50:30 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидElapsed time= 49.75 sec Buffers = 524288 Reads = 1430580 Disk transfer rate, mb/s = (Reads * PageSize)/1024/1024/ElapsedTime если я не ошибся, и у тебя размер страницы 16к, то тогда скорость будет 447 мегабайт в секунду. Тебе мало? Это скорость raid 1 или raid 10 с SSD, или хорошего raid 10 на hdd. Если 8 к, то тогда 223 мегабайта в секунду. Это скорость среднего RAID 10 на hdd. Сделай select count (*) from td и сравни с твоими селект каунтами и like. p.s. все познается в сравнении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 21:54:56 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, заодно учитывай, что при повторном выполнении запросов будет работать кэш ОС (в плане опережающего чтения, или prefetch, или как оно там). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 21:57:35 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
kdvТаблоидElapsed time= 49.75 sec Buffers = 524288 Reads = 1430580 Disk transfer rate, mb/s = (Reads * PageSize)/1024/1024/ElapsedTime если я не ошибся, и у тебя размер страницы 16к, то тогда скорость будет 447 мегабайт в секунду. Тебе мало? Это скорость raid 1 или raid 10 с SSD, или хорошего raid 10 на hdd.а причём тут конкретные цифирки про скорость в ДАННОМ замере ? я сравниваю LIKE для строк *с* и *без* завершающих пробелов, причём шаблон и сама строка такова, что поиск по LIKE должен завершаться немедленно на каждой итерации: там ПЕРВЫМ символом идёт как раз тот, что в шаблоне. И погляди, какое различие лезет. Чем объяснишь ? kdvЕсли 8 к, то тогда 223 мегабайта в секунду. Это скорость среднего RAID 10 на hdd. Сделай select count (*) from td и сравни с твоими селект каунтами и like. p.s. все познается в сравнении.ну сделал: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:01:31 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
kdvпри повторном выполнении запросов будет работать кэш ОС (в плане опережающего чтения, или prefetch, или как оно там).я по ТРИ раза делал каждый запрос. Статистика приведена в каждом случае для третьего прогона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:02:10 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидЧто мне с этого каунта, когда он саму строку не вычитывает ? он же только заголовок записи читает там. с этого каунта ты понимаешь скорость голой вычитки записей/версий, и можешь сравнить ее с "накладными расходами" на сравнение like, not like и т.д. Ну ей-богу, это элементарные же вещи :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:07:42 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидя по ТРИ раза делал каждый запрос. Статистика приведена в каждом случае для третьего прогона. не везде. Вот тут 15357511 у тебя "повторяем забег" Buffers = 524288 Reads = 1430580 то есть непонятно, в таблице 1430к страниц, или 1950к страниц. Нужен первый select count, а еще лучше с кэшем в 1024 например. Ну в общем, именно чтобы понять скорость вычитки с диска, с кэшем ОС, и так далее. Потом уже можно "троекратно" экспериментировать со всякими условиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:11:13 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
kdvТаблоидЧто мне с этого каунта, когда он саму строку не вычитывает ? он же только заголовок записи читает там. с этого каунта ты понимаешь скорость голой вычитки записей/версий, и можешь сравнить ее с "накладными расходами" на сравнение like, not like и т.д. Ну ей-богу, это элементарные же вещи :-)Кхе! ясен пень, что при наличии предиката where s like '%q' будут возникать "доп. расходы" (по сравнению с отсутствием оного). Интересует причина, по которой на скорость LIKE влияет число символов в строке, при том что сама строка и шаблон таковы, что поиск должен был прекратиться уже на первом символе: Код: plaintext 1. Спрашивается: как может на скорость LIKE влиять "хвост" из 100500 млн символов, если матчер увидит TRUE уже на первом символе ? И действия с базой (дисковый IO) тут вообще не причём, вроде бы: это и в execute block'e видно, где в базу никто не лезет. Посмотри выше , плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:16:56 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
kdvто есть непонятно, в таблице 1430к страниц, или 1950к страниц. в базе - вот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ЗЫ. А откудова он берёт вот это: Average record length: 528.50 - я не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:22:30 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
понднимаю топег. народ, ура! Источники Света починили в трёшке mon$-запросы, теперь взлёт ракеты просто: Код: 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. Current memory = 3030337752 Delta memory = 15434792 Max memory = 3149496984 Elapsed time= 0.75 sec Cpu = 0.00 sec Buffers = 524288 Reads = 13 Writes = 570 Fetches = 1425859 (при том, что сейчас на этой базе молотит 450 зверских DML'ек) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:32:03 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
пардон, обшибся топегом. Это я вот сюда хотел: http://www.sql.ru/forum/1049076/nagruzochnyy-test-300-isql-vsegda-rabotavshiy-mon-zapros-stal-valit-svoy-zhe-konnekt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:33:56 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидесли матчер увидит TRUE уже на первом символе Ничего о не увидит, пока DPM не прочитает запись, SQZ её не распакует, а INTL не приведёт всю строку к пригодному к сравнению виду в соответствии с коллейтом. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:42:55 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНичего о не увидит, пока DPM не прочитает запись, SQZ её не распакует, а INTL не приведёт всю строку к пригодному к сравнению виду в соответствии с коллейтом.а если строка больше, чем остаток свободной памяти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:49:41 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидесли матчер увидит TRUE уже на первом символе Ничего о не увидит, пока DPM не прочитает запись, SQZ её не распакует, а INTL не приведёт всю строку к пригодному к сравнению виду в соответствии с коллейтом.а что тогда в случае с execute block'ом, где нет никакой записи и её распаковки ? только INTL там так тупит ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 22:57:10 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидА откудова он берёт вот это: Average record length: 528.50 - я не понял. из фактов. Как работает RLE-сжатие, рассказывалось неоднократно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 23:03:26 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидпочинили в трёшке mon$-запросы ничего не трогали, ей-богу :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 23:05:22 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1068116&msg=15357511 вот что получается при обычном execute block'e, когда строка уже предварительно создана с замыкающими пробелами - тут вообще к базе обращений нету : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Решил проверить, что там на яве будет в аналогичном случае (NB: такой же интерпретируемый язык, как и BLR (или как там его)). А именно: будет ли зависеть время выполнения от длины строки. code: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Статистика по запускам: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А ведь регэкспы, да еще в яве - не самое быстрое оружие. Да, и еще: эта статистика - не на мощном серваке, а на PC-чахотке 2.4 MHz / ram 1 gb. В общем, "так грустно, что хочется танцевать". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 02:44:23 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Для S varchar(20) - 2.8 сек. varchar(2000) - 3.2 сек. varchar(32000) - 9.7 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 06:29:51 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
В таблице одна запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 06:38:18 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидИнтересует причина, по которой на скорость LIKE влияет число символов в строке сравнение выполняется в некоей канонической форме, в которую аргументы преобразуются перед сравнением. Для простых случаев каноническое представление может совпадать с исходным, но даже в этом случае исходная строка копируется. Само сравнение реально заканчивается на первом же символе, а вот подготовительные alloc + memcpy наверняка и жрут время в зависимости от длины строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 11:05:51 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
dimitr Для простых случаев каноническое представление может совпадать с исходным, но даже в этом случае исходная строка копируется.1) Какова цель такого преобразования, почему сразу нельзя скормить строку и шаблон на поиск соотв-вия ? 2) Можно ли избежать этого копирования в этих простых случаях ? (коих не так уж мало, КМК: запросы вида select * from contragents c where c.name like '%НЕФТ%ГАЗ%' - частые гости любой произв. системы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 12:52:47 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, 1) приведение к виду, позволяющему побайтовый поиск. Для мультибайтовых чарсетов, например. 2) теоретически можно. Пиши трекеру, авось Адриано сподобится этим заняться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 12:59:18 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид1) Какова цель такого преобразования, почему сразу нельзя скормить строку и шаблон на поиск соотв-вия ? Тебе ведь регистронечувствительный поиск, небось, хочется?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 13:46:57 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоид1) Какова цель такого преобразования, почему сразу нельзя скормить строку и шаблон на поиск соотв-вия ?Тебе ведь регистронечувствительный поиск, небось, хочется?..тссс! хочется, да! только никому не говори! Но это... LIKE в отличие от CONTAINING - он же того, регистроЧувственный как раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 13:52:59 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидон же того, регистроЧувственный как раз. Даже если выставить CI-коллейт?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 14:03:18 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
dimitrПиши трекеру, авось Адриано сподобится этим заняться. Поздравил я его с НГ, пущай почитает. ЗЫ. Решил сравнить с Большим Братом. Результат: если строка *И* шаблон объявлены одинаковым образом, то всё пучком, как для varchar2 так и для N varchar2. 0.5 sec Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Но когда строка объявлена как N varchar2, а шаблон не объявлен вообще, а просто указан в LIKE-операторе, то у них там тупить что-то начинает: 90 sec! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. У нас же ситуация лучше: такой дикой разницы нет. Если объявить строку *И* шаблон как utf8, то на длине 50 будет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext А если шаблон просто подсовывать в явном виде: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 14:40:55 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидон же того, регистроЧувственный как раз. Даже если выставить CI-коллейт?..Если указывать явно - да, будет case INsensitive: Код: plaintext 1. 2. 3. 4. 5. Но для этого же containing есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2013, 14:52:50 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидРешил проверить, что там на яве будет в аналогичном случае (NB: такой же интерпретируемый языкУ тебя совесть есть? Большие киты уже второе тысячелетие пилят "оперативную компиляцию" (just-in-time compiler), а ты - "интерпретируемый". Сравни с ключом "-int", если уж так хочется потрепаться за интерпретацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2013, 18:14:53 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovТаблоидРешил проверить, что там на яве будет в аналогичном случае (NB: такой же интерпретируемый языкУ тебя совесть есть? Большие киты уже второе тысячелетие пилят "оперативную компиляцию" (just-in-time compiler), а ты - "интерпретируемый". Сравни с ключом "-int", если уж так хочется потрепаться за интерпретацию.Давай сюда версию своей явы, обе команды (компиляция + запуск) и результаты для коротких и длинных строк - так, как я выше привёл. У меня такого ключика нет. Вообще. javac -help Код: 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. java -help Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2013, 18:45:28 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Поэтому рекомендуется сначала покрутить тестируемый код секунду-другую и только потом начинать замеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2013, 18:51:57 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, чё-то ты мне не то подсказал :-) Сначала я думкал, что всё взвисло (ЦПУ на 99%), но затем вылезло: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Тем более, что Адриано уже взял в разработку этот тикет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2013, 21:01:28 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидBasil A. Sidorov, чё-то ты мне не то подсказал :-)Было заявлено, что ява - интерпретируемый язык. Теперь тебе известна разница между интерпретацией (-Xint) и компиляцией (-Xmixed, по умолчанию). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 16:53:50 |
|
||
|
where s LIKE '%txt%' *vs* where s NOT like '%txt%': первое быстрее. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, Велика ли разница по времени между выборкой всех строк и выборкой по шаблону? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 10:27:12 |
|
||
|
|

start [/forum/topic.php?all=1&fid=40&tid=1563981]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
210ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
109ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 598ms |

| 0 / 0 |
