BLOG main image

같은생각
From... Las

Home | Local log | Tag | Google RSS | Google analytics | Trace watch | Guestbook  
     - 잘 지내나요?
    List  

'데이터가져오기'에 해당되는 글 1건

  1. 2007/06/07 ASP 데이터 가볍게 가져오기(GetRows)

ASP 데이터 가볍게 가져오기(GetRows)

아직도 데이터베이스에서 데이터를 가지고 올 때 반복문 안에서 Movenext를 사용하는가? 그렇다면 이 글을 관심있게 살펴 보기 바란다. 대부분의 사람들이 데이터베이스에서 데이터를 가지고 올 때 다음과 같은 방식을 이용하여 데이터를 가지고 온다.






<%
' 데이터베이스 오픈
Do UNTIL rs.eof
  name=rs("name")
  address=rs("address")
  company=rs("company")
  rs.movenext
  '사용자게에 데이터를 보여주기 위한 처리...
LOOP
%>


만일 예를 들어, 3개의 컬럼에 700개의 레코드를 가지고 온다고 가정해 보자. 만일 그렇다면 아래 공식처럼 전체 3,500번의 데이터베이스 접근을 시도해야 한다.






+ 2,100 ..... 각각의 필드를 읽을 때 마다 데이터베이스 요청 (700 * 3)
+ 700    ..... 각각의 movenext 마다 1회씩 총 700회 요청
+ 700    ..... 각각의 eof 테스트마다 1회씩 총 700회 요청
=======
= 3,500


만일 가지고와야할 데이터가 많으면 많을 수록 더 많은 요청이 이루어질 것이고 그에 따른 성능 저하가 예상이 된다.


그렇다면 3,500번의 요청이 예상되는 위의 예를 단 한 번의 요청으로 같은 결과를 가지고 올 수 있을까? 있다. 바로 GetRows를 사용하는 것이다. 다음과 같은 방식으로 GetRows를 사용할 수 있다:






dim myArray
myArray = rs.GetRows


3개의 컬럼을 가진 700개의 레코드를 단 한 번에 배열로 저장시킬 수 있다. 이것은 데이터를 가지고 오기 위해 매번 데이터베이스와 통신을 하지 않아도 배열 메모리에 저장해 두고 그 데이터들을 사용할 수 있음을 의미한다. 심지어 데이터를 사용하기 전에 Recordset, Connection 객체 리소스를 반환해도 됨을 의미한다.


이제 실제 코드를 한 번 살펴보도록 하자.






<html><head>
<TITLE>GetRows를 사용한 예제</TITLE>
</head>
<body bgcolor="#FFFFFF">
<%
' 자신의 환경에 맞는 데이터베이스 정보 입력
myDSN="Provider=SQLOLEDB; Data Source=(local); Initial Catalog=pubs; User ID=sa; Password=1111"
' 자신에게 맞는 SQL문 설정
mySQL="select * from authors"
showblank="&nbsp;"
shownull="-null-"

set conntemp=server.createobject("adodb.connection")
conntemp.open myDSN
set rstemp=conntemp.execute(mySQL)
If  rstemp.eof then
  response.write "해당 데이터가 존재하지 않습니다!<br>"
  response.write "조회하신 SQL 문 : " & mySQL
  Call CloseAll
  response.end
end if

response.write "<table border='1' cellspacing='0' cellpadding='5' bordercolordark='white' bordercolorlight='black'><tr>" & vbcrlf
'테이블 제목 표시
for each whatever in rstemp.fields
  response.write "<td><b>" & whatever.name & "</B></TD>" & vbcrlf
next
response.write "</tr>" & vbcrlf

' 모든 레코드를 배열로 저장
alldata=rstemp.getrows
Call CloseAll

numcols=ubound(alldata,1)
numrows=ubound(alldata,2)
FOR rowcounter= 0 TO numrows
  response.write "<tr>" & vbcrlf
  FOR colcounter=0 to numcols
     thisfield=alldata(colcounter,rowcounter)
     if isnull(thisfield) then
        thisfield=shownull
     end if
     if trim(thisfield)="" then
        thisfield=showblank
     end if
     response.write "<td valign=top>"
     response.write thisfield
     response.write "</td>" & vbcrlf
  NEXT
  response.write "</tr>" & vbcrlf
NEXT
response.write "</table>"
%>

</body></html>
<%
SUB CloseAll
  rstemp.close
  set rstemp=nothing
  conntemp.close
  set conntemp=nothing
END SUB
%>

출처 : http://blog.naver.com/crabz/140026512210

Category : My page/Study   Tag :  
2007/06/07 00:17   By Las 
Trackback : Comment

prev page next page
1 

Recent Entry

Recent Comment

Recent Trackback

Counter

Total : 254754 Today : 0 Yesterday : 52

Tag cloud

..., ......ing, ActiveX 삭제, ADO, ADO 성능 높이기, agp, Aids, Another World, apple cinema, asp, Aya Ueto, A형, Baldurs Gate, bard, BEO Player, Book, Bryan adams, CGV, Chante Moore, clie, compact, Compilation, Convert, DAO, dao에서 ADO로, DarkNamer, datetime, DB restore, DB 복구, db 테이블 정의서, dell 2007WFP, DreamFall: The Longest Journey, dvd, DVD 타이틀, ecotonoha, eve-online, event.keyCode 번호표, Facebook, favicon, favis, Faye Wong, FLASH, Fon, Fon Lafontenna, fon maps, FON 지향성 안테나, footnote, Fun, Game, Gamecube, game_ost, GETDATE, Google, Google analytics, Graphic card, hanami, HDTV 수신카드, heaven, HijackThis, I-RAM, i4R, IceWind Dale, IE ActiveX, IE Plug-in, IETOY, include, irc, ishihara satomi, isNull, Java, JavaScript, jazz, join update, j_drama, j_music, kav, kb917422, Kenny G, keyboard_Fun, k님, Launcher, LightBox2, Linked Server, linux, Lottery Music, M.Friends, Maki Horikita, Matsu Takako, mdb, MDB생성, MDB압축, Microsoft iPod, mp3, mp3 Media Player, MSN Live, MSN Messenger, Mssql, Myminicity, NEC, NeverwinterNights, o-game, ogame, one more time, Open Your Eyes, opencapture, openTTD, PageDefrag, palm, pc_game, pc_game_tip, PC업그레이드, Pda, Petit Launcher, picture, pinball, Pink Floyd, program, ps3, punkbuster, RAID, RDO, Remake, retrievr, Review, Search, settler, settler2, skt 포인트소멸, songlist, sony usm2gj, spread, SqL, Starry Night, sudoku, Symphonic, THE ERASER, The Father, The isley brothers, thecheat, theinquirer, Think, THOM YORKE, Time, tip, Tistory, tracewatch, Twitter, ubuntu, Uchiyama Rina, Ueto Aya, UltraMon, unplugged, us and them, util, ux50, vangard, vb, wallpaper, Web관련, Wii, WOW, xirc, xp install, yui, Yumiko Shaku, z22, Zoo 愛をください, Zune, クロサギ, ソニン, 上戸彩, 優香, 我願意, 王菲, 王靖雯, 白い影, 가상주민등록번호, 강릉, 건슈팅, 검색로봇, 고냥군, 괴물, 구입기, 그해 여름, 그해여름 OST, 기억상실, 기억속의 인물, 김연아, 꿈 속에 살아가다, 난수 발생, 날개셋, 날씨, 내캐릭, 내컴퓨터, 놀자, 다랭이, 다스베이더, 다케우치 유코, 당신은 사랑받기 위해 태어난 사람, 더워, 데이터가져오기, 독백, 동생, 듀얼모니터, 레지스트리 청소, 로또, 로코모션, 마마님, 머리속, 메타정보, 미완료작업물, 밀란쿤데라, 바탕화면 아이콘을 줄이자, 박x무당님, 범프키, 보안카드, 북다트, 블랙잭, 뿌리를찾아서, 사제, 삼돌이, 삼벌식, 삽질의 현장, 생각, 생활의 지혜, 설명, 성격, 세계 AIDS의날, 소닌, 스타더스트, 스티브잡스, 스팸댓글, 시스템, 신동우, 신승훈, 실시간알리미, 싸이월드 플러그인, 안나님, 언락, 업데이트, 연애편차치, 영화를 보다, 오소영, 옥션광고, 와라님, 외장하드, 우에토 아야, 웨군, 웹표준, 유용한 소스, 유카, 윤창군, 음악저작권법, 이동성, 이벤트당첨, 이사, 이승환 9집, 이자람, 인희, 일본연예인, 자바스크립트 코드 작성법, 자식창에서 부모창 함수 사용, 잘지내나요?, 잡담, 저장프로시저, 정규식, 젠장!!!, 족보, 즐거운인생, 지름, 천안전씨, 추억과 이야기들, 카툰, 칼리브레이션, 캡쳐, 컴터 다운, 컴터업, 케로로중사 중에서, 키트님, 태양의노래 OST, 테더스킨, 테터툴즈, 투명한얼음, 트랙백놀이, 트릭, 특성, 파일이름바꾸기, 파코즈, 편한사람, 플러그인, 하고싶어, 한국 지도 서비스, 한글입력기, 함수모음, 향수, 혈액형, 혼자놀기, 후회,