Q&A

  • storedprocedure 를 싸용하는 이유 ?
일일 발생 트랜잭션이 약 1500건 정도 됩니다. 제조업 erp 시스템을 개발 하고자 하는데
data i/o 를 stored procedure 로 하는 것과 그냥 query 문으로 처리 하는 것 중 어느게
효과적인지요 ?

stouredprocedure 를 이용할 경우 서버의 성능을 이용하게 되기 때문에 동시 사용자가 많을
경우 서버에 과부하가 걸리는건 아닌지요 ?

좀 많이 알려 주세요..
5  COMMENTS
  • Profile
    황준동 2005.07.15 23:39

    스토어드 프로시져를 사용하는 이유는요. 별거 없습니다.

    연산을 위해 많은 데이터를 클라이언트로 끌고올 필요가 없다는 것입니다.

    그러니까 예를 들자면 상품을 하나 매입을 하면 거기에 따라서 여러가지 처리가 발생됩니다.

    매입을 기록하고, 상품 재고를 증가 시키고, 거래처의 외상 매입금을 증가시키고, 그외 다른 장부에

    기록할 사항을 기록하게 되지요.

    만약에 스토어드 프로스져를 사용하지 않는다면 클라이언트 프로그램에서 매입을 기록하는 Insert 문을

    날리고, 그다음에 상품 재고 Update 문 날리고, 외상 매입금 증가 Update 날리고, 그외 장부에 Update,

    Insert 문을 날리게 되겠죠. 그러면 서버는 날라 온걸 받아야 하고 그걸 인식 해서 다시 실행하고,

    그 결과들을 또 하나씩 날려야 할 겁니다.  

    물론 트리거를 사용해도 되겠지만 결국 그것도 스토어드 프로시져의 일종이니...

    하지만 스토어드 프로시져를 사용하면 하나의 프로시져에서 모두 처리를 하게 되므로, 그냥 생각해 봐도

    통신 부분의 시간이 줄고 결과도 하나로 날라오니 그 시간도 줄겠죠.

    그리고 인식하는데도 시간이 줄고 이래 저래 시간이 줄게 됩니다. 이런 스토어드 프로시져의 효과는 작은 데이

    터 보다는 많은 량의 데이터를 가지고 작업할때 그 효과를 느끼게 됩니다...

    ^^; 답변이 됐는지 모르겠네요... 그럼..


  • Profile
    권태훈 2005.07.07 01:12
    간단하게 생각하시면 됩니다.

    두가지 기준으로 스토어드 프로시져를 사용합니다.

    1.같은 sql 문장이 동일시간에 몇번이나 반복되는가?
    2.컴파일시 오래 걸리는 문장.

    배치작업을 스토어드 프로시져로 한다는 이야기는 대부분의 배치 작업이
    같은 sql을 사용하기 때문에 1번 항목에 걸립니다. 하루에 한번이라고 해도
    장기적으로 보면 많기 때문이죠..

    스토어드 프로시져는 컴파일 시간을 절약하고자 하는것이지
    Data input/output 시간이 줄어드는것은 아닙니다.

    서브쿼리 등이 있을때 in/output에 대한 흐름도 고려를 해야 합니다.


    그리고, 스토어드 프로시져는 컴파일 된 상태입니다.

  • Profile
    모영철 2005.07.06 17:57
    그렇죠. 서버가 좀 무거워 지겠죠..

    하지만 미리 컴파일을 해놨기때문에 속도는 훨씬 빠릅니다.

    스토어드 프로시져 하나만 보고 써야 되나 말아야 되나를 결정하기는 그렇고

    전체 시스템의 균형을 생각해서 설계 되어야 겠지요...

    간단 한것들은 쿼리로 날려주고..

    배치작업들이라던지 속도가 오래 걸리는 작업들을 스토어드 프로시져로 만들면

    효과를 볼수 있겠죠..

  • Profile
    조혜진 2005.07.06 18:22
    sql상의 컴파일된 프로시저와 stored proc 콤포넌트에 올려서 사용하는 경우의 차이점이 어케 되는지요 ?


  • Profile
    다트25 2005.07.06 19:04
    sql에서 storedprocedure 는 compile 이라기보다 parcing 이 아닌가요?

    죄송합니다. 질문인지 답변인지 애매하네요 ㅡㅡ;;

    • 허버벅
    • 2005.07.11 18:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정찬희
      2005.07.13 01:10
      Char * 은 PChar로 WORD는 똑같습니다...
    • 이길용
    • 2005.07.10 22:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.07.13 22:34
      안녕하세요. 최용일입니다. 제가 이쪽을 한지 오래되서 틀릴지도 모르겠는데... ShellFolder.GetUIOb...
    • 이길용
      2005.07.15 11:48
      먼저 답변 주셔서 감사하구요. 그런데 한폴더 내에 있는 파일들은 물론 그렇게 하면 메뉴가 나오는 건 알...
    • kivalan
    • 2005.07.09 19:30
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최순경
    • 2005.07.09 10:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2005.07.09 19:29
      float 연산에서 값이 정확하게 들어갈것이라고 생각했다간 큰코다침... 48.0 들어갈 자리에 47.99999696...
    • Galaxy
    • 2005.07.09 01:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.07.09 03:48
      먼저  if (Panel5.Controls[i] is TEdit) then 이문장이 True인데. (Panel5.Controls[i] as ...
    • Galaxy
      2005.07.12 20:35
      안녕하세요 수고 많습니다. DevLabelp[Ei4] .Top:=(Panel5.Controls[i] as TEdit).Top;   ...
    • 정대상
    • 2005.07.09 00:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 민스맘
      2005.07.09 02:40
      자료실에 찾아보시면 LoadFromFile, SaveToFile이 지원되는 그리드가 있을겁니다. AdvStringGrid 머 그...
    • 장봉태
    • 2005.07.08 23:29
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 민스맘
      2005.07.09 02:41
      Try    db.Connected := True; Except    Application.Terminate; end; ...
    • 장봉태
      2005.07.09 22:15
      그렇게하면 바로 Except 처리가 되면 좋은데 ODBC설정을 바꾸지 않으면 위의 메세지 CWBSY0002 가 나와...
    • 최동열
    • 2005.07.08 19:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.07.09 00:45
      안녕하세요. 최용일입니다. 어떤 폰트를 말씀하시는 건지... IDE의 Editor에서 사용하는 폰트는 Tool...
    • 이송미
    • 2005.07.08 07:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      2005.07.15 23:32
      ^^; 물어보신건 아무 델파이 책에나 다 나오는 부분인데요... ^^; 글구 Insert, Update, Delete 등...
    • 배정은
    • 2005.07.08 05:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.07.08 07:13
      테스트는 해보셨나요? SELECT * FROM table1 WHERE field4 like '*html*'; 액세스에서 직접 테스트...
    • 조혜진
    • 2005.07.08 03:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 민스맘
      2005.07.09 02:43
      그게 일반 쿼리로는 안되구 다른 컴포넌트를 사용해야 하는 걸로 알고 있어요 StoredProc 이거던...
    • 조혜진
      2005.07.11 18:34
      음.... MS SQL 의 경우 QUERY 콤포넌트에서 SP_TEST 를 아래의 코딩처럼 CALL 해서 사용할 수 있습니다. ...
    • 최용일
      2005.07.08 02:19
      안녕하세요. 최용일입니다. 1비트 비트맵이라면 한 픽셀씩 읽음 당연히 0아니면 1로만 표시됩니다. ...
    • 아러브델파이
      2005.07.08 06:34
      안녕하세요. 답변 감사 드립니다 . 궁금한게 있어서 다시 질문드립니다. - Image[i,j]:=PixelData^; ...
    • 최용일
      2005.07.08 11:06
      안녕하세요. 최용일입니다. for문은 바뀌어야 되는게 맞지만.... 적으신 for문은 8의 배수로 나누어 떨...
    • 아러브델파이
      2005.07.08 18:02
    • 최용일
      2005.07.07 22:17
      안녕하세요. 최용일입니다. 리치에디트에서 LoadFromFile로 파일열때 fmOpenRead or fmShareDenyWrite로...
    • 온스
      2005.07.07 22:34
      감사합니다.
    • 모영철
      2005.07.07 20:29
      FieldByName이 문제 아닐까요.. Output 파라미터도 파라미터니깐 parambyname으로 하시면 되지 않을까.....
    • 조혜진
      2005.07.07 20:57
      음.... ALTER PROCEDURE SP_TEST (     PC_SEQ_NO CHAR(6)) RETURNS (  &...
    • 물총새
    • 2005.07.07 03:45
    • 3 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.07.07 08:14
      현재 시스템이 키보드 입력이나 마우스 조작이 없으면 특정프로그램을 대기상태로 전환하거나 종료시키기위...
    • 물총새
      2005.07.07 20:07
      ================================================================== 우선 답변 고맙습니다. 말씀하...
    • nilriri™
      2005.07.08 07:01
      소스 내용을 보시면.. 마우스 이벤트를 훅킹하는 함수부분이 있습니다.. 여기에서 GRest; 이라는...
    • 메니아
    • 2005.07.06 23:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 조혜진
    • 2005.07.06 17:50
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 황준동
      2005.07.15 23:39
      스토어드 프로시져를 사용하는 이유는요. 별거 없습니다. 연산을 위해 많은 데이터를 클라이언트로 ...
    • 권태훈
      2005.07.07 01:12
      간단하게 생각하시면 됩니다. 두가지 기준으로 스토어드 프로시져를 사용합니다. 1.같은 sql 문장이 ...
    • 모영철
      2005.07.06 17:57
      그렇죠. 서버가 좀 무거워 지겠죠.. 하지만 미리 컴파일을 해놨기때문에 속도는 훨씬 빠릅니다. 스토...
    • 조혜진
      2005.07.06 18:22
      sql상의 컴파일된 프로시저와 stored proc 콤포넌트에 올려서 사용하는 경우의 차이점이 어케 되는지요 ? ...
    • 다트25
      2005.07.06 19:04
      sql에서 storedprocedure 는 compile 이라기보다 parcing 이 아닌가요? 죄송합니다. 질문인지 답변인지 ...
    • 물총새
    • 2005.07.06 03:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2005.07.06 03:53
      안녕하세요 하얀까마귀 입니다. 정확히 뭐가 문제가 되는지 잘 모르겟군요.. 아래와 같이 검색해서 ...
    • 물총새
      2005.07.07 20:14
           For K := MDIChildCount - 1 DownTo 0 Do Begin      ...