SP(Stored Procedure)

Tags:

역시 자바 서비스넷에서 했던 얘기..
아무래도 자바 서비스넷은 역시 “자바” 서비스넷인듯…
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,
에 있습니다.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *