UPDATE STATISTICS 없이 GBase 8s에서 실제 행 수 가져오기

발행: (2026년 5월 9일 PM 08:24 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

Background

sys​tablesnrows 컬럼은 UPDATE STATISTICS 를 실행할 때만 업데이트되므로, 대량 삽입 직후에도 종종 0 으로 표시됩니다. 실제 실시간 행 수가 필요할 경우—특히 파편화된 테이블에 대해—sysmaster:sysptnhdr 를 조회하거나 oncheck 를 사용할 수 있습니다.

Querying sysptnhdr

sysmaster 데이터베이스에서 systables.partnumsysptnhdr.partnum 을 조인합니다. sysptnhdr.nrows 는 실제 행 수를 제공하고, npdata 는 사용 중인 데이터 페이지 수를 나타냅니다.

SELECT t.tabname,
       t.partnum,
       t.nrows,
       p.nrows,
       p.npdata
FROM   stores_demo@gbaseserver:systables t,
       sysmaster@gbaseserver:sysptnhdr p
WHERE  t.partnum = p.partnum
  AND  t.tabname = "customer";

Using sysfragments

sysfragments 를 사용해 파티션 번호(partn)를 얻고 이를 sysptnhdr.partnum 과 조인하면 파편별 행 수를 확인할 수 있습니다.

SELECT f.partn,
       p.nrows,
       p.npdata
FROM   sysfragments f,
       sysmaster@gbaseserver:sysptnhdr p
WHERE  f.partn = p.partnum
  AND  f.tabname = "tab1";

Using oncheck

oncheck -pt 명령은 통계 업데이트 없이도 테이블 또는 파편에 대한 행 수와 페이지 수를 즉시 보여줍니다.

oncheck -pt stores_demo:tab1

출력에는 Fragment … Number of rowsNumber of pages 와 같은 섹션이 포함됩니다. 이는 GBase 데이터베이스에서 데이터 양을 검증할 때 유용한 운영 도구입니다.

0 조회
Back to Blog

관련 글

더 보기 »