하얀늑대 :: 하얀늑대의 일상
bloghome Tags |  Guestbook | 
  Tags
닥스훈트 사진 CEO 분산서버 실명 회사가기시러쏭 위키 블루레이 자바스크립트 window web 요가 조개구이 MS 인터넷 자동차 주민등록번호 체크 인수 주몽 바탕화면
banner
하얀늑대 ::
하얀늑대의 일상

Google
내블로그에서 검색
 하얀늑대는?
 Category
allow  모두보기 (257)
spacespace Today Story's (10)
spacespace 핫이슈 (19)
spacespace 디카질 (4)
spacespace Javascript (15)
spacespace 2000 server (9)
spacespace 2003 server (3)
spacespace 리눅스 (3)
spacespace UCC (6)
spacespace 컴퓨터 Tip (15)
spacespace IT news (52)
spacespace 웹 접근성 (3)
 Tags
주몽 조삼모사 신조어 web2.0 서버 사이트관리 아이콘 AB형 쇼핑몰 가상현실 최적화 아이디어 Stress 조개구이 USB 회사가기시러쏭 tip MSXML2.ServerXMLHTTP 인터넷 쇼핑 DVD
  Calendar
<< 2010 July >>
S M T W T F S
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
 New Post
line 프로그램에서 전화걸기
line HTML 요소 이름의 풀어쓴
line UI 개발자를 위한 북마크
line 대한민국 웹 표준 사이트
line MS-SQL 설치가이드
 New Comment
line클럽4242 : 10/03/17
reply우리사이 좋은사이!! 클
linesusanna : 08/11/07
replyhey,find <a href=http:
line하얀늑대 : 08/05/22
reply위에 페이지는 한페이지 내
line아아아 : 08/04/26
reply개새끼는너야
line아이니 : 08/02/23
reply《$mode 값이 mailsend 일
 New Tracbacks
lineWeb 1.0 과 Web 2.0
line06/11/18
line괴물 - 2006. 7. 28.
line06/07/29
 New Archive
2010 July (1)
2010 April (3)
2009 August (1)
2009 April (2)
2009 March (1)
...more
  Link Site
올블로그
KOON
태터툴즈
엑스파이더
심프로그
디지털예보
thesimplog.com
feed rss
 Visitor Statistics
Total  :  238412
Today :  52
Yesterday :  150


 Google



blog bar tagsbar guest loginbarlogoutbarX-inbar
line GetRows 메서드를 이용한 성능향상
ASP 프로그래밍 | 08/05/27 | 하얀늑대
GetRows 메서드란 무엇이며 사용해야 하는 이유는 무엇인가?
GetRows 메서드란 레코드셋을 하나의 배열로 변환시키는 메서드를 말한다. 즉 GetRows 메서드를 통해 우리는 레코드셋을 하나의 변수에 배열로 반환시킬 수 있다는 뜻이다. 그렇다면, 왜 우리는 이 메서드를 굳이 사용해야 하는 것일까?

게시판을 예로 들어보자. 필자가 보아온 대부분의 게시판들은 게시물 List를 생성할 때 ADO객체를 사용하여 레코드셋을 생성한 후 루프문을 통해 리스트를 생성하는 방식을 취하고 있다.

아래 샘플 코드를 보자.

<%

strTempSql = "SELECT * FROM [테이블]"

SET objRs = Server.CreateObject("ADODB.RECORDSET")

objRs.Open strTempSql, [커넥션스트링], adOpenForwardOnly, adLockReadOnly, adCmdText


If objRs.Eof Then

       Do Until objRs.EOF

              '==리스트 생성==

              objRs.MoveNext

       Loop

End If


objRs.Close : Set objRs = Nothing

%>


위 코드를 보고 무엇이 잘못되었나 하고 의아해 하는 독자들도 있을 것이다. 위 코드는 가장 대중적인 방법으로 많은 ASP책에서 예로 사용하고 있는 기법이며, 많은 개발자들이 위 형식을 취하고 있다.

그렇다면, 위 코드의 단점은 무엇일까? 바로 리스트를 생성하는 동안 레코드셋 객체를 계속 참조해야 한다는 것이다. 위와 같은 코드가 여러 곳에 배치되어 있는 페이지를 생각해 보라. 동시접속자가 많아 질수록 성능은 극도로 나빠질 것이다. 이를 해결하기 위한 방법으로 GetRows 메서드의 사용을 고려해 보아야 한다.

위 샘플코드에 GetRows 메서드를 사용해 보자.

<%

strTempSql = "SELECT * FROM [테이블]"

SET objRs = Server.CreateObject("ADODB.RECORDSET")

objRs.Open strTempSql, [커넥션스트링], adOpenForwardOnly, adLockReadOnly, adCmdText


If objRs.Eof Then

       arrRows = objRs.GetRows()

End If

'GetRows 메서드 사용 후 객체를 바로 해제시킨다.

objRs.Close : Set objRs = Nothing


'GetRows를 이용하여 배열로 반환이 되었다면 리스트를 생성한다.

If IsArray(arrRows) Then

              'Ubound를 사용하여 크기를 알아내자

              For intI = 0 To Ubound(arrRows, 2)

                     '== 리스트를 생성한다.

              Next

End If

%>


GetRows 메서드를 사용하여, 레코드셋 객체에 대한 참조를 바로 해제 시키는 것을 볼 수 있다.

GetRows 메서드를 사용하여 배열로 반환 후 배열의 특성을 사용하여 리스트를 생성함으로써, 웹 서버의 자원 낭비를 감소시키게 되었다. 이로 인해 웹사이트는 더욱 빠른 성능을 사용자에게 제공할 수 있을 것이다. 객체가 차지하는 리소스를 얼마나 빨리 반환해 주느냐에 따라 페이지의 성능은 크게 좌우된다는 것을 알 것이다.

프로그래밍을 하면서 끊임없이 고민해야 할 점은 “어떻게 하면 최소의 비용으로 최대의 성능을 낼 수 있을까?” 라는 부분이다.

 


태그: GetRows
bullet관련글0 | 댓글0
Name :   Pass :  URL :
비밀글로 등록  submit
이전/ 7 8 9 10 11 [12] 13 14 15 16 / 다음 top