Отделка функция rtrim производительности функция ltrim
От меня требуется только сделать RTRIM() в некоторой части запроса, но если я сделаю TRIM (), это повлияет на производительность.
Является Trim()
Медленнее / быстрее / точно так же(даже не имеет незначительной разницы)
по сравнению с RTRIM() и LTRIM()?
Это относится только к Oracle 10g.
Но в случае SQL Server 2005,
Есть ли у нас функция / метод ' x ()', которая может заменить RTRIM(LTRIM(' blah.. blah.. ')) на одну функцию ?
Я просто имею в виду наличие "единственной" функции для выполнения той же функции что делают и RTRIM(), и LTRIM().
4 ответов:
На основе этого грубого теста есть небольшая разница:
DECLARE n PLS_INTEGER := DBMS_UTILITY.get_time; s1 VARCHAR2(32767); s2 VARCHAR2(32767); BEGIN s1 := LPAD('X',15000,' ') || RPAD('X',15000,' '); FOR i IN 1..1000000 LOOP NULL; END LOOP; DBMS_OUTPUT.put_line('Baseline: ' || (DBMS_UTILITY.get_time - n)); n := DBMS_UTILITY.get_time; FOR i IN 1..1000000 LOOP s2 := LTRIM(s1); END LOOP; DBMS_OUTPUT.put_line('LTRIM: ' || (DBMS_UTILITY.get_time - n)); n := DBMS_UTILITY.get_time; FOR i IN 1..1000000 LOOP s2 := RTRIM(s1); END LOOP; DBMS_OUTPUT.put_line('RTRIM: ' || (DBMS_UTILITY.get_time - n)); n := DBMS_UTILITY.get_time; FOR i IN 1..1000000 LOOP s2 := TRIM(s1); END LOOP; DBMS_OUTPUT.put_line('TRIM: ' || (DBMS_UTILITY.get_time - n)); END;Разница составляет до 0,000128 сотых доли секунды в худшем случае:
Baseline: 0 LTRIM: 113 RTRIM: 103 TRIM: 8 Baseline: 0 LTRIM: 136 RTRIM: 133 TRIM: 8
Разница в производительности обычно не обнаруживается, особенно если она находится в запросе, который получает данные из таблицы. Выбирайте то, что соответствует вашим требованиям.
Этот вопрос не имеет отношения к SQL Server, поскольку он реализует
LTRIMиRTRIM, но неTRIM.Смотрите списокстроковых функций SQL 2005 .
Я никогда не видел ничего похожего на бенчмарк в SQL Server. Я использовал его много и действительно нахожу некоторую незначительную производительность при работе с большим количеством данных...незначительное представление.
Comments