beerfroth (원작)
sql server와 asp를 이용하여 간단한 방명록을 작성했는데, 꾸준한 시도를 통해 페이지에 메시지를 표시할 때 실행 방법과 시간에 약간의 차이가 있다는 것을 발견했습니다.
여러 가지 방법의 시간 비교를 비교를 통해 살펴보겠습니다.
먼저 페이징을 위해 저장 프로시저를 사용합니다. 이 상황은 두 가지 방법으로 구분됩니다.
첫 번째는 다음과 같이 명령 개체를 사용하는 것입니다.
Set Cmd=server.CreateObject("Adodb.Command")
Cmd.ActiveConnection=conn
Cmd.CommandText="ycuu_gb_getmsg"
Cmd.CommandType=4'adCmdStoredProc
cmd.prepared=true'
set param=Cmd.CreateParameter("@iPageNo",adInteger,1,2,Page)
Cmd.Parameters.매개변수 추가
set param=Cmd.CreateParameter("@iPageSize",adInteger,1,2,PageSizeConst)
Cmd.Parameters.매개변수 추가
rs=Cmd.execute를 설정합니다.
두 번째 방법은 다음과 같이 연결 객체의 실행 메소드를 이용하여 직접 실행하는 것이다.
set rs=conn.execute ("execute ycuu_gb_getmsg "&page&", "&pagesizeConst)
둘째, 저장 프로시저를 사용하지 않고 페이징을 위해 ADODB.RecordSet 기능을 직접 사용합니다. 구체적인 코드는 다음과 같습니다.
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "날짜 및 시간 설명으로 방명록 주문에서 * 선택"
rs.open SQL,콘,1,1
rs.pagesize = 150'각 페이지에 표시되는 메시지 수,
총계 = rs.RecordCount
mypagesize = rs.pagesize
rs.absolutepage = page
속도를 좀 더 명확하게 보여주기 위해 각 페이지에 표시되는 메시지 수를 150개로 늘렸습니다(물론 그렇게 큰 값을 설정하지는 않았습니다). 내 컴퓨터의 구성에 대해서는 주로 속도 비교를 위한 것이므로 생략하겠습니다.
실행 시간은 다음과 같은 것으로 확인되었습니다.
첫 번째 유형: 0.1953125초에서 0.2109375초 사이에서 안정적이며 평균값
은 약 0.20초입니다. 두 번째 유형: 0.1716875초에서 0.1857초 사이에서 안정적이며 평균값은 약 0.177입니다.
세 번째 유형의 초
: 0.4375초에서 0.4632초 사이에서 안정적이며 평균값은 약 0.45초입니다.
그러나 읽은 레코드 수가 20개인 경우 결과는 다음과 같습니다.
실행 시간은 다음과 같은 것으로 확인되었습니다.
첫 번째 유형: .0390625초에서 .0546875초 사이에서 안정적이며 평균값은 약 0.045초
입니다. 두 번째 유형: 0.046875초에서 .0546875초 사이에서 안정적이며 평균값은
다음과 같습니다.about Yes: 0.050초.
세 번째 유형: .09375초에서 0.1015625초 사이에서 안정적입니다. 평균값은 약 0.97초입니다.
이 관점에서 보면 conn.execute와 두 가지 방법 사이에는 큰 차이가 없는 것 같습니다
.명령.실행.
전자의 호출 방법이 더 간단한 것 같습니다.
동시에, 페이징 저장 프로시저 속도가 실제로 레코드세트 페이징 속도보다 훨씬 빠르다는 것을 여기서 볼 수 있습니다.
PS: 처음으로 글을 쓰게 됐는데요, 와우, 좋은 글을 쓰는 게 정말 어려운 것 같아요. 앞으로도 열심히 하겠습니다. 이번에는 제가 서투른 글을 쓴 것을 모두가 용서해주기를 바랍니다. 그건 그렇고, 영웅들에게 conn.execute와 command.execute 두 가지 방법 중 어느 것이 더 좋은지 묻고 싶습니다. 하하. 왜냐하면 제가 인터넷에서 찾은 것은 저장 프로시저를 실행하는 후자의 방법이기 때문입니다. 왜 예전처럼 간단한 것을 사용하지 않는지 모르겠습니다.