Database Oracle数据库视图的性能改进
我正在努力研究这一观点的表现。我认为物化视图可能会有所帮助,但我想知道是否可以改进查询Database Oracle数据库视图的性能改进,database,oracle,performance,Database,Oracle,Performance,我正在努力研究这一观点的表现。我认为物化视图可能会有所帮助,但我想知道是否可以改进查询 Primary keys fro the tables are: CONSUMER_DTL :ID CONSUMER__HDR : ID PARTICIPANT : ID P_DEVICE : ID CREATE OR REPLACE FORCE EDITIONABLE VIEW "V_TRANSACTION_HISTORY" ("ID", "TRANSACTION_DATE", "TRANSACTI
Primary keys fro the tables are:
CONSUMER_DTL :ID
CONSUMER__HDR : ID
PARTICIPANT : ID
P_DEVICE : ID
CREATE OR REPLACE FORCE EDITIONABLE VIEW "V_TRANSACTION_HISTORY" ("ID", "TRANSACTION_DATE", "TRANSACTION_ID", "REFUND_AMOUNT", "STATUS", "LABEL_ID", "COST_ID", "CONSUMER_ID") AS
SELECT ROW_NUMBER() OVER (ORDER BY CH.ID) AS ID,
CH.TRANSACTED_ON AS TRANSACTION_DATE,
CH.ID AS TRANSACTION_ID,
SUM(CD.GROSS_AMOUNT) AS REFUND_AMOUNT,
CH.STATUS AS STATUS,
CH.LABEL_ID,
S.ID AS COST_ID,
CH.CONSUMER_ID
FROM CONSUMER_DTL CD,
CONSUMER__HDR CH,
P_DEVICE P,
PARTICIPANT S
WHERE CH.ID=CD.TRANSACTION_ID
AND CH.P_DEVICE_ID=P.ID
AND P.ID=S.ID
GROUP BY CH.ID,
CH.STATUS,
CH.LABEL_ID,
CH.TRANSACTED_ON,
CH.CONSUMER_ID,
S.ID;
首先,您应该使用SQL标准-
内部联接。。。关于…
其他一切-我们不知道。我们不知道您有多少数据,表键/索引。。除此之外,查询优化器将为您优化它。您的查询不使用任何,其中条件,您选择表的所有数据。因此,您没有多少可以改进的。您可以在消费者dtl
(交易id
,总金额
)上建立索引,这可能会有所帮助。它应该允许直接从索引连接到consumer\u dtl表。