2009-08-27 4 views
1

저는 데이터베이스에 대해 임의의 스크립트를 실행하는 .NET 프로그램을 만들고 있습니다. ADO.NET 명령 개체를 다시 사용하는 것이 좋습니다?

대학교 안 데이터베이스 액세스 코드를 쓰기 시작

, 그는 단순히 각 문 (등 ExecuteNonQuery()를 호출 CommandText/ Type 설정) - 재사용하는 응용 프로그램의 나머지 부분에 하나의 명령 개체를 노출.

매번 새로운 구문 분석이 이루어지기 때문에 반복적 인 동일한 문에 대해 큰 성과를 얻은 것으로 생각합니다.

내가 궁금한 점은 : 각 명령문이 이전 매개 변수와 다르면 실행 속도가 저하 될 것인가 (매개 변수가 다르지만 완전히 다른 명령문)? 나는 그 문서의 대답을 쉽게 찾을 수 없었다.

Btw, 사용되는 RDBMS는 Oracle이지만이 질문은 실제로 데이터베이스와 관련이 없습니다.

P. 내가 동일한 Command 개체를 노출 알다시피 스레드 안전하지 않지만, 여기에 문제가 아니에요.

답변

2

새 명령 개체를 만드는 데 약간의 오버 헤드가 발생하므로 특정 상황에서 동일한 명령을 다시 사용하는 것이 좋습니다. 그러나 일반적인 애플리케이션이 전체 애플리케이션에 적용되기 때문에 조금 이상하게 보입니다.

1

일반적으로 성능 저하는 데이터베이스 연결로 인해 발생하지만 ADO.NET에서는 여기에 도움이되는 연결 풀을 만듭니다.

매번 문장을 구문 분석하지 않으려면 문장을 저장 프로 시저에 넣을 수 있습니다.

동료가 명령 개체를 재사용하여 다른 플랫폼에서 작업 한 것을 계승 한 구식 접근 방식을 사용한다고 상상해보십시오.

관련 문제