SP(Stored Procedure)

역시 자바 서비스넷에서 했던 얘기..
아무래도 자바 서비스넷은 역시 “자바” 서비스넷인듯…
DB에 대한 잡담을 하려면 인터넷을 마구잡이로 헤메던가 하는 수밖에..
사실 요즘은 DB에도 관심이 없어졌다… application 보단 theory 쪽이
더 하고 싶으니까..
———–

여러분의 의견을 듣고자합니다.(SP관련..)
글쓴이: MOK(20thmok) 2003/10/16 11:06:04 조회수:112 줄수:41

결론적으로 말하면 stored procedure를 쓰느냐 안쓰느냐의 문제입니다.

middleware단을 tuxedo라고 생각하시면 되구요(저희가 pro*c로 만든 demon을 아파치와 함께 쓰고있죠..)

예전에 이 게시판에서 논의 된것 처럼 stored procedure(이하 sp)가 속도향상에 도움을 주는 것은 일반적으로 사실이라고 생각됩니다.

그러나..

기존의 돌아가고 있던 시스템에 sp를 올리면 SERVER에 분명 부하를 줄 것이고 이게 어느정도의 부하를 줄지 의문입니다.

1. SP를 만들어 놓고 쓰는 것과 pro*c 에서 호출하는 것과의 속도와 부하문제…
2. 만약 sp를 만들어 쓸때, 서버에 부하를 주는 요인이 프로시져의 갯수와 call의 갯수 중에서 어떤 것이 더 영향을 끼치는지..

3. sp를 100개를 만들어 놓았다고 생각하면 이게 db instance가 올라올때 한꺼번에 다 올라오는건지 아니면 누군가 call할때 memory에 로딩되는 건지.. 그리고 db가 죽기전까지 계속 로딩되어 있는건지..

4. sp의 갯수도 server에 영향을 줄 수 있는지요. 즉, sp를 100개 로직에 따라 만들어 놓는 것과 sp를 case문등을 이용해서 25개로 줄이는 것 중 어떤 것이 더 부하에 영향을 끼치는지요.. 이 경우에는 sp를 call할때 4개를 1개로 줄인 sp만큼 client가 한 sp에 call하는 갯수도 고려를 해야하겠지요?

복잡하네요..^^;

신중히 고려해야할 문제이기에… 만약 sp를 만들어 새로운 시스템은 잘돌아가도 기존의 시스템이
느려진다면 엄청난 핍박이 있겠지요..^^;;

고수님들의 여러의견 부탁드립니다..
가능하시면 reference가 있으신분은 출처도..^^

당찬 하루를 위해!!

===============================
오늘도 내일도 땀 뻘뻘!!
아자!아자!아자!!
===============================

[And I said…]

2. call 의 갯수가 더 중요합니다. 잘 아시는 facade 패턴처럼, 외부에서 facade 에 해당하는 프로시저를 하나 호출하고, 이것이 내부적으로 다른 프로시저를 호출하는 경우 네트워크의 트래픽과 필요한 프로시저를 모두 외부에서 호출하는 경우를 비교한다면, facade를 사용하는게 빠릅니다… service granularity 라고 흔히 이야기하는 그 내용이 똑같이 적용됩니다. EJB에서 하나의 빈을 호출하고 그 빈들이 나머지를 부르게 만들라는 그것과 같습니다.

3. 최초 접근할때 로드됩니다. 하지만 오라클에는 미리 db가 startup 될때 프로시저를 로드하도록 지정할 수 있습니다. 그리고, 프로시저역시 LRU에 의해서 관리되므로 메모리에서 지워지고 다음 호출할때 불러지고 이렇게 될 수도 있습니다. 따라서 메모리에 항상 존재하도록 할 수 있습니다. 명령이 아마 dbms_shared_pool.keep 인가 그렇습니다. 다른 종류의 DBMS도 있을 거라고 생각됩니다..

4. 개수는 상관없습니다. 개수가 영향준다는 이야기는 처음 듣습니다. 그리고 100개나 25개 같은 적은수라면 더 상관없을 것 같은데요..

마지막으로 SP를 작성하신다면… 오라클의 경우에는 독립적인 프로시저로 만들기보다는 하나의 패키지내에 프로시저를 작성하라고 권합니다. 그 이유는 http://asktom.oracle.com/pls/ask/f?p=4950:8:8348080245626864723::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:7452431376537,
에 있습니다.

고민하고 계신 pro*c 와 pl/sql 의 성능비교에 대한 글은
http://asktom.oracle.com/pls/ask/f?p=4950:8:8348080245626864723::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:1138433172691,
에 있습니다.

Similar Posts:

Post a Comment

Your email is never published nor shared.