0
通過這個查詢避免全掃描上查詢
SELECT * FROM
(SELECT
T.*,
'T'||to_char(min(T.ORDEN_CAMPO) OVER (PARTITION BY T.NOMBRE_ESQUEMA, T.NOMBRE_TABLA, T.CONDICION_ADICIONAL ORDER by T.ORDEN_CAMPO)) ALIAS1
FROM SOLICITUDES.TBL_QRY_DINAMICO_SOLDEU T
WHERE
TIPO_QRY = 'SOLICITUD_DEU' AND
SUBTIPO_QRY = Numero_Seccion_in
)
ORDER BY ORDEN_CAMPO
執行的解釋計劃時,我得到一個表完整掃描。特別是在完成分區的部分。有沒有其他的方式來做同樣的邏輯?
在外部select語句中,如果我直接調用哪個值,我不會得到TFS,但是當我調用ALIAS1時,會出現TFS。
你有索引ORDEN_CAMPO? –
是否有特殊的外部查詢需求? order by可以被添加到內部查詢中。關於全表掃描,這是最快的操作之一,你基本上要求數據庫查看該表中的所有行。您可以添加一個觸發器,但取決於表大小和數據分佈,它可能不會提高性能。如果您需要訪問該表中的大量數據,則使用全表掃描代替索引實際上會更快。 – xionutz2k
btw。在選擇MIN OVER PARTITION時,您不需要'T.DEREN_CAMPO'的ORDER –