Какая функция лучше SUBSTR или RPAD, чем производительность Oracle? - PullRequest
0 голосов
/ 07 февраля 2019

Делая запрос оракула и нужно выбрать функцию SUBSTR или RPAD.но я не уверен насчет производительности функции, какая из них лучше.

Вот два условия:

Условие 1:

where SUBSTR('Jasonx',0,4) = SUBSTR('Jasonxxxxx',0,4);

Состояние 2:

where RPAD('Jasonx',10,x)='Jasonxxxxx'

1 Ответ

0 голосов
/ 07 февраля 2019

Ну, наверное, ни лучше.Ни одно из этих условий не использует имена столбцов, поэтому это сфабриковано .Если бы это было, например,

where substr(username, 1, 4) = substr('JASON', 1, 4)
or
where rpad(username, 15, 'x') = 'JASONxxxxxxxxxx'

, то они оба не смогли бы использовать возможный индекс для столбца USERNAME - вы должны создать индекс на основе функции в таком случае.

Какой из них будет работать быстрее?Кто знает;Вы должны измерить это.Первым шагом является проверка плана объяснения, например

SQL> select * from emp where ename = 'KING';

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17.11.81      10000                    10


Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |    39 |     3   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| EMP  |     1 |    39 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("ENAME"='KING')

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...