2011-03-03 2 views
0

일부 데이터를 가져 와서 테이블에 로컬로 저장하려면 외부 웹 서비스를 호출해야합니다. 이 프로세스는 외부 웹 서비스가 게시하는 데이터가 빠르게 변경되므로 매 10 분마다 반복해야합니다. 이를 위해 전체 테이블을 지우고 웹 서비스에서 게시 한 현재 데이터를 다시 삽입해야합니다.잘라 내기/새로 고침 사이의 데이터베이스 테이블 읽기 문제

우리가 가진 까다로운 상황은 다음과 같습니다. 테이블이 잘 리면 사용자가 테이블을 쿼리하여 결과를 얻지 못합니다. 결과적으로 사용자에게 잘못된 결과가 표시됩니다.

아무에게 나에게 조언을 해 주실 수 있습니까?

답변

4

두 작업 모두에서 트랜잭션을 사용하십시오. 이 같은.

Begin transaction; 
truncate table 
populate the new table 
end transaction 

스냅 샷 격리를 사용하면 표시되는 데이터가 일관성을 유지합니다.

0

테이블을 통해 뷰를 만들 수 있으면 데이터를 새 테이블로로드 할 수 있지만 오래 채울 필요가 있으며 새 테이블을 참조하도록 뷰를 변경하십시오.