TRIM RTRIM LTRIM Производительность - PullRequest
8 голосов
/ 10 ноября 2010

От меня требуется только RTRIM() в какой-то части запроса, но если я сделаю TRIM (), это повлияет на производительность.

Is Trim() Медленнее / Быстрее / Точно такое же (НЕ даже имеет незначительное значение)разница) по сравнению с RTRIM() И LTRIM()?

Это относится ТОЛЬКО к Oracle 10g.

Но в случае SQL Server 2005, есть ли у нас функция / метод 'x () 'такое, что он может заменить RTRIM(LTRIM(' blah.. blah.. ')) на одну функцию?

Я просто имею в виду наличие "единой" функции для выполнения той же функциональности, что и RTRIM() AND LTRIM().

Ответы [ 4 ]

7 голосов
/ 10 ноября 2010

На основании этого грубого теста есть небольшая разница:

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
3 голосов
/ 10 ноября 2010

Разница в производительности обычно не обнаруживается, особенно если она находится в запросе, который получает данные из таблицы. Выберите то, что соответствует вашим требованиям.

2 голосов
/ 10 ноября 2010

Вопрос не имеет значения для SQL Server, поскольку он реализует LTRIM и RTRIM, но не TRIM.

См. Список строковых функций SQL 2005 .

0 голосов
/ 10 ноября 2010

Я никогда не видел ничего похожего на эталон Trims в SQL Server.Я много использовал его и нашел небольшую производительность при работе с большим количеством данных ... небольшую производительность.

...