설문조사
PostgreSQL/PPAS 관련 듣고 싶은 교육은


총 게시물 176건, 최근 0 건
   

table별 rows(row count), used segment size를 확인 하는 방법

글쓴이 : 포로리 날짜 : 2016-11-01 (화) 14:28 조회 : 7842
관리(모니터링) 용도의 query 등을 만들고 있습니다.
가급적 sql(query)를 이용해서 관리 shell을 만들고 있는데,
특정 DB의 User(schema)별로 table의 row count, used segment size를 확인 할 수 있을가요?

지금은
#>\dt+
와 -E option의 query를 사용하는데, size 통일이 안된다거나, user별로 따로 login을 해야 한다거나의
문제가 있어서요...

혹시 관리 목적 용도의 query문 등이 있으시면 도움 부탁 드립니다.

주킹 2016-11-01 (화) 14:43
\dt+ 쿼리가 size 통일이 안되시면 pg_size_pretty 함수만 빼면 됩니다.
댓글주소
     
     
포로리 2016-11-01 (화) 14:57
주킹님 자세한 답변 감사드립니다.  ^^
덕분에 해결이 되었습니다.

그런데.. 혹시 해당 쿼리 하나로 다른 schema의 object도 확인을 하려고 하면
dictionary를 바궈야 하나요??
해당 쿼리는 아래와 같습니다.


SELECT n.nspname as "Schema",
  c.relname as "Name",
  CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as "Type",
  pg_catalog.pg_get_userbyid(c.relowner) as "Owner",
  pg_catalog.pg_table_size(c.oid) as "Size",
  pg_catalog.obj_description(c.oid, 'pg_class') as "Description"
FROM pg_catalog.pg_class c
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
      AND n.nspname <> 'pg_catalog'
      AND n.nspname <> 'information_schema'
      AND n.nspname <> 'sys'
      AND n.nspname <> 'dbo'
      AND n.nspname !~ '^pg_toast'
  AND pg_catalog.pg_table_is_visible(c.oid)
댓글주소
주킹 2016-11-02 (수) 08:56
맨 마지막 AND pg_catalog.pg_table_is_visible(c.oid)

조건절을 제거하면 해결됩니다. 

저 함수는 현재의 search_path만 보겠다는 함수입니다.
댓글주소
     
     
포로리 2016-11-02 (수) 15:38
주킹님 정말 감사합니다.  (--)(__)
모든 문제가 해결이 되었네요.. ^^
댓글주소
          
          
PostgresDBA 2016-11-03 (목) 15:32
완성하신 쿼리를 "나만의 강좌및 팁" 게시판에 올려주시면
많은 사람들한테 도움이 되겠지요~
댓글주소
   

postgresdba.com