.net 1.1 기반의 기존 웹 사이트 (.net 1.1 기반)를 사용하여 데이터에 액세스합니다. 웹 서비스는 SQL을 실행하는 저장 프로 시저를 호출합니다.디자인 질문 - C#으로 여러 행 업데이트 - 다중 왕복 이동에 대한 걱정
많은 자식 개체 (설명) (5-25)가있는 부모 개체 (문자)가 있고 각 자식 개체의 한 열을 새로운 값으로 업데이트해야합니다. 주석에 플래그를 설정해야합니다 예를 들어 승인 된 상태로 설정하는 경우 -이 속성은 나중에 승인되지 않은 메모를 추가 할 수 있으므로 메모가 아닌 메모에 있습니다.
우리가 취할 수있는 일반적인 접근 방식은 새로운 웹 방식을 만드는 것입니다. ApproveComments를 승인하고 letterID를 전달하여 편지에있는 모든 주석을 승인되도록 설정하십시오. 그런 다음 ApproveCommentsOnLetter 저장 프로 시저를 호출하여 ApprovedFlag를 true로 업데이트합니다 (letterID = 전달 된 매개 변수).
이 접근 방식은 시간이 지남에 따라 시스템의 특정 영역에 새로운 기능이 추가되면서 매우 특정한 웹 서비스 호출과 매우 특정한 저장 프로 시저로 끝나는 경향이 있음을 의미합니다. 그래도 괜찮습니다.하지만 우리는 항상 새로운 코드를 작성하고 있으며 어떻게 다른 방식으로 작업 할 수 있는지 생각하고 있습니다. 나는 .net 버전을 지금은 작은 변화로 바꿀 수는 없지만 시간이 지남에 따라이 응용 프로그램을 계속 업데이트 할 때 다르게 접근하는 방법을 고려하고 있습니다.
내가 가진 아이디어는 대신 UpdateComments라고하는보다 일반적인 웹 메서드를 만드는 것입니다.이 메서드는 모든 주석 업데이트에 사용됩니다. 나는 이것들에 Comments 객체들의 배열을 전달할 것이다.이 객체들은 get/set 속성을 가질 것이다. 이 경우에는 루프를 통해 각각의 Status 속성을 True로 업데이트 한 다음 웹 메서드에 보내기도하지만 나중에 다른 웹 메서드를 만들지 않고 유사한 방식으로 다른 열을 설정할 수 있습니다.
나는 데이터베이스 섹션을 약간 비틀 거리고있다. 다음 단계는 UpdateComment 저장 프로 시저를 갖는 것입니다. 나는 차례 차례로 각 코멘트에 대해 한 번씩이 여러 번 호출해야합니다. 나는이 호출 (5-25 현재)에 대한 데이터베이스로의 반복 된 왕복 횟수를 많이 만드는 것이 매우 효율적이지 않으며 단지 일반적으로 이이라고 느낀다는 것을 알고 있습니다. 다른 방법은 볼 수 있지만 이러한 '일괄'업데이트는 특정 웹 메서드 및 저장 프로 시저를 사용하여 한 번에 특정 속성을 업데이트하는 데 사용되는 것입니다. 그런 다음 다시 새 만들기로 돌아 왔습니다. 프런트 엔드에 추가하는 각각의 새 기능에 대한 웹 메서드 및 저장 프로 시저를 제공합니다.
이 접근 방법에 대한 생각에 감사드립니다. ORM/새 버전의 .net/등을 추가 할 수 없으므로 .net/등의 새 버전을 추가 할 필요가 없습니다. 기술을 사용하고 있습니다.
"옵션이 아니면 1 회 왕복으로 여러 번 저장 프로 시저를 호출 할 수 없다는 내용은 없습니다." - 동료 개발자는 평균적으로 동일한 작업을 사용자 작업 당 5 번 (잠재적으로 최대 25 번) 호출하는 것이 a) 성능에 좋지 않고 b) 나쁘다는 점을 우려합니다. 두 가지 방법 중 하나를 수행하는 데 필요한 성능 수치가 없습니다 (아직 작성하지 않았으므로) "조숙 한 최적화"인지 또는이 접근 방식에 대한 중요한 관심인지 여부에 관심이 있습니다. – Durathor
여러 번 라운드 트립에 성능 차이가 있습니다. 또한 하나의 명령문이 수행 할 때 많은 갱신 명령문을 사용하면 성능 차이가 더 적습니다. 시기 상조인지 여부는 앱에 따라 다릅니다. 25 개 왕복 여행은 많은 앱에서 괜찮을 수 있습니다. 50,000 왕복은 대부분의 앱에서 괜찮지 않을 것입니다. 측정이없는 최적화는 기술적으로 조기입니다. –