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 4644 게시물 읽기
No. 4644
이 소스좀 분석해 주세요....
작성자
여준성
작성일
2003-03-31 15:33
조회수
1,314

postmaster 데몬이 갑자기 많이 뜨고 죽지 않으며 속도가 무지하게 느려졌습니다. 다음 소스를 분석해주시면 고맙겠습니다.

 

 

 

 

 

function getArticlesFromLocation($locationNum, $sizeNum, $db) {

global $DBConn, $db;

 

$sqlStmt = " DECLARE mycursor CURSOR FOR ";

$sqlStmt = " $sqlStmt SELECT * FROM articles WHERE location=$locationNum Order by dateregistered DESC ";

pg_exec($DBConn, $sqlStmt);

 

$sqlStmt = " SELECT articles.dateregistered as intdate, articles.*, articles.photo AS photo, categories.id AS categoryid , categories.description AS category FROM softlinks, categories, articles where categories.id = softlinks.categoryid AND articles.id = softlinks.articleid AND articles.location = $locationNum Order by dateregistered DESC ";

 

$resultSet = pg_exec($DBConn, $sqlStmt);

$resultSize = pg_numrows($resultSet);

 

for ($i = 0 ; $i < $sizeNum && $i < $resultSize ; $i++) {

$row = pg_fetch_object($resultSet, $i);

$Title = $row->title;

$Content = han_substr($row->content,145);

 

echo "&nbsp;<img src='images/contents_trispot.gif'>&nbsp;<font style='font-size:9pt'>

<a href='../userview/u_articleview.php3?db=$db&id=$row->id&page=$page&depth=$row->categorydepth&cid=$row->categoryid&sid=$cid&addenURL' taget=_self>

<b>",$Title ,"</b></a></font><br><img src=../images/blankline.gif><br>&nbsp;&nbsp;<table border=0><tr><td width=15></td><td><font style='font-size:9pt;' style='line-height:175%;' color=#133C3F>",$Content,"</font></td></tr><tr><td height=3></td></tr> </table>";

}

$sqlStmt = "CLOSE mycursor";

pg_exec($DBConn, $sqlStmt);

}

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

데몬이 많이 뜨는 것이 이 함수 때문이라는 명확한 증거부터 찾으셔야할 듯싶습니다.

 

윗 함수에서 이상한 부분이,

커서를 만들어놓고 사용하질 않고 있네요.

왜 만들었는지 ....

 

아무튼 소스를 본 봐로는, 윗 함수와, 서버가 느려지고, 데몬이 많이 생기는 것과는 별개인듯싶습니다.

 

윗 소스는 그냥 "SELECT articles.dateregistered ....." 쿼리를 서버로 보내서 그결과를 화면에 보여주는 것 밖에는 하는 것이 없거든요.

 

늦어졌다면, 데이터는 많은데, 인덱스를 사용하지 않아서 쿼리자체를 처리하는데, 무지막지하게 비용을 많이 쓰이는 경우일 터인데.... (윗 함수만으로 보아서는)

김상기(ioseph)님이 2003-03-31 17:32에 작성한 댓글입니다.

explain 으로 해보니 index는 사용하고 있었습니다.

 

위의 소스는 function getArticlesFromLocation($locationNum, $sizeNum, $db)를 사용해서 메인화면에 글을 가져오는 소스인데 이것을 사용하면 메인 화면이 뜨는 속도가 매우 느립니다.

 

오래 있다가 한번에 확 뜨는 거지요

vacuum도 해주고 해도.....

 

그런데도 데몬이 떠서 죽지 않는 상황이 발생합니다..

여준성님이 2003-03-31 23:19에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4649isam과 vsam이 어떻게 파일을 찾아가고 작동하는지....
최치홍
2003-04-08
1160
4648time zone에 관련하여. [1]
초본데요?
2003-04-08
1419
4647이미지데이터를 OID에... [1]
신재규
2003-04-04
1476
4644이 소스좀 분석해 주세요.... [2]
여준성
2003-03-31
1314
4642초보 Shell Script 질문입니다. [2]
박민훈
2003-03-27
1422
4641distinct 관련 질문입니다. [2]
노인철
2003-03-26
1480
4640postgre 포팅 [1]
dasi
2003-03-25
1359
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다