2010-07-12 5 views
0

스냅 샷 데이터가 포함 된 SQLServer 테이블이 있습니다. 나는 최근 행을 이전 행과 비교하여 특정 열이 변경되었는지 확인해야합니다. 한 번에 최대 40 개의 열 조합을 비교하면서 여러 번이 작업을 수행해야합니다. 조합 중 하나에서 열 값이 다를 때마다 최신 값을 포함하는 XML 문서를 만들어야합니다. 모든 행에서 적어도 하나의 XML 문서를 생성 할 것으로 기대합니다.동일한 테이블에 대해 두 행을 여러 번 비교하는 경우

비교를 수행하는 가장 좋은 장소는 저장 프로 시저에서 모든 열의 조합마다 하나씩 수행해야합니다. 아니면 ADO.NET을 통해 전체 행을 되돌리고 코드에서 비교해야합니까? 비교를 수행하는 쉬운 방법이 있습니까?

+0

어떤 응용 프로그램입니까? 웹 앱? 데스크톱? Windows 서비스? 웹 서비스? 즉, 사용자 데스크탑, 웹 서버, 다른 서버 및 데이터베이스 엔진에서 작업 수행을 비교하고 있습니까? – DOK

+0

어떤 종류의 XML 문서를이 문서에서 만들 것으로 예상합니까? –

+1

이것은 Windows 서비스가 될 것입니다. 우리는 코딩과 유지 관리의 용이성보다는 성능에 대해 그렇게 걱정하지 않습니다. – Dorian

답변

0

ADO.Net을 통해 행을 비교하는 것은 처음에는 으로 보입니다.은 처음에는 매우 빠르게 나타납니다. 데이터 양이 많아지면 실행 시간도 길어집니다.

SQL Server 내에서 비교하는 것이 가장 좋습니다.

2

이 당신이 원하는 것입니다하지만 당신은 알고 충분한 세부 사항 (DDL, 예 등)를 포기하지 않았다 ... 과거에이 같은 상황에서

내가 그에 트리거를 만들 것 테이블을 작성하고 변경 로그를 다른 테이블에 기록하십시오. 그런 다음 대기중인 변경 항목을 읽고, 처리하고 삭제하십시오.

트리거에서 열의 상태를 쿼리하여 업데이트되었는지 확인할 수 있습니다.

0

일반적으로의 경우, 설명하는 작업을 수행하는 가장 빠른 (즉, 가장 빠른) 장소는 가능한 한 데이터에 가능한 가까운 즉 데이터베이스 자체입니다.

그렇다면 내가 왜 이렇게하고 있는지 궁금하며 다른 각도에서 문제를 공격 할 수 있는지 궁금합니다.

관련 문제