데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
vb.net 프로그래밍 중 아래 두 쿼리중 어느쿼리가 속도가 더 빠를까요?
sql command가 속도가 더 빠르다는 말이 있기에.. 질문드립니다 .
sSql = "select * from testdb..test"
Rs1 = New ADODB.Recordset
Rs1.CursorLocation = ADODB.CursorLocationEnum.adUseClient
Rs1.Open(sSql, DBcon, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly)
If Rs1.RecordCount > 0 Then
end if
Rs1.close
sSql= "select * from testdb.test"
cCmd = New SqlCommand(sSql, DBcon)
Rs1 = cCmd.ExecuteReader()
If Rs1.HasRows Then
End If
rs1.close
<script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>
Comment 3
-
항해자™
2016.04.21 11:42
-
항해자™
2016.04.21 11:49
아,, 두번째 예시가 프리페어가 되는 형태인것 같아 보이는군요;;
첫번째 실행시에는 비슷하고, 두번째 부터는 두번째가 빠를꺼라 생각되네요,,,
-
minsouk
2016.05.10 00:49
adodb 를 쓸 때 서버 커서를 사용하면 fetch 수에 따라서 성능이 느려질 수 있습니다.
그런데, 지금 경우는 클라이언트 커서 이므로 성능 차이가 없어 보입니다.
프리페어냐 아니냐는 드라이버 질문과 다른 이슈로 보이네요... 어떤 드라이버든지 프리페어 할 수 있습니다.
http://sqlsql.tistory.com/2
두 쿼리는 별 차이가 없을 듯 합니다,,
한번 쓰고 말꺼라면 모르겠지만, 여러번 반복해서 사용되는 쿼리라면 좋은 성능을 위해서 프리페어를 사용하셔야 합니다,,
가급적이면 프로시저를 사용할 것을 권고하지요,,,