게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
SQL 비교 속도 문제. |
---|
작성자: 궁금이
작성일시: 2005-01-13 09:54,
조회수: 1,018
|
안녕하세요.
질문이 있어서 다시 들렸습니다. 소스에 에러가 나는 건 아니고 단지 속도 문제가 좀 심각해서 문의 드립니다. Textarea가 두개가 있습니다. 위에 원문을 넣고 카테고리 즉 한글 => 일본어 혹은 일본어 => 한글 을 선택 한후 <img src="img/btn_trans.gif" onclick="frmReplace();" style="cursor:hand" alt="번역"> 버튼을 누르면 MS SQL 데이터베이스의 테이블 안의 값들과 비교하여 원문에 있는 걸 아래의 Textarea에 replace 해주는 방식입니다. 말이 사전이지 단지 replace 해주는 역할만 해주는 것 입니다. 근데 타임 아웃 에러가 나는 건 아닌데 로컬에서 테스트를 해도 속도가 너무 늦습니다. 소스 한번 보시고 속도 개선에 대한 충고 좀 부탁 드립니다. 소스: <%@LANGUAGE="VBSCript" codepage="65001"%> <%Option Explicit %> <!--#include file="../Receive/conn.asp"//--> <% response.buffer = true response.expires = 0 response.charset="utf-8" '-- for Sql Dim wSql, wTmp Dim Sql ' -- for searching Dim qry Dim Conn, Rs, rs1 Dim idx_no,writeTxt, viewTxt, languge Dim langL, langR Dim txtL, txtR Dim i, tmpTxt idx_no = request.form("idx_no") languge = request.form("languge") writeTxt=request.form("writeTxt") qry = "lang="&request.form("lang")&"&txt="&server.UrlEncode(request.form("txt")) If idx_no="" Then idx_no="''" viewTxt=writeTxt If languge="" Then languge="jp1kr1" langL = left(languge,3) langR = right(languge,3) sql = "select idx_no, word_kr1, word_jp1, word_en1, word_en2 from tbl_dictionary " Sql = Sql &" Where division <> '05' " Sql = Sql &" order by len(word_"&langL&") desc, division asc " set Rs=Conn.Execute(sql) If Rs.Eof = false Then Do until Rs.Eof txtL = Rs("word_"&langL) txtR = Rs("word_"&langR) If isNull(txtL) Then txtL="" If isNull(txtR) Then txtR="" viewTxt = replace(viewTxt,txtL,txtR) Rs.moveNext Loop End If %> <html> <head> <title>::::::Dictionary:::::</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="css/style.css" rel="stylesheet" type="text/css"> <script language="javascript"> function frmAct(vChk,qry){ with(document.frm){ switch(vChk){ case "nav": self.location.href="dic_list.asp?search=n"; break; case "wrd": window.open("dic_write.asp?pop=yes","wrd","left=20,top=20,width=950,height=320"); break; case "sav": if(word_kr1.value==""){ alert("입력하세요"); word_kr1.focus(); return; } if(division[0].checked==false&&division[1].checked==false&&division[2].checked==false&&division[3].checked==false&&division[4].checked==false&&division[5].checked==false&&division[6].checked==false&&division[7].checked==false&&division[8].checked==false){ alert("분류 선택"); return; } target="BOTTOM"; action="dic_actR.asp"; submit(); break; case "new": word_kr1.value=""; word_jp1.value=""; word_jp2.value=""; word_jp3.value=""; word_en1.value=""; for(var i = 0 ; i < withWord.length ; i++){ withWord[i].checked=false; } break; } } } function frmReplace(){ if(document.frm.languge.value==''){ alert("입력하세요"); return; } document.frm.action="dic_replace.asp"; document.frm.target="CONTENT"; document.frm.submit(); } function copyit(theField) { var tempval=eval("document.frm."+theField) tempval.focus() tempval.select() therange=tempval.createTextRange() therange.execCommand("Copy") } function clearTxt(){ with(document.frm){ writeTxt.value=''; viewTxt.value=''; } } function SetScrollPos(objElement) { var objTarget = document.all.TA_SRC; objTarget.scrollLeft = objElement.scrollLeft; objTarget.scrollTop = objElement.scrollTop; } function CheckLines1() { var strContnent = document.all.TA_SRC.value; var aryContnent = strContnent.split("\n"); for (var i = 0; i < aryContnent.length; i++) { if (document.all.HiddenLine.checked == false) { aryContnent[i] = aryContnent[i].replace(/^.+?\s:\s/, ""); aryContnent[i] = (i + 1) + " : " + aryContnent[i]; } else{ aryContnent[i] = aryContnent[i].replace(/^.+?\s:\s/, ""); } } document.all.TA_SRC.value = aryContnent.join("\n"); } function CheckLinespase1(objElement){ //if(document.frm.line.checked==false){ var strContnent = window.clipboardData.getData("Text"); var aryContnent = strContnent.split("\n"); for (var i = 0; i < aryContnent.length; i++) { aryContnent[i] = aryContnent[i].replace(/^.+?\s:\s/, ""); aryContnent[i] = (i + 1) + " : " + aryContnent[i]; } event.returnValue = false; document.all.TA_SRC.value = aryContnent.join("\n"); //} } </script> </head> <body leftmargin="0" topmargin="5" marginwidth="0" marginheight="0"> <table width="900" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="3171a5"> <form method="post" action="dic_replace.asp" name="frm"> <input type="hidden" name="lang" value="<%=request.form("lang")%>"> <input type="hidden" name="txt" value="<%=request.form("txt")%>"> <input type="hidden" name="act" value="new"> <tr> <td valign="top" bgcolor="#FFFFFF"> <div align="center"> <table width="900" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td align="center" valign="top"><img src="img/title_trans.gif" width="880" height="40" border="0" usemap="#Map"> </td> </tr> <tr> <td align="center"> <table width="880" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="13%" height="7" background="img/bg1.gif"></td> <td width="2" align="center" bgcolor="d5d5d5"></td> <td background="img/bg3.gif"></td> </tr> <tr> <td height="30" align="center" valign="top"> <table width="200" border="0" cellspacing="0" cellpadding="0" bgcolor="EDF5FD"> <tr> <td align="center"><BR> <select name="languge" size="3"> <option value="">=====선택=====</option> <option value="jp1kr1" <%If languge="jp1kr1" Then response.write "selected"%>>日 => 韓</option> <option value="kr1jp1" <%If languge="kr1jp1" Then response.write "selected"%>>韓 => 日</option> </select><BR><BR> </td> </tr> <tr> <td height="1"align="center" background="img/dot.gif"></td> </tr> <tr> <td align="center" bgcolor="FFFFFF"> </td> </tr> <tr> <td align="right" bgcolor="FFFFFF" height="120" valign="bottom"> </td> </tr> </table> </td> <td width="2" align="center" bgcolor="d5d5d5"></td> <td height="30" align="center"> <table width="660" border="0" cellspacing="3" cellpadding="0"> <tr> <td> <input type="checkbox" name="HiddenLine" value="1" onclick="CheckLines1();"> 라인 넘버 표시 않함 </td> </tr> <tr> <td align="center"> <textarea cols="77" rows="14" name="writeTxt" style="overflow:auto;line-height:13px;" id="TA_SRC" onpaste="CheckLinespase1(this);" onkeydown="CheckLines1(this);"><%=writeTxt%></textarea> </td> </tr> <tr> <td height="1"align="center" background="img/dot.gif"></td> </tr> <tr> <td align="center"> <textarea cols="77" rows="14" name="viewTxt" style="overflow:auto;line-height:13px;" id="TA_TRG" onscroll="SetScrollPos(this);" ><%=viewTxt%></textarea> </td> </tr> </table> </td> </tr> <tr> <td height="3" background="img/bg1.gif"></td> <td width="2" align="center" bgcolor="d5d5d5"></td> <td height="3" background="img/bg3.gif"></td> </tr> <tr align="right"> <td height="8" colspan="4" ></td> </tr> <tr> <td align="right" colspan="4"> <img src="img/btn_trans.gif" onclick="frmReplace();" style="cursor:hand" alt="번역"> </td> </tr> </table></td> </tr> </table> </div></td> </tr> </form> </body> </html> |
IP 주소: 61.33.79.10
|
![]() |
게시물 | |||
---|---|---|---|---|
976 | 2005-01-29 | 5,436 | ||
975 | 2005-01-31 | 2,828 | ||
974 |
파일큐브 질문이 있습니다. [3] |
2005-01-28 | 2,717 | |
973 |
명랑군 |
2005-01-27 | 769 | |
972 | 2005-01-27 | 2,723 | ||
971 |
명랑군 |
2005-01-28 | 763 | |
970 | 2005-01-28 | 2,654 | ||
969 |
명랑군 |
2005-01-26 | 792 | |
968 | 2005-01-26 | 2,653 | ||
967 |
명랑군 |
2005-01-25 | 802 | |
966 | 2005-01-25 | 2,840 | ||
965 |
수업시간표 짜는 프로그램 [1] |
2005-01-18 | 4,139 | |
964 |
ie 위치 이동 [1] |
2005-01-18 | 2,793 | |
963 | 2005-01-18 | 2,904 | ||
962 |
테이블 갯수 알아오기 [6] |
2005-01-17 | 3,114 | |
961 |
|
2005-01-17 | 2,947 | |
960 |
오마르 |
2005-01-15 | 835 | |
959 |
오마르 |
2005-01-15 | 791 | |
958 | 2005-01-15 | 2,777 | ||
![]() |
궁금이 |
2005-01-13 | 1,018 | |
955 | 2005-01-13 | 2,773 | ||
954 | 2005-01-13 | 2,888 | ||
953 |
궁금이 |
2005-01-13 | 886 | |
952 | 2005-01-14 | 3,394 | ||
951 | 2005-01-12 | 3,664 |