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
두 쿼리는 별 차이가 없을 듯 합니다,,
한번 쓰고 말꺼라면 모르겠지만, 여러번 반복해서 사용되는 쿼리라면 좋은 성능을 위해서 프리페어를 사용하셔야 합니다,,
가급적이면 프로시저를 사용할 것을 권고하지요,,,