¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

�� 13����ǽ�˴ؤ���ҥ��

�ܼ�
13.1. EXPLAIN������
13.2. �ץ��ʤǻ��Ѥ�������׾���
13.3. ����Ū��JOIN��ǥץ��ʤ����椹��
13.4. �ǡ����١����ؤΥǡ�������
13.4.1. ��ư���ߥåȤ򥪥դˤ���
13.4.2. COPY���
13.4.3. ����ǥå�����������
13.4.4. �������������
13.4.5. maintenance_work_mem�����䤹
13.4.6. checkpoint_segments�����䤹
13.4.7. �Ǹ��ANALYZE��¹�
13.4.8. pg_dump�˴ؤ��뤤���Ĥ�������

�䤤��碌����ǽ��¿�����װ��˱ƶ�����ޤ��� �桼��������Ǥ����Τ⤢��ޤ������ظ�ˤ��륷���ƥ��߷פ˵������뺬��Ū���װ��⤢��ޤ��� �ܾϤǤ�PostgreSQL����ǽ�����򤷡����塼�˥󥰤��뤿��Υҥ�Ȥ��󶡤��ޤ���

13.1. EXPLAIN������

PostgreSQL��Ϳ����줿�䤤��碌�����䤤��碌�ײ�����Ф��ޤ��� �䤤��碌�ι�¤�ȴޤޤ��ǡ�����������Ŭ�����������䤤��碌�ײ�����򤹤뤳�Ȥ��ɤ���ǽ�����뤿������˽��פˤʤ�ޤ��� �Ǥ��Τǡ�ͥ�줿�ײ��������ߤ륷���ƥ�ˤ�ʣ�����ץ�����¸�ߤ��ޤ��� EXPLAIN���ޥ�ɤ�Ȥ��С�Ǥ�դ��䤤��碌���Ф��ƥץ��ʤ��ɤΤ褦���䤤��碌�ײ���ä��Τ��狼��ޤ��� �䤤��碌�ײ���ɤߤ��ʤ����ȤˤĤ��Ƥϡ����ӹ��ϰϤˤ錄����塼�ȥꥢ�����ʤ���Фʤ�ʤ��ۤɤ��Ӥ�ɬ�פǤ��� �ܽ�ǤϤ����ޤǥ��С����ޤ��󤬡�����Ū�ʾ���򤤤��Ĥ��󶡤��ޤ���

�䤤��碌�ײ�ϡ��ײ�Ρ����Υĥ꡼��¤�Ǥ��� �Dz��إΡ��ɤϥơ��֥륹�����Ρ��ɤǡ��ơ��֥뤫��Ԥ��Τ�Τ��֤��ޤ��� �������󥷥�륹����󡢥���ǥå���������󡢥ӥåȥޥåץ���ǥå����������Ȥ��ä��ơ��֥륢��������ˡ�ΰ㤤�˱������������Ρ��ɤμ���˰㤤������ޤ��� �䤤��碌����硢���󡢥����ȡ�����¾�Ԥ��Τ�Τ��Ф�������ɬ�פȤ��Ƥ����硢�������Ρ��ɤξ�̤˹��ˡ�����������Ԥ�����ΥΡ��ɤ��ɲä���ޤ��� �����֤��ޤ�����������������Ԥ������̾�ʣ���β�ǽ����¸�ߤ��ޤ��� �Ǥ��Τǡ��ۤʤ�Ρ��ɼ��ब�����˽и������ǽ��������ޤ��� EXPLAIN�ˤϡ��ײ�ĥ꡼��γƥΡ��ɤ��Ф�1�Ԥν��Ϥ����ꡢ���ܥΡ��ɼ���ȥץ��ʤ������������ηײ�Ρ��ɤμ¹Ԥ��פ��륳���ȿ����ͤ򼨤��ޤ��� 1���ܡʤ�äȤ��̥Ρ��ɡˤˤϡ��ײ����Τμ¹ԥ����ȿ����ͤ��ޤޤ�ޤ��� �ץ��ʤϤ����ͤ��Ǿ��ˤʤ�褦��ư��ޤ���

�ɤΤ褦�ʽ��ϤȤʤ�Τ��򼨤���������ˡ������Ǵ�ñ����򼨤��ޤ��� [1]

EXPLAIN SELECT * FROM tenk1;

                         QUERY PLAN
-------------------------------------------------------------
 Seq Scan on tenk1  (cost=0.00..458.00 rows=10000 width=244)

EXPLAIN�����Ϥ�����ͤˤϰʲ��Τ�Τ�����ޤ���

�����Ȥϡ����Ф��ǥ������ڡ���ñ�̤�¬�ꤵ��ޤ��� �Ĥޤꡢ1.0�ϰ��Υ������󥷥��ʥǥ������ڡ����ɤ߼����������ޤ� ��CPU����ô�˴ؤ��Ƥ�Ʊ�ͤˡ�Ŭ�������Ū�˷�᤿���˽��äƥǥ������ڡ���ñ�̤Ǵ�������ޤ��� �����δ���ͤθ��̤��Τꤿ�����ϡ���17.6.2�μ¹Ի�����ѥ�᡼���ΰ����򻲾Ȥ��Ƥ��������ˡ�

��̥Ρ��ɤΥ����Ȥˤϡ����ƤλҥΡ��ɤΥ����Ȥ⤽����˴ޤޤ�Ƥ��뤳�Ȥ˽�ʬα�դ��Ƥ��������� ���Υ����Ȥϥץ��ʤ���Ϳ���륳���ȤΤ�ȿ�Ǥ�������ޤ����פǤ��� �Ȥ�櫓����̤ιԤ򥯥饤����Ȥ�ž�����륳���Ȥϡ��ºݤν������֤ν��פ��װ��Ȥʤ��ǽ��������ˤ⤫����餺����θ����ޤ��� �ץ��ʤϡ��ײ�򤤤����ѹ����褦�ȡ��ɤ����뤳�Ȥ�Ǥ��ʤ����ᡢ�����̵�뤷�ޤ� ���������ײ�Ϥɤ�ʤ�ΤǤ��졢����Ʊ���Ԥ��̤Ȥ��ƽ��Ϥ���ȿ����Ƥ��ޤ��ˡ�

���ϹԿ��Ϸײ�Ρ��ɤˤ�äƽ������뤤�ϥ�����󤵤줿�Կ���ɽ�������ʤ��Τ���¿�������ˤ����ʤäƤ��ޤ��� �����Ρ��ɤ�Ŭ�Ѥ�������Ƥ�WHERE�����󤫤���������������ͤ�ȿ�Ǥ����̾ᆵ�ʤ��Կ��ˤʤ�ޤ��� ����Ū�ˤϡ��Ǿ�̤ιԿ��ο����ͤϡ��ºݤ��䤤��碌�ˤ�ä��֤��졢�������졢���뤤�Ϻ�����줿�����ιԿ��Ȥʤ�ޤ���

������ޤ���

EXPLAIN SELECT * FROM tenk1;

                         QUERY PLAN
-------------------------------------------------------------
 Seq Scan on tenk1  (cost=0.00..458.00 rows=10000 width=244)

����ϤۤȤ�ɸ����ޤޤǤ����⤷��

SELECT relpages, reltuples FROM pg_class WHERE relname = 'tenk1';

��¹Ԥ���ȡ�tenk1�ˤ�358�Υǥ������ڡ�����10000�ιԤ����뤳�Ȥ��狼��ޤ��� �Ǥ����顢ñ��������1.0�ȥ����Ȥ���ޤäƤ���358�ڡ������ɤ߽Ф��ˡ��̾�0.01�����ꤵ��Ƥ���cpu_tuple_cost��10000�ܤ�����Τ�ä�����Τ��������Ȥο����ͤˤʤ�櫓�Ǥ���SHOW cpu_tuple_cost���ƤߤƤ��������ˡ�

�Ǥϡ�WHERE����ä����䤤��碌���ѹ����Ƥߤޤ���

EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 7000;

                         QUERY PLAN
------------------------------------------------------------
 Seq Scan on tenk1  (cost=0.00..483.00 rows=7033 width=244)
   Filter: (unique1 < 7000)

EXPLAIN�ν��Ϥ�Ŭ�Ѥ����WHERE�礬"�ե��륿"���Ȥ���ɽ�����Ƥ��뤳�Ȥ����դ��Ƥ��������� ����ϡ����ηײ�Ρ��ɤ�������󤷤��ƹԤ��Ф��Ƥ��ξ��򸡺����뤳�Ȥ��̣�������ξ����̲ᤷ����ΤΤߤ����Ϥ���ޤ��� WHERE�礬���뤿�ᡢ���ϹԿ��θ��Ѥ꤬�������ʤäƤ��ޤ��� �������������Ȥ���10000�����Ƥ򥹥���󤹤�ɬ�פ����뤿�ᡢ�����ȤϾ������ʤäƤ��ޤ��� �ºݤˤϡ�WHERE���򸡺����뤿���CPU���֤�;�פˤ����뤳�Ȥ�ȿ�Ǥ��ơ��ۤ�ξ����Ǥ��������Ȥ��徺���Ƥ��ޤ���

�����䤤��碌�����򤹤�ºݤιԿ���7000�Ǥ��� ���������Կ���ϳ����ͤ˲᤮�ޤ��� ���μ¸���2��¹Ԥ�����硢�����餯¿���ۤʤ�����ͤ�����Ǥ��礦�� ��äȸ����ȡ������ANALYZE���ޥ�ɤ�Ԥ��٤��Ѳ����ޤ��� �ʤ��ʤ顢ANALYZE��������������׾���ϡ��ơ��֥�Υ������ɸ�ܤ�����Ф���뤫��Ǥ���

�Ǥϡ������궯�����¤��Ƥߤޤ���

EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 100;

                                  QUERY PLAN
------------------------------------------------------------------------------
 Bitmap Heap Scan on tenk1  (cost=2.37..232.35 rows=106 width=244)
   Recheck Cond: (unique1 < 100)
   ->  Bitmap Index Scan on tenk1_unique1  (cost=0.00..2.37 rows=106 width=0)
         Index Cond: (unique1 < 100)

�����Ǥϡ��ץ��ʤ�2�ʳ��ηײ����Ѥ��뤳�Ȥ���ꤷ�ޤ����� �Dz��ؤηײ�Ρ��ɤϡ�����ǥå�������Ѥ��ơ�����ǥå������˹礦�Ԥξ��򸡺����ޤ��� �����ơ���̷ײ�Ρ��ɤ��ºݤ˥ơ��֥뼫�Τ��餳���ιԤ���Ф��ޤ��� �Ԥ��̡��˼��Ф����Ȥϡ��������󥷥����ɤ߼���������˹���Ǥ��� ���������ơ��֥�Τ��٤ƤΥڡ������ɤ߼��ɬ�פϤ���ޤ���Τǡ��������󥷥�륹�����������ˤʤ�ޤ� ��2�ʳ��ηײ����Ѥ�����ͳ�ϡ��̡��˹Ԥ���Ф������Ȥ�Ǿ��ˤ��뤿��ˡ���̤ηײ�Ρ��ɤ�����ǥå����ˤ�꼱�̤��줿�Ԥΰ��֤��ɤ߼������ʪ��Ū�ʽ���ǥ����Ȥ��뤳�ȤǤ��� �Ρ��ɤǵ��ܤ���Ƥ���"bitmap"�ϡ������Ȥ�Ԥ�������̾���Ǥ��ˡ�

WHERE��������������ʬ�Ǥ���С��ץ��ʤ�"ñ���"����ǥå����������ײ���ڤ��ؤ��ޤ���

EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 3;

                                  QUERY PLAN
------------------------------------------------------------------------------
 Index Scan using tenk1_unique1 on tenk1  (cost=0.00..10.00 rows=2 width=244)
   Index Cond: (unique1 < 3)

���ξ�硢�ơ��֥�Ԥϥ���ǥå����ν��֤Ǽ��Ф���ޤ��� ����Ϲ�����ɤ߼��ʤΤǤ������Կ������ʤ����ᡢ�԰��֤򥽡��Ȥ���;�פʥ����Ȥ򤫤���ɬ�פϤ���ޤ��� ñ��ԤΤߤ���Ф��䤤��碌�䡢����ǥå�����˰��פ���ORDER BY�����׵᤹���䤤��碌�Ǥϡ����μ�ηײ�����褯�������ޤ���

WHERE���˶��⤦1���ɲä��ޤ���

EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 3 AND stringu1 = 'xxx';

                                  QUERY PLAN
------------------------------------------------------------------------------
 Index Scan using tenk1_unique1 on tenk1  (cost=0.00..10.01 rows=1 width=244)
   Index Cond: (unique1 < 3)
   Filter: (stringu1 = 'xxx'::name)

�ɲä�����stringu1 = 'xxx'�ˤ����ϹԿ��ο����ͤϸ��������ΤΡ���������Ԥν�����Ѥ��ʤ�����˥����Ȥϸ��äƤ��ޤ��� ����stringu1��ϡ�����ǥå������Ȥ��Ƥ�Ŭ�ѤǤ��ʤ����Ȥ����դ��Ƥ��������ʤ��Υ���ǥå����ϡ�unique1��Τߤ��оݤȤ��Ƥ��뤫��Ǥ��ˡ� �������ꡢstringu1��ϡ�����ǥå����ˤ�ä���Ф��줿�ԤΥե��륿�Ȥ���Ŭ�Ѥ���Ƥ��ޤ��� ����ˤ�ꡢ�ɲ�ʬ�Υ����å���ȿ�Ǥ��뤿�ᡢ�����ȤϼºݤˤϾ����夬��ޤ���

WHERE��ǻ��Ѥ����ʣ��������Ф��륤��ǥå�����¸�ߤ����硢�ץ��ʤϥ���ǥå�����AND��OR���Ȥ߹�碌�ƻ��Ѥ��뤳�Ȥ����򤹤��ǽ��������ޤ���

EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 100 AND unique2 > 9000;

                                     QUERY PLAN
-------------------------------------------------------------------------------------
 Bitmap Heap Scan on tenk1  (cost=11.27..49.11 rows=11 width=244)
   Recheck Cond: ((unique1 < 100) AND (unique2 > 9000))
   ->  BitmapAnd  (cost=11.27..11.27 rows=11 width=0)
         ->  Bitmap Index Scan on tenk1_unique1  (cost=0.00..2.37 rows=106 width=0)
               Index Cond: (unique1 < 100)
         ->  Bitmap Index Scan on tenk1_unique2  (cost=0.00..8.65 rows=1042 width=0)
               Index Cond: (unique2 > 9000)

�������������ξ���Υ���ǥå����򻲾Ȥ���ɬ�פ�����ޤ��� ���Τ��ᡢ����ǥå�����1�Ļ��Ѥ���¾�ξ��ˤĤ��Ƥϥե��륿�Ȥ��ư�����ˡ����٤ƾ�˾���Ȥϸ¤�ޤ��� �ޤޤ���ϰϤ��ѹ�����ȡ������ȼ���ײ���Ѥ�뤳�Ȥ�ʬ����Ǥ��礦��

���ޤ������˻ȤäƤ����ե�����ɤ�Ȥä�2�ĤΥơ��֥���礷�Ƥߤޤ��礦��

EXPLAIN SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2;

                                      QUERY PLAN
--------------------------------------------------------------------------------------
 Nested Loop  (cost=2.37..553.11 rows=106 width=488)
   ->  Bitmap Heap Scan on tenk1 t1  (cost=2.37..232.35 rows=106 width=244)
         Recheck Cond: (unique1 < 100)
         ->  Bitmap Index Scan on tenk1_unique1  (cost=0.00..2.37 rows=106 width=0)
               Index Cond: (unique1 < 100)
   ->  Index Scan using tenk2_unique2 on tenk2 t2  (cost=0.00..3.01 rows=1 width=244)
         Index Cond: ("outer".unique2 = t2.unique2)

��������Ҿ��롼�׷��Ǥϡ������������ˡ��Ǹ����Ǽ������Τ�Ʊ���ӥåȥޥåץ���ǥå���������󤬻Ȥ��Ƥ��ޤ��� �����ơ�unique1 < 100 WHERE������Ρ��ɤ�Ŭ�Ѥ��Ƥ��뤿�ᡢ�����ȤȽ��ϹԿ����Ѥ�äƤ��ޤ��� �����ʳ��Ǥ�t1.unique2 = t2.unique2��ϴط����Ƥ��餺�������������ˤ�������ϹԿ��˱ƶ����Ƥ��ޤ��� �����������Ǥϡ������������ˤ����븽�ߤιԤ�unique2���ͤ������Υ���ǥå������������ꤲ���ޤ졢t2.unique2 = constant�Τ褦�ʥ���ǥå��������������ޤ��� �������äơ������������ηײ�ȥ����Ȥϡ��㤨��EXPLAIN SELECT * FROM tenk2 WHERE unique2 = 42�Τ褦���䤤��碌��Ʊ���Ǥ��� �롼�ץΡ��ɤΥ����Ȥϡ������������Υ����Ȥȡ��ơ��γ����ιԤ��Ф�������������󤬷����֤���뤳�Ȥˤ�륳���ȡʤ����Ǥ�106 * 3.01�ˤ�ä�������˷�������Ԥ�����ξ�����CPU���֤�ä�����Τˤʤ�ޤ���

������Ǥϡ����ν��ϹԿ���2�ĤΥ������ν��ϹԿ����Ѥ��������ʤäƤ��ޤ��������Ĥ⤽���ʤ�櫓�ǤϤ���ޤ��� �����Ƥ��ξ�硢2�ĤΥơ��֥�˴ط�����WHERE�礬���äơ�����WHERE������ϥ��������ǤϤʤ�������Ԥ��ݤ�Ŭ�Ѥ���뤫��Ǥ��� �㤨�С�WHERE ... AND t1.hundred < t2.hundred�Ȥ�������ɲä����Ȥ���ȡ����Ρ��ɤν��ϹԿ��򸺤餷�Ϥ��ޤ��������ϥ������ˤϱƶ����ޤ���

��17.6.1�˵��ܤ���enable/disable�ե饰����Ѥ��ơ��ץ��ʤ��Ǥ��ɤ��ȹͤ��Ƥ�����ά����Ū��̵�뤵������ˡ�ˤ�ꡢ�ۤʤä��ײ��ѻ����뤳�Ȥ��Ǥ��ޤ� �����˸���Ū�ʥġ���Ǥ��������Ѳ��ͤ�����ޤ��� ��13.3�⻲�Ȥ��Ƥ��������ˡ�

SET enable_nestloop = off;
EXPLAIN SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2;

                                        QUERY PLAN
------------------------------------------------------------------------------------------
 Hash Join  (cost=232.61..741.67 rows=106 width=488)
   Hash Cond: ("outer".unique2 = "inner".unique2)
   ->  Seq Scan on tenk2 t2  (cost=0.00..458.00 rows=10000 width=244)
   ->  Hash  (cost=232.35..232.35 rows=106 width=244)
         ->  Bitmap Heap Scan on tenk1 t1  (cost=2.37..232.35 rows=106 width=244)
               Recheck Cond: (unique1 < 100)
               ->  Bitmap Index Scan on tenk1_unique1  (cost=0.00..2.37 rows=106 width=0)
                     Index Cond: (unique1 < 100)

���ηײ�Ǥϡ�����ǥå�����������Ȥä�tenk1����ɬ�פ�100�Ԥ���Ф��ƥ����Υϥå���ơ��֥�˳�Ǽ�������θ塢tenk2�򥷡����󥷥�륹����󤷤ơ�tenk2�ιԤ��Ȥ�t1.unique2 = t2.unique2�����������ɤ����ϥå���ơ��֥�򸡺����ޤ��� tenk1���ɤ߼�ꡢ�ϥå���ơ��֥�����ꤹ�뤿��Υ����Ȥϡ�tenk2���ɤ߼���Ϥ��ޤǹԤ����ꤷ�ޤ���Τǡ������˥ϥå�����ν�������ȤȤʤ�ޤ��� �ޤ������η��ο��������֤ˤϡ��ϥå���ơ��֥��10000�󸡺����롢�礭��CPU���֤��ޤޤ�Ƥ��ޤ��� �����������ηײ跿�Ǥϥϥå���ơ��֥������ϰ��٤ΤߤΤ��ᡢ10000��232.35ʬ�Υ����Ȥ�������ʤ����Ȥ����դ��Ƥ���������

EXPLAIN ANALYZE����Ѥ��ơ��ץ��ʤ����ꤹ�륳���Ȥ����٤��������뤳�Ȥ��Ǥ��ޤ��� ���Υ��ޥ�ɤϼºݤˤ����䤤��碌��¹Ԥ����ײ�Ρ��ɤ��Ȥ��פ����ºݤμ¹Ի��֤����̤�EXPLAIN���������ꥳ���Ȥ�Ʊ���ͤȰ���ɽ�����ޤ��� �㤨�С��ʲ��Τ褦�ʷ�̤����뤳�Ȥ��Ǥ��ޤ���

EXPLAIN ANALYZE SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2;

                                                            QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------
 Nested Loop  (cost=2.37..553.11 rows=106 width=488) (actual time=1.392..12.700 rows=100 loops=1)
   ->  Bitmap Heap Scan on tenk1 t1  (cost=2.37..232.35 rows=106 width=244) (actual time=0.878..2.367 rows=100 loops=1)
         Recheck Cond: (unique1 < 100)
         ->  Bitmap Index Scan on tenk1_unique1  (cost=0.00..2.37 rows=106 width=0) (actual time=0.546..0.546 rows=100 loops=1)
               Index Cond: (unique1 < 100)
   ->  Index Scan using tenk2_unique2 on tenk2 t2  (cost=0.00..3.01 rows=1 width=244) (actual time=0.067..0.078 rows=1 loops=100)
         Index Cond: ("outer".unique2 = t2.unique2)
 Total runtime: 14.452 ms

"actual time"�ͤϼ»��֤�ߥ���ñ�̤�ɽ����Ƥ��뤳�ȡ�"cost"�����ͤϥǥ������ɤ߼��˴ؤ��벿�餫��ñ�̤�ɽ����Ƥ��뤳�Ȥ����դ��Ƥ��������� �Ǥ����餽�Τޤ���Ӥ��뤳�ȤϤǤ��ޤ��� ���ܤ������Ϥ��γ��Ǥ���

�䤤��碌�ײ����ˤϡ���������ײ�Ρ��ɤ�¹ԤǤ����Τ�����ޤ��� �㤨�С���Ҥ�����Ҿ��롼�פηײ�Ǥϡ���������ǥå����������ϳ����ιԤ��Ȥ˰��ٹԤ��ޤ��� ���Τ褦�ʾ�硢"loops"�ͤϤ��ΥΡ��ɤ�¹Ԥ������������𤷡�ɽ�������ºݤλ��֤ȹԿ���1�¹��������ʿ�ѤǤ��� �����ɽ�����줿���ꥳ���Ȥ���ӤǤ����ͤ�������뤳�ȤǹԤ��ޤ��� "loops"�ͤ򤫤��뤳�Ȥǡ����ΥΡ��ɤǼºݤ���䤵�줿�����֤����뤳�Ȥ��Ǥ��ޤ���

EXPLAIN ANALYZE��ɽ�������Total runtime�����¹Ի��֡ˤˤϡ���̹Ԥ����뤿��λ��֤�¾�ˡ����������塼���ε�ư����߻��֤�ޤޤ�ޤ��� ���Ϥ�񤭴������ײ�����λ��֤ϴޤޤ�ޤ��� SELECT�䤤��碌�Ǥϡ����¹Ի��֤ϺǾ�̷ײ�Ρ��ɤ���𤵤�������֤����̾ᆵ���礭���ʤ�ޤ��� INSERT��UPDATE�������DELETE���ޥ�ɤǤϡ��������¹Ի��֤Ϥ��ʤ��礭���ʤ�ޤ��� �����ˤϡ���̹Ԥ����������֤��ޤޤ�뤫��Ǥ��� �����Υ��ޥ�ɤǤϡ��Ǿ�̷ײ�Ρ��ɤλ��֤ϡ�����Ū�˿������Ԥ�黻�����Ť��Ԥξ�����ꤹ�뤿��λ��֤򼨤��������ˤ��ѹ���Ԥ����֤ϴޤޤ�ޤ��� �ȥꥬ��ȯ�Ԥ�����硢�ȥꥬ��ȯ�Ԥˤ�������֤�Ǿ�̷ײ�Ρ��ɤˤϴޤޤ줺���ȥꥬ����̡���ɽ������ޤ���

EXPLAIN�η�̤���Ԥä���ΰʳ��ο���˻ȤäƤϤ����ʤ����Ȥϸ����ޤǤ⤢��ޤ��� �㤨�С������ʥơ��֥�η�̤ϡ�����ʥơ��֥��Ŭ�ѤǤ���Ȥϲ���Ǥ��ޤ��� �ץ��ʤο��ꥳ���Ȥ������ǤϤʤ������Τ��ᡢ�ơ��֥���羮�ˤ�äưۤʤ�ײ�����򤷤ޤ��� ��ü����Ǥ������ơ��֥뤬1�ǥ������ڡ����������ʤ���硢����ǥå��������ѤǤ��롢�Ǥ��ʤ��˴ط��ʤ����ۤȤ�ɾ�˥������󥷥�륹�����ײ�����뤳�Ȥˤʤ�ޤ��� �ץ��ʤϡ��ɤΤ褦�ʾ��Ǥ�ơ��֥��������뤿���1�ǥ������ڡ����ɤ߼���Ԥ��Τǡ�����ǥå����򻲾Ȥ��뤿����ɲ�Ū�ڡ����ɤ߼���Ԥ����ͤ��ʤ����Ȥ��ΤäƤ��ޤ���

����

[1]

�������ϡ�8.1��ȯ�ǥ������Υꥰ��å�����ǡ����١������顢VACUUM ANALYZE��¹Ԥ�����Ǽ��Ф�����ΤǤ��� �ºݤˤ�������ȡ������褦�ʷ�̤ˤʤ�Ϥ��Ǥ����������餯���ꥳ���Ȥ�Կ���¿���ۤʤ뤳�Ȥˤʤ�Ǥ��礦�� ANALYZE�ˤ�����׾���ϸ�̩�ʤ�ΤǤϤʤ�������ʥ���ץ�󥰤�Ԥä���̤Ǥ��뤫��Ǥ���