ts产生相同的结果(仅显示部分)。此外,所有表上都有相应的索引。谢谢您的评论。所有脚本都是存储过程的一部分。我已经尝试了table nologging和/*+append*/。这确实让事情变得更快了——但没有多大的进步。SQL仍然比游标循环慢得多。两条语句
ts产生相同的结果(仅显示部分)。此外,所有表上都有相应的索引。谢谢您的评论。所有脚本都是存储过程的一部分。我已经尝试了table nologging和/*+append*/。这确实让事情变得更快了——但没有多大的进步。SQL仍然比游标循环慢得多。两条语句,sql,oracle,Sql,Oracle,ts产生相同的结果(仅显示部分)。此外,所有表上都有相应的索引。谢谢您的评论。所有脚本都是存储过程的一部分。我已经尝试了table nologging和/*+append*/。这确实让事情变得更快了——但没有多大的进步。SQL仍然比游标循环慢得多。两条语句产生相同的结果(仅显示部分)。此外,所有表上都有适当的索引。 INSERT INTO TMP_TXN ...... SELECT ....... FROM TXN (160m rows), CUSTOMERS (1m rows), PROD
ts产生相同的结果(仅显示部分)。此外,所有表上都有相应的索引。谢谢您的评论。所有脚本都是存储过程的一部分。我已经尝试了table nologging和/*+append*/。这确实让事情变得更快了——但没有多大的进步。SQL仍然比游标循环慢得多。两条语句产生相同的结果(仅显示部分)。此外,所有表上都有适当的索引。
INSERT INTO TMP_TXN ......
SELECT .......
FROM TXN (160m rows), CUSTOMERS (1m rows), PRODUCTS (1k rows)
WHERE TXN.TXN_DATE = p_date
AND TXN.TXN_AMOUNT > 0
AND TXN.PRODUCT_ID = PRODUCTS.PRODUCT_ID
AND PRODUCTS.PRODTYPE_ID IN ('1', '12', '13');
AND TXN.CUSTOMER_ID = CUSTOMERS.CUSTOMER_ID
AND CUSTOMERS.CUSTOMER_STATUS LIKE 'A%'
FOR item IN (SELECT .....
FROM TXN (160m rows), CUSTOMERS (1m rows), PRODUCTS (1k rows)
WHERE TXN.CUSTOMER_ID = CUSTOMERS.CUSTOMER_ID
AND CUSTOMERS.CUSTOMER_STATUS LIKE 'A%'
AND TXN.PRODUCT_ID = PRODUCTS.PRODUCT_ID
AND PRODUCTS.PRODTYPE_ID IN ('1', '12', '13')
AND TXN.TXN_DATE = p_date
AND TXN.TXN_AMOUNT > 0
ORDER BY CUSTOMER_ID);
LOOP
IF item.customer_id <> customer_id_old THEN
etc.
INSERT /*+ append nologging */ INTO TMP_TXN ...
SELECT ...