我有一個PL/SQL函數來解析我的XML塊並將其返回到變量VARCHAR
。 我的XML塊不是太複雜。只有14個標籤,並沒有任何重複結構。 在我的功能我做了這個手術的XMLType:PL/SQL XMLType操作性能
SELECT px_Header
|| 'R5'
|| RPAD (NVL (A1, ' '), 2)
|| RPAD (NVL (A2, ' '), 10)
|| RPAD (NVL (A3, ' '), 3)
|| RPAD (NVL (A4, ' '), 1)
|| RPAD (NVL (A5, ' '), 1)
|| RPAD (NVL (A6, ' '), 10)
|| RPAD (NVL (A7, ' '), 1)
|| RPAD (NVL (A8, ' '), 8)
|| RPAD (NVL (A9, ' '), 1)
|| RPAD (NVL (A10, ' '), 16)
|| RPAD (NVL (A11, ' '), 2)
|| RPAD (NVL (A12, ' '), 8)
|| RPAD (NVL (A13, ' '), 1)
|| RPAD (NVL (A14, ' '), 1)
|| CHR (13)
|| CHR (10)
INTO lv_return
FROM XMLTABLE (
'/IN_DATA'
PASSING px_Block
COLUMNS A1 VARCHAR2 (2) PATH 'A1',
A2 VARCHAR2 (10)
PATH 'A2',
A3 VARCHAR2 (3) PATH 'A3',
A4 VARCHAR2 (1) PATH 'A4',
A5 VARCHAR2 (1)
PATH 'A5',
A6 VARCHAR2 (10)
PATH 'A6',
A7 VARCHAR2 (1)
PATH 'A7',
A8 VARCHAR2 (8) PATH 'A8',
A9 VARCHAR2 (1)
PATH 'A9',
A10 VARCHAR2 (16)
PATH 'A10',
A11 VARCHAR2 (2)
PATH 'A11',
A12 VARCHAR2 (8)
PATH 'A12',
A13 VARCHAR2 (1)
PATH 'A13',
A14 VARCHAR2 (1)
PATH 'A14');
這個函數0.0945秒執行。我想,不是那麼重要。但是我的過程需要迭代100000次,所以我稱這個函數爲100000次。
有沒有更快的方法來實現這個改進,即使只有幾千分之一秒?
看起來很簡單。你說,「功能」,但這只是一個選擇語句。我假設你已經省略了一些代碼?這是如何被稱爲? – OldProgrammer
你說你有一個函數需要x秒,但然後你只給我們一個選擇語句。你怎麼知道select語句是瓶頸?恐怕你只是在猜測。 – user272735
當我說我有一個功能,是因爲我有一個功能。該函數內的代碼就是這個簡單的select語句。該函數的其餘代碼是返回lv_return語句。就這樣。是的,我已經衡量了這個聲明的表現,我想現在如果我可以改變它。當然,我的程序中有越來越多的代碼,但不是我只專注於此。 – milheiros