SQL programming 
ADO.NET SQL 데이타 읽기

SQL 데이타를 가져오는 방식은 크게 두 가지가 있다. 클라이언트에서 SQL 서버를 연결할 상태에서 데이타를 가져오는 Connected 모드와 데이타를 한꺼번에 클라이언트에 가져온 후 SQL 서버의 연결을 끊는 Disconnected 모드이다. 첫번째 방식을 이용하기 위해서는 먼저 SQL 서버에 연결을 Open하고, SQL SELECT문을 써서 쿼리를 서버로 보내고, 결과를 SqlDataReader 클래스 객체에 담아, 한 레코드(Row)씩 데이타를 읽어 사용하면 된다. 또한 데이타 사용이 끝났을 때는 서버 연결을 닫아 주어야 한다.

예제






SqlDataReader : Connection Leak을 방지하는 방법

Connection Leak이란 클라이언트가 작업이 완료되었음에도 서버 연결을 끊지 않고 계속 유지하고 있는 경우로서, SQL 서버 성능을 저하시키는 원인이 된다. ADO.NET의 SqlDataReader을 사용할 때을 Connection Leak이 발생하는 경우가 종종 있다. 예를 들어, 아래의 예 처럼 SqlDataReader를 리턴하는 메서드를 만든 후 이를 호출해서 사용하는 경우가 많다. 이 경우 SqlConnection 객체는 GetDataReader() 메서드를 빠져 나가면 그 SqlConnection 객체를 엑세스할 방법이 없어 진다. 나중에 SqlDataReader객체에서 SqlDataReader.Close() 를 호출한다 해도 이는 DataReader만 Close하기 때문에 Connection을 닫을 수 없게 된다. 즉, Connection Leak이 일어나는 것이다. 이러한 문제를 해결하는 방법은 ExecuteReader 메서드를 실행할 때 CommandBehavior.CloseConnection 옵션을 아래 예와 같이 주는 것이다. 이 옵션을 사용하면 SqlDataReader.Close()가 호출되었을 때, SqlConnection도 함께 Close된다.

예제





본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.