로

[튜닝] DB 쿼리 상황 기록하기.

 

작성: freeimage.kr 081226 김성대
목적: 얼마나 많은 쿼리가 중복 실행되고 있는가 살펴보자..

1. common.php 에
공용변수 난에 추가한다..
기록을 사용하지 않으면 막으면 된다..
set_session("sql_debug_file","$g4[path]/../tmp/".date("ymd").".sql.rec");
이 파일명은 html로 접근이 안되는곳에 위치해야한다.


common.lib.php 을 다음과 같이 수정한다.

//SQL 기록 session 값이 정의가 되면 그 파일에 기록한다.
function sql_history($sql) {
 if ($_SESSION["sql_debug_file"]) {
  $fp=fopen($_SESSION["sql_debug_file"],"a+");
  $a=explode(" ",microtime());
  fputs($fp,date("ymd His",$a[1])."\t$a[0]\t".getenv("REMOTE_ADDR")."\t".$sql."\n");
  fclose($fp);
 }
}


// DB 연결
function sql_connect($host, $user, $pass)
{
    global $g4;

 sql_history("sql_connect $host, $user, $pass, ".$g4[charset]);
    if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
    else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
    return @mysql_connect($host, $user, $pass);
}


// DB 선택
function sql_select_db($db, $connect)
{
    global $g4;

 sql_history("sql_select_db $host, $user, $pass, ".$g4['charset'] );
    if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
    else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
    return @mysql_select_db($db, $connect);
}


// mysql_query 와 mysql_error 를 한꺼번에 처리
function sql_query($sql, $error=TRUE)
{
 sql_history("sql_query $sql");
    if ($error)
        $result = @mysql_query($sql) or die("<p>$sql<p>" . mysql_errno() . " : " .  mysql_error() . "<p>error file : $_SERVER[PHP_SELF]");
    else
        $result = @mysql_query($sql);
    return $result;
}


// 쿼리를 실행한 후 결과값에서 한행을 얻는다.
function sql_fetch($sql, $error=TRUE)
{
 sql_history("sql_fetch $sql");
    $result = sql_query($sql, $error);
    //$row = @sql_fetch_array($result) or die("<p>$sql<p>" . mysql_errno() . " : " .  mysql_error() . "<p>error file : $_SERVER[PHP_SELF]");
    $row = sql_fetch_array($result);
    return $row;
}

|

댓글 1개

XML로 파싱을 좀 간단히 하는 방법이 없을까요.가령,최신글이나 메뉴목록을 뽑아 올때요.보통 캐슁처리를 기본으로 하지만,XML파싱이 좀더 세련되고,속도가 빠르다고 알고 있는데요.
댓글을 작성하시려면 로그인이 필요합니다.

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
09-01-07 조회 3,147
09-01-07 조회 3,818
09-01-07 조회 3,344
09-01-05 조회 2,576
09-01-05 조회 6,818
09-01-03 조회 4,076
08-12-29 조회 3,122
08-12-27 조회 3,302
08-12-26 조회 1.2만
08-12-26 조회 3,025
08-12-23 조회 6,158
08-12-21 조회 3,566
08-12-19 조회 8,194
08-12-19 조회 3,285
08-12-17 조회 3,660
08-12-16 조회 2,543
08-12-15 조회 4,354
08-12-15 조회 1만
08-12-14 조회 3,272
08-12-11 조회 4,037