2017-09-28 9 views
0

독자가 Execute Reader 및 Execute Scalar의 목적을 알고 있습니다. 그러나 Execute Reader는 스칼라 실행 목적으로 사용할 수 있습니다. 그렇다면 스칼라 실행을 사용하는 이유는 무엇입니까? 그들간에 성능 차이가 있습니까? 더 빠릅니다.ADO.Net - 리더 실행과 스칼라 실행 성능 차이

감사합니다.

답변

0

차이점은 IDbCommand 구현에 따라 다릅니다. ExecuteScalarExecuteReader과 같은 코드를 내부적으로 실행하면 성능이 동일 해집니다. 좋은 예는 SqlCommand입니다. 두 가지 방법 모두 내부적으로 RunExecuteReader 메서드를 호출하므로 성능에 차이가 없습니다.

많이 사용되는 IDbCommand 구현은 SqlClient (MySqlConnector, NpgSql, Microsoft.Data.Sqlite)와 동일한 방식으로 작동하지만 잠재적으로 ExecuteScalar에 대해 더 나은 성능을 제공하는 ADO.NET 커넥터를 가질 수 있습니다. 간단히 말해서 구체적인 클래스 (예 : SqlCommand)를 호출하면 ExecuteReader 또는 ExecuteScalar를 사용할 수 있습니다. IDbCommand 인터페이스 (예 : 재사용 가능한 라이브러리에서)를 사용하고 ExecuteScalar의 구현 사용법에 대해 모르는 경우 특별히 최적화 된 구현이있는 커넥터와 함께 사용하면 성능상의 이점을 얻을 수 있습니다.