string - TRIM RTRIM LTRIM 性能

标签 string performance oracle trim

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

Trim() 更慢/更快/完全相同(甚至没有可以忽略不计的差异) 与 RTRIM()LTRIM() 相比?

这仅适用于 Oracle 10g。

但是对于 SQL Server 2005, 我们是否有函数/方法“x()”,以便它可以将 RTRIM(LTRIM(' blah.. blah.. ')) 替换为单个函数?

我的意思只是使用“单一”函数来执行 RTRIM()LTRIM() 所执行的相同功能。

最佳答案

根据这个粗略的测试,有一个很小的差异:

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

关于string - TRIM RTRIM LTRIM 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141763/

相关文章:

Iphone Cocos2D - SpriteSheet Cocos2D(好困惑……)

sql - 使用 Null 值更新列

C#计算给定宽度的字符串的高度

arrays - 在 O(n) 时间内检查两个子串是否重叠

sql - 一张400GB表,一次查询——需要调优思路(SQL2005)

oracle - 绑定(bind)变量的使用

java - 处理来自多个平面文件的海量数据,并根据需求转换为 xml 格式

python - 找到最少的删除次数以获得每个字母的唯一计数

mysql - 我可以将 MySQL "IN"与 Coldfusion 中的字符串列表一起使用吗?

java - python vs java 用于存储字典的内存