상세 컨텐츠

본문 제목

Provider Infomation - SQL 수행 내용 확인 방법

C#

by 탑~! 2008. 4. 1. 10:18

본문

공급자일부 응용 프로그램 작성자의 경우 응용 프로그램에서 "실시간" 모니터링을 수행하는 것이 유용하다는 것을 알고 있습니다. Windows 성능 모니터를 사용하거나, 고유한 성능 클래스를 정의하거나, 시간이 지나면 취약해질 수 있는 내부 SQL Server 메타데이터 호출을 사용하여 이 정보를 가져올 수도 있지만 SqlClient에는 이제 이 정보를 얻을 방법이 기본적으로 제공됩니다. SqlConnection 클래스의 인스턴스 메서드를 사용하면 각 연결에 대해 ODBC API에서와 비슷한 통계를 수집할 수 있습니다. 이러한 통계 저장 및 수집 과정에서는 자체 오버헤드가 발생하므로, 통계 수집을 토글하는 데 사용할 수 있는 속성이 있습니다. 또한 카운터를 다시 설정하는 메서드도 있습니다. 통계 수집은 기본적으로 해제되며, 풀링 시나리오에서 Dispose 또는 Close를 호출하여 연결 풀에 연결을 반환할 때도 해제됩니다. 다음은 생성된 통계의 예입니다.

string connect_string = GetConnectStringFromConfigFile();
SqlConnection conn = new SqlConnection(connect_string);
conn.Open();

// 활성화
conn.StatisticsEnabled = true;

// 일부 작업 수행
//
SqlCommand cmd = new SqlCommand("select * from authors", conn);
SqlDataReader rdr = cmd.ExecuteReader();

Hashtable stats = (Hashtable)conn.RetrieveStatistics();

// 통계 처리
IDictionaryEnumerator e = stats.GetEnumerator();
while (e.MoveNext())
Console.WriteLine("{0} : {1}", e.Key, e.Value);

conn.ResetStatistics();

Connection-specific statistics
BuffersReceived : 1
BuffersSent : 1
BytesReceived : 220
BytesSent : 72
ConnectionTime : 149
CursorFetchCount : 0
CursorFetchTime : 0
CursorOpens : 0
CursorUsed : 0
ExecutionTime : 138
IduCount : 0
IduRows : 0
NetworkServerTime : 79
PreparedExecs : 0
Prepares : 0
SelectCount : 0
SelectRows : 0
ServerRoundtrips : 1
SumResultSets : 0
Transactions : 0
UnpreparedExecs : 1

이러한 통계가 정확히 무엇을 나타내는지에 대한 자세한 내용은 ADO.NET 2.0 또는 ODBC 설명서를 참조하십시오.


From : http://blog.naver.com/getmail?Redirect=Log&logNo=100035333209

관련글 더보기