조건을 만족할 때 테이블을 업데이트하는 병합 쿼리가 있습니다.이 쿼리는 만족스럽지 않으면 다른 테이블에 레코드를 삽입합니다. 문제는이 특정 삽입은 15,000 개의 레코드를 삽입하는 데 약 25 분이 소요되는 것입니다. 레코드를 삽입하는 동안 시퀀스 ID를 삽입하고 차례로 트리거 ID와 연결된 트리거에 의해 생성됩니다. 트리거는 2 개의 테이블에서 최대 ID를 선택하므로 최대 값에 1을 더한 다음이를 리턴하여 삽입 쿼리에서 사용합니다. 인서트가 내 저장 프로 시저에서 속도가 느린 이유는 정확합니까? 이 SP는 DB2에서 실행됩니다.DB2에 많은 시간을들이는 삽입물
-1
A
답변
0
트리거는 성능을 위해 좋은 해결책이 아닙니다. 테이블에 자동 증가 열을 사용하십시오.
0
병목 현상은 실제로 트리거입니다. 나는 방아쇠를 떨어 뜨리고 sp를 달렸다, 약 15k 기록을 삽입하는 데 최대 2 분이 걸렸다. 지금 트리거 대신 시퀀스를 사용하고 있습니다.
관련 문제
- 1. SQL Server의 저장 프로 시저에있는 많은 삽입물
- 2. Ada에서 삽입물 사용?
- 3. 벌크 삽입물. 정말 무엇입니까?
- 4. 멀티 페디큐어 얼간이 삽입물
- 5. Django 고유 벌크 삽입물
- 6. php- 마지막 삽입물 ID를
- 7. 마지막 삽입물 ID 선택
- 8. Django - 마지막 삽입물 ID
- 9. 다른 국가의 UIButton 삽입물
- 10. UITableView에 콘텐츠 삽입물
- 11. Python에서 느린 MySQL 삽입물
- 12. powershell을 사용하여 DB2에 연결
- 13. DB2에 Qt 연결
- 14. DB2에 오라클 테이블 복사하기
- 15. DB2에 해당하는 ISDATE
- 16. Python에서 DB2에 연결
- 17. 건물 UDF DB2에
- 18. 데이터베이스가 DB2에 나열되지 않았습니다.
- 19. pyodbc.Error 'IM002'DB2에 연결
- 20. DB2에 시간을 hhmmss로 저장하는 방법
- 21. 다른 테이블을 차단하는 삽입물 삽입
- 22. 업데이트 변환에서 DD_UPDATE를 사용하는 삽입물
- 23. 스트리밍 삽입물 및 테이블 데코레이터
- 24. 플래시 삽입물 앞에 div를 놓기
- 25. JDBC를 사용하는 PostgreSQL의 일괄 삽입물
- 26. Google 앱 엔진의 트랜잭션 삽입물
- 27. 삽입물 이외에도 LinkedLists의 장점은 무엇입니까?
- 28. DB2에 대한 ODBC 연결이 끊어졌습니다.
- 29. db2에 ID 삽입 기능이 있습니까?
- 30. DB2에 수천 개의 행 삽입
프로세스가 행 단위 처리를 사용하고있는 것 같습니다. 세트 기반 솔루션을 찾을 수 있는지 확인하십시오. – HLGEM
쿼리 계획을 보면 정확히 병목 현상을 알 수 있습니다. 당신이하는 것처럼 시퀀스 번호를 생성하는 것은 일반적으로 성능이 좋지 않을뿐 아니라 가능한 경쟁 조건으로 인해 매우 나쁜 아이디어입니다. – mustaccio
DB가 테이블에 두 개의 인덱스를 유지하는 경우 bluk 삽입은 두 배의 시간이 소요됩니다. 50 개의 색인은 50 배의 시간이 소요됩니다. 일부 OS에서는 인덱스가 실제로 필요하기 전까지 고유하지 않은 인덱스를 끌 수 있습니다. 또는 ID를 얻은 테이블에 ID의 고유 인덱스가 필요합니다. 30kids를 예약하고 낭비 할 수있는 것보다 빠르게 작업을 수행 할 것입니다. – danny117