아래 C# .net 웹 응용 프로그램에 대해 Db 쿼리를 캡처하려고합니다.ADO.net DB 쿼리 실행 시간 캡처
DbProviderfactory를 프록시로 사용하면 할 수있는 방법이 있습니다. 하지만 아래의 SqlConnection과 SqlCommand를 직접 사용하는 경우 DbProviderFactory를 사용하는 대신 DB 호출을 어떻게 추적 할 수 있습니까?
SqlConnection myConn = new SqlConnection(@"Server=192.168.23.99;Initial Catalog=cat1;User ID=user21;Password=userpwd");
SqlCommand myCommand = new SqlCommand("select * from table1", myConn);
SqlDataReader dataReader;
System.Threading.Thread.Sleep(5000);
try
{
myConn.Open();
dataReader = myCommand.ExecuteReader();
GridView1.DataSource = dataReader;
GridView1.DataBind();
dataReader.Close();
myCommand.Dispose();
myConn.Close();
}
catch (System.Exception ex)
{
Response.Write(ex.ToString());
}
나는 이것을 추적하는 프로파일 러가 있다는 것을 알고 있습니다. 그러나, 나는 내 자신의 계획에서 이것을하고 싶다.
기본적으로 DbProviderFactories를 사용하지 않는 웹 요청에서 Db Connection 및 Db 명령을 프로파일 링해야합니다. 나는 .Net 용 프로파일 러를 개발하는 데있어서 새로운데,이를 위해 몇 가지 지침이 필요할 것으로 기대한다.
감사합니다.
는'SqlCommand' 그렇게 작동하지 않을 성 같은 프록시를 사용하여 봉인 클래스입니다. [System.MarshalByRefObject] (http://msdn.microsoft.com/en-us/library/system.marshalbyrefobject%28v=vs.110%29.aspx)에서 상속되므로 어떻게 든 삽입 할 수 있습니다. 메시지가 체인에 가라 앉는다. 이 주제에 대한 기사는 다음과 같습니다 : [사용자 정의 서비스를 사용자 개체의 인터셉트 체인에 주입하여 구성 요소 분리] (http://msdn.microsoft.com/en-us/magazine/cc164165.aspx). 성공하면 예제를 게시하십시오. 나는 같은 것을하고 싶다. (나는 시도 할 시간이 없다.) –