|
Как улучшить детерминированную функцию при парсере строки ?
|
|||
---|---|---|---|
#18+
В таблице строки: MK~RU_AR~ZEN_MB~CKONE_CN~ADFORM_CP~3301071970_CI~FY22Q1-RU-CK-CKON-NK-NO_OB~AWA_IT~SOC_OB~AWA_TG~DEMINT_PB~VK_AS~VK_BT~AUCTION_CH~VIDEO_RA~CPM_FM~VID_DT~CROSS_SZ~1X1_TS~ADU_ST~FILGEO_AD~STAND_PK~REA_AV~BEA_PD~PPV-123895_VV~NONE_PI~123895_ID~GLD0009ADF__MB~CKONE_FM~VID_CS~1X1_CV~PPV-123895_FF~CPM__ MK~RU_AR~ZEN_MB~GUCCIFLRA_CN~ADFORM_CP~3301061855_CI~FY22Q1-RU-GU-GUGF-NK-NO_OB~AWA_IT~RON_OB~AWA_TG~DEMINT_PB~MEGOGO_AS~NONE_BT~PROG_CH~VIDEO_RA~CPM_FM~VID_DT~CROSS_SZ~1X1_TS~ADU_ST~FILGEO_AD~ST_PK~REA_AV~BEA_PD~MEGOGO-BRANDING-123118-LE_VV~NONE_PI~123118_ID~GLD00098E1__MB~GUCCIFLRA_FM~VID_CS~1X1_CV~MEGOGO-BRANDING-123118-LE_FF~LETU__ Надо отобрать числа по маске : '(\D|^)(\d{5,6})(\D|$)' записав в строку через разделитель ';' без повторений, Написал функцию, но она работает медленно на большом колличестве данных. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Как написать быструю детерминированную функцию используя pl sql ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 19:32 |
|
Как улучшить детерминированную функцию при парсере строки ?
|
|||
---|---|---|---|
#18+
максим_1991, если вам необходима именно функция заданной сигнатуры, можно попробовать отказаться от регулярок Например, так (и это всё еще отнюдь не оптимальный код): Код: 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.
проверил скриптом Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
получил: Код: plsql 1. 2. 3.
альтернативный вариант - реализовать обработку всех имеющихся строк в одном SQL-запросе. Выиграете на переключении контекста и за счет внутренних механизмов оптимизации ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 22:45 |
|
|
start [/forum/topic.php?fid=52&fpage=8&tid=1879758]: |
0ms |
get settings: |
20ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
27ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
others: | 354ms |
total: | 492ms |
0 / 0 |