12 September 2006

Performance Anlyzes On Different Queries That Returns The Same Results

Kimi zaman bir işi yapan birden fazla yol bulunabilir. Sonuca ulaşmanız, yönteminizin en doğru yol olduğunu göstermez. Bunun bir örnek uygulamasını aşağıdaki sorguda görebilirsiniz.

Aynı sonucu üreten iki sorgudan biri regexp_like ile diğeri ise like ile yapılmış. Aralarındaki fark yaklaşık 7 kat...



Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as SYSADM


SQL> set timing on
SQL>
SQL> SELECT *
  2    FROM user_source
  3   WHERE regexp_like(text, '(INSERT INTO |UPDATE )PARAMETER_VALUE ')
  4  /

NAME                           TYPE               LINE TEXT
------------------------------ ------------ ---------- ----------------
......

19 rows selected

Executed in 29,812 seconds

SQL>
SQL> SELECT *
  2    FROM user_source
  3   WHERE text LIKE '%UPDATE PARAMETER_VALUE %'
  4      OR text LIKE '%INSERT INTO PARAMETER_VALUE %'
  5  /

NAME                           TYPE               LINE TEXT
------------------------------ ------------ ---------- ----------------
............

19 rows selected

Executed in 4,219 seconds

SQL>

No comments: