注册

同样的sql在oracle下执行很快,在达梦下执行超级慢,因为业务需要,不好再优化sql了

DM_902127 2021/01/06 5500 7

SELECT *
FROM (SELECT MX.ID,
MX.FILE_TITLE,
MX.FILE_ID,
MX.CREATE_ORG,
MX.CREATORNAME,
MX.CURRENTUSERNAME,
MX.FLOWTYPE,
MX.QUERY_DATE,
MX.CREATE_DATE,
MX.DEAL_DATE,
MX.RECEIVE_DATE,
MX.RECEIVE_TYPE,
MX.RECEIVE_FILE_NO,
MX.COME_FILE_NO,
MX.SEND_FILE_ORG
FROM (SELECT T.ID AS ID,
T.FILE_TITLE,
T.FILE_ID,
T.CREATE_ORG,
(SELECT CURRENT_DEAL_NAME
FROM (SELECT P.NAME CURRENT_DEAL_NAME
FROM R$USER U, R$PERSON P, T_FLOW_LOG FL
WHERE U.PERSON_ID = P.PERSON_ID
AND FL.FLOW_USER = U.USER_ID
AND FL.FLOW_FILE_ID = T.FILE_ID
AND FL.FLOW_POINT = ‘拟办’
ORDER BY FL.FLOW_DATE DESC)
WHERE ROWNUM = 1) CREATORNAME,
‘’ AS CURRENTUSERNAME,
‘收文管理’ FLOWTYPE,
T.CREATE_DATE AS QUERY_DATE,
TO_CHAR(T.CREATE_DATE, ‘yyyy-mm-dd HH24:mi:ss’) AS CREATE_DATE,
TO_CHAR(FUNC_GET_DEAL_DATE(T.ID),
‘yyyy-mm-dd HH24:mi:ss’) AS DEAL_DATE,
TO_CHAR(T.RECEIVE_DATE, ‘yyyy-mm-dd’) AS RECEIVE_DATE,
T.RECEIVE_TYPE,
T.RECEIVE_FILE_NO,
T.COME_FILE_NO,
T.SEND_FILE_ORG
FROM T_OA_RECEIVE_FILE T
WHERE T.SEQ_ID = (SELECT MAX(C.SEQ_ID)
FROM T_OA_RECEIVE_FILE C
WHERE C.FILE_ID = T.FILE_ID)
AND T.FILE_ID IN
(SELECT A.FILE_ID
FROM T_OA_RECEIVE_FILE A
WHERE A.IF_DELETE = 0
AND (A.STATE < 3 OR A.STATE > 3)
AND EXISTS (SELECT 1
FROM T_OA_SEND_FILE_AUDIT DD
WHERE DD.OPERATOR =
‘1a213ba3-e487-467f-ad9a-453c6cfa6f3e’
AND DD.ID = A.ID))
AND T.IF_DELETE = 0
AND (T.STATE < 3 OR T.STATE > 3)
UNION ALL
SELECT T.ID AS ID,
T.FILE_TITLE,
T.FILE_ID,
T.CREATE_ORG,
(SELECT CURRENT_DEAL_NAME
FROM (SELECT P.NAME CURRENT_DEAL_NAME
FROM R$USER U, R$PERSON P, T_FLOW_LOG FL
WHERE U.PERSON_ID = P.PERSON_ID
AND FL.FLOW_USER = U.USER_ID
AND FL.FLOW_FILE_ID = T.FILE_ID
AND FL.FLOW_POINT = ‘拟办’
ORDER BY FL.FLOW_DATE DESC)
WHERE ROWNUM = 1) CREATORNAME,
‘’ AS CURRENTUSERNAME,
‘收文管理’ FLOWTYPE,
T.CREATE_DATE AS QUERY_DATE,
TO_CHAR(T.CREATE_DATE, ‘yyyy-mm-dd HH24:mi:ss’) AS CREATE_DATE,
TO_CHAR(FUNC_GET_DEAL_DATE(T.ID),
‘yyyy-mm-dd HH24:mi:ss’) AS DEAL_DATE,
TO_CHAR(T.RECEIVE_DATE, ‘yyyy-mm-dd’) AS RECEIVE_DATE,
T.RECEIVE_TYPE,
T.RECEIVE_FILE_NO,
T.COME_FILE_NO,
T.SEND_FILE_ORG
FROM T_OA_RECEIVE_FILE T,
R$USER U,
T_OA_FILE_RECEIVE_MULTI M
WHERE T.SEQ_ID = (SELECT MAX(C.SEQ_ID)
FROM T_OA_RECEIVE_FILE C
WHERE C.FILE_ID = T.FILE_ID)
AND U.USER_ID = ‘1a213ba3-e487-467f-ad9a-453c6cfa6f3e’
AND M.RCV_FILE_ID = T.FILE_ID
AND M.ROLE_ID = U.USER_ID
AND M.ROLE_AUDITON IS NOT NULL
AND T.IF_DELETE = 0
AND (T.STATE < 3 OR T.STATE > 3)
UNION ALL
SELECT T.ID AS ID,
T.FILE_TITLE,
T.FILE_ID,
T.CREATE_ORG,
(SELECT CURRENT_DEAL_NAME
FROM (SELECT P.NAME CURRENT_DEAL_NAME
FROM R$USER U, R$PERSON P, T_FLOW_LOG FL
WHERE U.PERSON_ID = P.PERSON_ID
AND FL.FLOW_USER = U.USER_ID
AND FL.FLOW_FILE_ID = T.FILE_ID
AND FL.FLOW_POINT = ‘拟办’
ORDER BY FL.FLOW_DATE DESC)
WHERE ROWNUM = 1) CREATORNAME,
‘’ AS CURRENTUSERNAME,
‘收文管理’ FLOWTYPE,
T.HISTORY_DATE AS QUERY_DATE,
TO_CHAR(T.CREATE_DATE, ‘yyyy-mm-dd HH24:mi:ss’) AS CREATE_DATE,
‘’ AS DEAL_DATE,
TO_CHAR(T.RECEIVE_DATE, ‘yyyy-mm-dd’) AS RECEIVE_DATE,
T.RECEIVE_TYPE,
T.RECEIVE_FILE_NO,
T.COME_FILE_NO,
T.SEND_FILE_ORG
FROM T_OA_RECEIVE_FILE_HISTORY T,
T_OA_SEND_FILE_AUDIT_HISTORY S
WHERE T.FILE_ID = S.ID
AND S.OPERATOR = ‘1a213ba3-e487-467f-ad9a-453c6cfa6f3e’
UNION ALL
SELECT T.ID AS ID,
T.FILE_TITLE,
T.FILE_ID,
T.CREATE_ORG,
(SELECT CURRENT_DEAL_NAME
FROM (SELECT P.NAME CURRENT_DEAL_NAME
FROM R$USER U, R$PERSON P, T_FLOW_LOG FL
WHERE U.PERSON_ID = P.PERSON_ID
AND FL.FLOW_USER = U.USER_ID
AND FL.FLOW_FILE_ID = T.FILE_ID
AND FL.FLOW_POINT = ‘拟办’
ORDER BY FL.FLOW_DATE DESC)
WHERE ROWNUM = 1) CREATORNAME,
‘’ AS CURRENTUSERNAME,
‘收文管理’ FLOWTYPE,
T.HISTORY_DATE AS QUERY_DATE,
TO_CHAR(T.CREATE_DATE, ‘yyyy-mm-dd HH24:mi:ss’) AS CREATE_DATE,
‘’ AS DEAL_DATE,
TO_CHAR(T.RECEIVE_DATE, ‘yyyy-mm-dd’) AS RECEIVE_DATE,
T.RECEIVE_TYPE,
T.RECEIVE_FILE_NO,
T.COME_FILE_NO,
T.SEND_FILE_ORG
FROM T_OA_RECEIVE_FILE_HISTORY T,
T_OA_FILE_RECEIVE_MULTI S
WHERE T.FILE_ID = S.RCV_FILE_ID
AND S.ROLE_ID = ‘1a213ba3-e487-467f-ad9a-453c6cfa6f3e’) MX
GROUP BY MX.ID,
MX.FILE_TITLE,
MX.FILE_ID,
MX.CREATE_ORG,
MX.CREATORNAME,
MX.CURRENTUSERNAME,
MX.FLOWTYPE,
MX.QUERY_DATE,
MX.CREATE_DATE,
MX.DEAL_DATE,
MX.RECEIVE_DATE,
MX.RECEIVE_TYPE,
MX.RECEIVE_FILE_NO,
MX.COME_FILE_NO,
MX.SEND_FILE_ORG) F
WHERE (1 = 1)

回答 0
暂无回答
扫一扫
联系客服