TRIM RTRIM LTRIM性能

Pra*_*tik 8 string oracle performance trim

我只需要RTRIM()在查询的某些部分做,但如果我做TRIM()会影响性能.

Trim() 慢/(甚至可以忽略不计了差)相比更快/完全相同RTRIM()AND LTRIM()

这仅适用于Oracle 10g.

但是在SQL Server 2005的情况下,我们是否有函数/方法'x()',它可以替换RTRIM(LTRIM(' blah.. blah.. '))为单个函数?

我只是意味着具有"单一"功能来执行与RTRIM()AND 相同的功能LTRIM().

Jef*_*emp 7

基于这个粗略的测试,有一个小的差异:

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;
Run Code Online (Sandbox Code Playgroud)

在最坏的情况下,差异达到0.000128百分之一秒:

Baseline: 0
LTRIM: 113
RTRIM: 103
TRIM: 8
Baseline: 0
LTRIM: 136
RTRIM: 133
TRIM: 8
Run Code Online (Sandbox Code Playgroud)

  • 你应该从中得到的是,没有实际的区别; 所以你应该总是使用最符合你想做的事情. (6认同)