내 .net 응용 프로그램에서 2 개의 differnet sql 서버 테이블에 레코드를 생성하는 작업이 있습니다. 가장 좋은 방법은 무엇입니까?2 통화 또는 SQL 서버에 대한 단일 호출
하나의 저장 프로 시저로 두 레코드를 모두 만들어야합니까? OR 다른 저장 프로 시저가 해당 데이터베이스의 각 레코드를 만들고 두 호출을 트랜잭션에 랩핑해야합니까? 하나가 실패하면 둘 다 실패합니까?
어느 쪽이 더 좋은가?
내 .net 응용 프로그램에서 2 개의 differnet sql 서버 테이블에 레코드를 생성하는 작업이 있습니다. 가장 좋은 방법은 무엇입니까?2 통화 또는 SQL 서버에 대한 단일 호출
하나의 저장 프로 시저로 두 레코드를 모두 만들어야합니까? OR 다른 저장 프로 시저가 해당 데이터베이스의 각 레코드를 만들고 두 호출을 트랜잭션에 랩핑해야합니까? 하나가 실패하면 둘 다 실패합니까?
어느 쪽이 더 좋은가?
저장 프로 시저가 더 효율적입니다. 또한 서버 측을 작성해야하는 코드가 적어집니다. 단점은 이제 스스로 SQL을 작성하는 방법을 알고 있거나 누가 당신을 위해 작성할 수 있는지 DBA가 있어야한다는 것입니다.
다른 질문에 관해서는 두 테이블에 모두 삽입되는 1 개의 저장된 proc입니다.
고려해야 할 또 다른 사항 : 코드에서 이와 같이 많은 것을해야한다면 좋은 ORM을 배우고 코드 (옵션 2)에서이 모든 작업을 수행하는 것이 좋습니다. 그러나 이것이 일종의 일회성 일인 경우, 저장 프로 시저는 더 똑똑한 접근 방식이 될 것입니다.
로직을 SQL Server에 저장하고 트랜잭션 범위를 정의하는 것이 더 좋으며 .net 응용 프로그램에서 트리거 된이 동작이 저장 프로 시저에서 작업을 수행 할 때이 두 작업이 성공적으로 완료되면 트랜잭션을 제출하고 그렇지 않으면 이 트랜잭션은 롤백됩니다. 이렇게하면 성능이 향상됩니다.
트란 어쨌든. 이것은 거의 조기 최적화입니다. 그것이 더 깨끗한 방식으로하십시오. 진정으로 궁금하다면 두 가지 방법을 사용하여 프로파일 러를 실행하여 운영 환경에서 실제 성능 통계를 얻으십시오. –