Sql server 2018 string_split, опис і порівняння продуктивності, Олонца сергей

Функція приймає всього 2 параметри: власне, саму рядок, яку необхідно розбити і роздільник. Існує одне дуже важливе і не дуже зрозуміле обмеження, роздільник може бути тільки довжиною один символ. Тому, якщо вам потрібно розбити рядок по більшій разделителю, то ця функція для вас не підійде, і вам потрібно шукати інше рішення.

І, власне, сам код для тесту, в якому я спочатку готував текст з 20 тисяч слів розділених комою, а потім перевіряю його розбивку різними методами.

Ну і приведу один з отриманих результатів.

SQL Server Execution Times:
CPU time = 16 ms, elapsed time = 113 ms.

SQL Server Execution Times:
CPU time = 13468 ms, elapsed time = 13759 ms.

SQL Server Execution Times:
CPU time = 143875 ms, elapsed time = 143989 ms.

SQL Server Execution Times:
CPU time = 16 ms, elapsed time = 216 ms.

Як ми бачимо, CLR функція і STRING_SPLIT залишають далеко позаду інші рішення, а ось вибрати, хто з них швидше стає проблематично, тому що їх час запуску практично не відрізняється і варіюється від тесту до тесту. В даному випадку витрати на CPU однакові, а час виконання повільніше. Однак, в якихось запусках, час виконання стає порівнянним, тому я не беруся віддати пальму першості жодної з них. Це дійсно круто, що нарешті-то з'являється вбудоване рішення з чудовою продуктивністю. Але, якщо вам буде потрібно використовувати роздільник більше ніж в один символ, то рекомендую користуватися CLR рішенням.

Post navigation