Sophie

Sophie

distrib > Mandriva > 2009.0 > x86_64 > media > contrib-testing > by-pkgid > b7275baf04bd377dbb7da23de355da28 > files > 56

postgresql8.2-contrib-8.2.12-1mdv2009.0.x86_64.rpm

$PostgreSQL: pgsql/contrib/pgstattuple/README.pgstattuple.euc_jp,v 1.8 2006/09/04 03:49:05 momjian Exp $

pgstattuple README		2002/08/22 ÀаæãÉ×

1. ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë´Ø¿ô

   pgstattuple
   -----------
   pgstattuple¤Ï¡¤UPDATE¤äDELETE¤Çºî¤é¤ì¤¿¥ê¥ì¡¼¥·¥ç¥ó¤Î¥´¥ßÎΰè¤ÎÂ礭¤µ¤ò¡¤
   ¥ê¥ì¡¼¥·¥ç¥ó¼«ÂΤÎʪÍýŪ¤ÊÂ礭¤µ¤ËÂФ¹¤ë¥Ñ¡¼¥»¥ó¥Æ¡¼¥¸¤ÇÊֵѤ·¤Þ¤¹¡¥¤Ä
   ¤Þ¤ê¡¤ÊÖµÑÃͤ¬Â礭¤±¤ì¤Ð¡¤¤½¤ì¤À¤±¥´¥ß¤â¿¤¤¤Î¤Ç¡¤vacuum¤ò¤«¤±¤ëɬ
   Íפ¬¤¢¤ë¤È¤¤¤¦È½ÃǤνõ¤±¤Ë¤Ê¤ë¤ï¤±¤Ç¤¹¡¥¤³¤ì°Ê³°¤Ë¤â¤¤¤í¤¤¤í¤Ê¾ðÊó
   ¤¬ÊÖ¤ê¤Þ¤¹¡¥
   pgstattuple() ¤Ï¡¢¥ê¥ì¡¼¥·¥ç¥ó¤ÎŤµ¤ä¡¢¥¿¥×¥ë¤Î"¥´¥ßÎΰè"¤Î³ä¹ç¤Ê¤É¤Î
   ¾ðÊó¤òÊֵѤ·¤Þ¤¹¡£¤³¤ì¤é¤Î¾ðÊó¤Ï¡¢vacuum ¤¬É¬Íפ«¤É¤¦¤«¡¢¥æ¡¼¥¶¤¬È½ÃÇ
   ¤¹¤ë¤Î¤ËÌòΩ¤Ä¤Ç¤·¤ç¤¦¡£Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ê·Á¤Ë¤Ê¤ê¤Þ¤¹¡§

       test=> \x
       Expanded display is on.
       test=> SELECT * FROM pgstattuple('pg_catalog.pg_proc');
       -[ RECORD 1 ]------+-------
       table_len          | 458752
       tuple_count        | 1470
       tuple_len          | 438896
       tuple_percent      | 95.67
       dead_tuple_count   | 11
       dead_tuple_len     | 3157
       dead_tuple_percent | 0.69
       free_space         | 8932
       free_percent       | 1.95

   °Ê²¼¤¬³Æ¹àÌܤÎÆâÍƤǤ¹¡§

       table_len		-- ¥ê¥ì¡¼¥·¥ç¥ó¤ÎʪÍýŪ¤ÊÂ礭¤µ(¥Ð¥¤¥È)
       tuple_count		-- ¥¿¥×¥ë¿ô
       tuple_len		-- ¥¿¥×¥ëĹ¤Î¹ç·×(¥Ð¥¤¥È)
       tuple_percent	-- ¥¿¥×¥ë¤Î³ä¹ç¡¥table_len¤ËÂФ¹¤ëtuple_len¤ÎÈæΨ¡¥
       dead_tuple_len	-- ¥Ç¥Ã¥É¥¿¥×¥ë¿ô
       dead_tuple_percent	-- ¥Ç¥Ã¥É¥¿¥×¥ë¤Î³ä¹ç¡¥table_len¤ËÂФ¹¤ëtuple_len¤ÎÈæΨ¡¥
       free_space		-- ºÆÍøÍѲÄǽ¤ÊÎΰè(¥Ð¥¤¥È)
       free_percent	-- ºÆÍøÍѲÄǽ¤ÊÎΰ补table_len¤ËÂФ¹¤ëfree_space¤ÎÈæΨ¡¥

   pg_relpages
   -----------
   pg_relpages() ¤Ï¥ê¥ì¡¼¥·¥ç¥ó¤Î¥Ú¡¼¥¸¿ô¤òÊֵѤ·¤Þ¤¹¡¥

   pgstatindex
   -----------
   pgstatindex() ¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë´Ø¤¹¤ë¾ðÊó¤òÊֵѤ·¤Þ¤¹¡§

       test=> \x
       Expanded display is on.
       test=> SELECT * FROM pgstatindex('pg_cast_oid_index');
       -[ RECORD 1 ]------+------
       version            | 2
       tree_level         | 0
       index_size         | 8192
       root_block_no      | 1
       internal_pages     | 0
       leaf_pages         | 1
       empty_pages        | 0
       deleted_pages      | 0
       avg_leaf_density   | 50.27
       leaf_fragmentation | 0

   bt_metap
   --------
   bt_metap() ¤Ïbtree¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î¥á¥¿¥Ú¡¼¥¸¤Ë´Ø¤¹¤ë¾ðÊó¤òÊֵѤ·¤Þ¤¹¡§

       test=> SELECT * FROM bt_metap('pg_cast_oid_index');
       -[ RECORD 1 ]-----
       magic     | 340322
       version   | 2
       root      | 1
       level     | 0
       fastroot  | 1
       fastlevel | 0

   bt_page_stats
   -------------
   bt_page_stats() ¤Ï¡¢btree¤Îñ°ì¤Î¥Ú¡¼¥¸¤Ë´Ø¤¹¤ë¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡§

       test=> SELECT * FROM bt_page_stats('pg_cast_oid_index', 1);
       -[ RECORD 1 ]-+-----
       blkno         | 1
       type          | l
       live_items    | 256
       dead_items    | 0
       avg_item_size | 12
       page_size     | 8192
       free_size     | 4056
       btpo_prev     | 0
       btpo_next     | 0
       btpo          | 0
       btpo_flags    | 3

   bt_page_items
   -------------
   bt_page_items() ¤Ï¡¢³Æbtree¥Ú¡¼¥¸¤Î¸ÄÊ̤Υ¢¥¤¥Æ¥à¤Ë´Ø¤¹¤ë¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡§

       test=> SELECT * FROM bt_page_items('pg_cast_oid_index', 1);
        itemoffset |  ctid   | itemlen | nulls | vars |    data
       ------------+---------+---------+-------+------+-------------
                 1 | (0,1)   |      12 | f     | f    | 23 27 00 00
                 2 | (0,2)   |      12 | f     | f    | 24 27 00 00
                 3 | (0,3)   |      12 | f     | f    | 25 27 00 00
                 4 | (0,4)   |      12 | f     | f    | 26 27 00 00
                 5 | (0,5)   |      12 | f     | f    | 27 27 00 00
                 6 | (0,6)   |      12 | f     | f    | 28 27 00 00
                 7 | (0,7)   |      12 | f     | f    | 29 27 00 00
                 8 | (0,8)   |      12 | f     | f    | 2a 27 00 00
 

2. pgstattuple¤Î¥¤¥ó¥¹¥È¡¼¥ë

   PostgreSQL¤¬/usr/local/pgsql¤Ë¥¤¥ó¥¹¥È¡¼¥ëºÑ¤Ç¤¢¤ê¡¤test¥Ç¡¼¥¿¥Ù¡¼
   ¥¹¤Ëpgstattuple¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Î¼ê½ç¤ò¼¨¤·¤Þ¤¹¡¥

    $ make
    $ make install

    ¥æ¡¼¥¶ÄêµÁ´Ø¿ô¤òÅÐÏ¿¤·¤Þ¤¹¡¥

    $ psql -e -f /usr/local/pgsql/share/contrib/pgstattuple.sql test


3. pgstattuple¤Î»È¤¤Êý

   pgstattuple¤Î¸Æ¤Ó½Ð¤··Á¼°¤Ï°Ê²¼¤Ç¤¹¡¥

   CREATE OR REPLACE FUNCTION pgstattuple(text) RETURNS pgstattuple_type
     AS 'MODULE_PATHNAME', 'pgstattuple'
     LANGUAGE C STRICT;

   Âè°ì°ú¿ô: ¥ê¥ì¡¼¥·¥ç¥ó̾

   ´Ø¿ô¤ÎÌá¤ê¤Ïpgstattuple_type·¿¤Ç¤¹¡¥

   pgstattuple¤Ï¥ê¥ì¡¼¥·¥ç¥ó¤ËAccessShareLock¤·¤«¤«¤±¤Ê¤¤¤Î¤Ç¡¤
   pgstattuple ¤ò¼Â¹ÔÃæ¤Ë³ºÅö¥ê¥ì¡¼¥·¥ç¥ó¤Ë¹¹¿·¤äºï½ü¤¬È¯À¸¤¹¤ë¤È¡¤Àµ¤·¤¯
   ¤Ê¤¤·ë²Ì¤òÊÖ¤¹²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡¥

   pgstattuple¤¬¥¿¥×¥ë¤ò¡Ö¥´¥ß¡×¤ÈȽÃǤ¹¤ë´ð½à¤Ï¡¤
   HeapTupleSatisfiesNow()¤¬µ¶¤òÊÖ¤·¤¿¤È¤­¤Ç¤¹¡¥

4. pgstattuple¤Î¥é¥¤¥»¥ó¥¹¾ò·ï¤Ë¤Ä¤¤¤Æ

   pgstattuple.c¤ÎËÁƬ¤Ë½ñ¤¤¤Æ¤¢¤ëÄ̤ê¤Ç¤¹¡¥¤Þ¤¿¡¤pgstattuple ¤Ï´°Á´¤Ë̵ÊÝ
   ¾Ú¤Ç¤¹¡¥pgstattuple ¤ò»ÈÍѤ·¤¿¤³¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤ë¤¤¤«¤Ê¤ë·ë²Ì¤Ë´Ø¤·¤Æ
   ¤âÀÕǤ¤òÉ餤¤Þ¤»¤ó¡¥

5. ²þÄûÍúÎò

   2006/06/28

	¥¤¥ó¥Ç¥Ã¥¯¥¹¤ËÂФ·¤Æ¤âÆ°ºî¤¹¤ë¤è¤¦¤Ë³ÈÄ¥¡£

   2002/09/04

	SRFÊѹ¹¤Ëȼ¤¤¡¤Tom Lane	¤¬½¤Àµ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î½¤Àµ¤ò¹Ô¤Ã¤¿¡¥
	¤½¤Î¤³¤È¤ò¤³¤ÎREADME¤Ë¤âÈ¿±Ç¡¥

   2002/08/23

	SRF(Set Returning Function)¤ò»È¤Ã¤Æ7.3ÍѤ˽ñ¤­´¹¤¨¡¥

   2001/12/20 Tom Lane¤Ë¤è¤ë½¤Àµ

   	Fix pgstattuple to acquire a read lock on the target table.  This
	prevents embarassments such as having the table dropped or truncated
	partway through the scan.  Also, fix free space calculation to include
	pages that currently contain no tuples.

   2001/10/01 PostgreSQL 7.2 ÍÑcontrib module¤ËÅÐÏ¿

   2001/08/30 pgstattuple ¥Ð¡¼¥¸¥ç¥ó 0.1¥ê¥ê¡¼¥¹