2013-03-16 3 views
0

DB의 열 집합을 참조하고 이러한 열을 업데이트해야한다는 요구 사항이 있습니다. 이 열 집합은 여러 병렬 트랜잭션에서 공통/공유되므로 데이터 무결성 및 일관성을 손상시키지 않으면 서 어떻게 좋은 성능을 얻을 수 있습니까? 더 명확하게하기 위해, 나는 긴 트랜잭션이있다. 나는 사전 프로세싱을하고 특정 값을 계산한다. 나는이 값을 한계와 비교한다. 한도는 일반/공유 열로, 거래를 계속 진행할 경우 업데이트해야합니다. 응용 프로그램에는 여러 사용자가있어 비슷한 작업을 수행하고 동일한 '제한'과 비교하고 더 진행해야합니다.높은 성능

+0

'제한'이란 무엇입니까? 어떤 종류의 색인입니까? hilo optimizer를 사용할 수 있습니까? –

+0

프로그래머에게 더 적합 할 수 있습니다 .... – Jayan

+0

대부분의 데이터베이스는 동일한 테이블에 대한 병렬 트랜잭션을 지원하지 않습니다. 동시에 작업 할 트랜잭션이 필요한 경우 설계를 재고하는 것이 좋습니다. –

답변

2

정확하게 이해하면 제한은 일종의 세마포처럼 작동합니다. 세마포어 액세스는 정상적인 트랜잭션의 일부가 아니어야합니다. 즉시 한도를 늘리려하고, 실패하면 거래를 중단하고 싶습니다.

이렇게하는 방법은 제한 증가를 하위 트랜잭션으로 실행하는 것입니다. 거래 경계를 사용하는 경우 TransactionAttributeType.html#REQUIRES_NEW을 사용할 수 있습니다.

자세한 답변을 원하시면 다소 질문을 명확히하십시오.

관련 문제