database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 6402 게시물 읽기
No. 6402
김상기님의 prepared query의 위험한 외줄타기를 읽고...
작성자
초보대왕
작성일
2005-11-05 22:38ⓒ
2005-11-05 22:39ⓜ
조회수
2,510

김상기님의 pgpool 과 prepared query의 위험한 외줄타기 라는 글을 보고

문득 의심나는 점이 pgpool 을 사용했을 때 어느 쿼리를 prepared query 로 할 것인가

고민하셨읍니다. 그런데 저장프로시저로 한번에 조회해서 결과를 받아오면

저장프로시저 자체에서 동적쿼리가 아닌 한 서버측 API 인 SPI_prepare() 함수로

자동 prepare 처리가 되는 것으로 알고 있습니다.

그렇다면 어느 프로시저를 prepared 로 할까를 고민하기 보다는

어떻게 하면 페이지 정보를 한 개의 저장프로시저로부터 통째로 한번에 가져올 수 있을까.

하는 쪽에서 생각하는 것이 좀 낫지 않을 까 합니다.

과연 페이지 전체를 한 개의 저장프로시저로 만드는 것과

김상기님처럼 db 튜닝을 통해 prepared 쿼리 계획을 세우는 것 중

어느 것이 더 낳을 지 고견을 주시면 좋겠습니다.

(제 임시 사이트의 경우 속도가 중요한 메인페이지와 리스트페이지는 한 개의 저장프로시저로

pgsql 서버에서 XHTML 포맷으로 한 방에 가져오고 그 XHTML 을 해석하는 역할은

오로지 클라이언트의 javascript 가 처리하고 있습니다.)

 

이 글에 대한 댓글이 총 2건 있습니다.

간단하게 생각하시면 될것같은데요. :)

 

두개의 페이지를 만들어서 퍼포먼스를 살펴보시면 될 것같네요.

 

하나는 모든 작업을 프로시져가 하고, 웹은 단지 프로시져 결과만 보여주는 방식과,

 

다른 하나는 프로시져 내용을 웹에서 각각 보내는 방식하고.

 

과연 그 차이가 얼마일지가 사뭇 궁금하네요.

한번 해보시고, 밴치마크 결과를 보여주세요.

(db 서버와 웹서버의 사양이 크게 차이가 나지 않는다면, 제가 보기에는 별로 차이가 없을듯 싶습니다만)

김상기(ioseph)님이 2005-11-07 12:06에 작성한 댓글입니다.

DB에서 할 수 있는것은 DB에서 하라 라는 말이 있다고 해도 최종 결과물의 가공처리까지 DB에서 하는것이 옳은지 그른지는 잘 모르겠네요;;

prepare를 쓰겠다 함은 빈번한 쿼리의 쿼리플랜 연산의 시간을 줄이겠다는 것이고, 그 결과물은 어플에서 자유롭게 가공할 수 있다는 말이 됩니다. xml형태로 저장프로시저에서 한번에 받아온다면 처리할 수 있는 영역이 한계가 있겠죠? xml파서가 없거나 구현하기 힘든 언어와 엮인다면 더 많은 손이 갈 것으로 생각됩니다.

 

현재 논점에서만 따져본다면 prepare를 만들고 프로시저 안에서 그 prepare를 사용하고 어플은 두 쪽 중 원하는 것을 선택해서 사용하는 방법이 제일 좋지 않을까요?

 

말씀하신 xml -> javascript 라는 고정된 환경이라면 그 방법도 나빠 보이지는 않습니다만 다른 환경에서도 최선책이라는 생각은 안드네요

신기배(소타)님이 2005-11-07 12:47에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
64081분에 4만개의 데이터를 인서트하면서... [10]
이정호
2005-11-09
4504
6405김상기님의 prepared query의 위험한 외줄타기를 읽고(2)...
초보대왕
2005-11-07
2203
6404에러 해결방법좀 알려주세요... [1]
나그네
2005-11-07
2231
6402김상기님의 prepared query의 위험한 외줄타기를 읽고... [2]
초보대왕
2005-11-05
2510
6399dbmirror 사용법??
가우나라
2005-11-02
2109
6398윈도우에서 postgresql 서버를 Administrator 계정으로 실행시키는 방법 [2]
prich
2005-11-02
2335
6395An error occured in the logger. ERROR: permission denied for relation activity_log [2]
chabrothers
2005-11-01
3696
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다