반응형
Oracle 병합 대 선택 후 삽입 또는 업데이트
무엇이 더 빠릅니까?
합병 선언문
MERGE INTO table_name
USING dual
ON (row_id = 'some_id')
WHEN MATCHED THEN
UPDATE SET col_name = 'some_val'
WHEN NOT MATCHED THEN
INSERT (row_id, col_name)
VALUES ('some_id', 'some_val')
또는
선택 문을 쿼리한 다음 업데이트 또는 삽입 문을 사용합니다.
SELECT * FROM table_name where row_id = 'some_id'
if rowCount == 0
INSERT INTO table_name (row_id,col_name) VALUES ('some_id','some_val')
또 다른
UPDATE table_name SET col_name='some_val' WHERE row_id='some_id'
일반적으로 한 SQL에서 수행할 수 있는 경우 여러 SQL 문에서 수행하는 것보다 성능이 더 우수합니다.
MERGE가 그 일을 할 수 있다면 저는 MERGE와 함께 할 것입니다.
또한 - 다른 제안: 예를 들어 다음과 같은 문장에서 데이터가 반복되는 것을 방지할 수 있습니다.
MERGE INTO table
USING (SELECT 'some_id' AS newid,
'some_val' AS newval
FROM dual)
ON (rowid = newid)
WHEN MATCHED THEN
UPDATE SET colname = newval
WHEN NOT MATCHED THEN
INSERT (rowid, colname)
VALUES (newid, newval)
병합을 처리합니다.그것은 당신의 영역의 많은 부분을 소비할 수 있습니다.TEMP
사용.HASH JOIN
힌트를 사용하여 테스트합니다.FIRST_ROWS
또는 사용UPDATE
조인 플러스 보기INSERT
와 함께NOT EXISTS
.
언급URL : https://stackoverflow.com/questions/12274156/oracle-merge-vs-select-then-insert-or-update
반응형
'programing' 카테고리의 다른 글
사용자 지정 이미지가 있고 테두리가 없는 UIBarButtonItem (0) | 2023.08.26 |
---|---|
타이머 시작 및 중지 PHP (0) | 2023.08.26 |
ASP.NET: 핸들러에서 세션에 액세스하는 방법은 무엇입니까? (0) | 2023.08.26 |
왜 두 정수를 나누면 부동소수점을 얻을 수 없습니까? (0) | 2023.08.26 |
저는 Xampp에 Mifos X를 설치해 보았습니다.브라우저에서 UI에 액세스할 수 있기 때문에 작동했지만 자격 증명에 많은 문제가 있었습니다. (0) | 2023.08.26 |