Ϳ����줿ʸ���Ф��ơ�PostgreSQL�ץ��ʤ���������¹Էײ��ɽ�����ޤ��� �¹Էײ�ϡ��䤤��碌ʸ�����Ȥ���ơ��֥��ʣ���ξ��⤢��ˤ������ˡ��ñ��ʥ��������������ǥå����������ʤɡˡ�ʣ���Υơ��֥�Ȥ�����ˡ��ƥơ��֥뤫����Ф����Ԥ��礹�뤿��˻��Ѥ����祢�르�ꥺ�����ΤǤ���
ɽ�����Ƥ���Ǥ⡢�Ǥ���פʤΤϡ�ʸ�μ¹Ԥˤ����륳���Ȥθ��Ѥ��Ǥ��� ����ϡ��ץ��ʤ�ʸ�μ¹Ԥˤ�������֡ʥǥ������ڡ�����Ф�ñ�̤Ƿ�¬�ˤ��¬������ΤǤ��� ����Ū�ˤϡ�2�Ĥο���ɽ������ޤ��� 1�ĤϺǽ�ιԤ��֤����ޤǤΥ������ȥ��å��֡��⤦1�Ĥ����ƤιԤ��֤����ޤǤι���֤Ǥ��� �ۤȤ�ɤ��䤤��碌�ˤȤä�����Ȥʤ�ΤϹ���֤����Ǥ�����EXISTS���䤤��碌�ʤɤΥ���ƥ����ȤǤϡ��ץ��ʤϹ���֤��Ǥ�û���ʤ�ץ����⡢�������ȥ��å��֤��Ǥ�û���ʤ�ץ������Ӥޤ��ʥ��������塼���ϹԤ�1�ļ������������ߤ��뤫��Ǥ��ˡ� ����ˡ�LIMIT���Ȥä��䤤��碌���֤��Կ������¤����硢�ץ��ʤϼºݤˤϤɤηײ褬�����㥳���Ȥˤʤ뤫�����뤿�ᡢ���Τ�����������Υ����Ȥδ֤�Ŭ�ڤ���֤�Ԥ��ޤ���
ANALYZE���ץ������դ���ȡ��ײ��������Ǥʤ����䤤��碌ʸ���ºݤ˼¹Ԥ���ޤ��� ���ξ��ϡ��Ʒײ�Ρ��ɤ��줿���в���֡ʥߥ���ñ�̡ˤȼºݤ��֤����Կ���ɽ������ޤ��� �ץ��ʤο�¬�ȼºݤ��ͤ��ɤ����ٶ�ʤ뤫���ǧ�Ǥ���Ȥ������ǡ����Υ��ץ�����ͭ�ѤǤ���
重要項目: ANALYZE����Ѥ������ϡ�ʸ���ºݤ˼¹Ԥ���뤳�Ȥ�˺��ʤ��Ǥ��������� EXPLAIN��SELECT���֤����Ϥ�ޤä���ɽ�����ޤ���ʸ��ȼ�������Ѥ��̾��̤�ȯ�����ޤ��� INSERT��UPDATE��DELETE��CREATE TABLE AS��EXECUTEʸ���Ф��ơ��ǡ����˱ƶ���Ϳ���ʤ��褦��EXPLAIN ANALYZE��¹Ԥ��������ϡ��ʲ�����ˡ����Ѥ��Ƥ���������
BEGIN; EXPLAIN ANALYZE ...; ROLLBACK;
���ޥ�ɤ�¹Ԥ����ºݤβ�Ư���֤�ɽ�����ޤ���
�ײ�ĥ��γƥΡ��ɤ��Ф��ƽ�����ꥹ�Ȥ�ޤ�ޤ���
�¹Էײ��ɽ���оݤȤʤ롢SELECT��INSERT��UPDATE��DELETE��VALUES��EXECUTE��DECLARE��CREATE TABLE AS�Τ����줫��ʸ�Ǥ���
PostgreSQL�Υ��ץƥ��ޥ����ˤ����륳���Ⱦ���λ��Ѥ˴ؤ���ʸ���¿������ޤ��� �ܤ�������ˤĤ��Ƥϡ�項14.1�Ȥ��Ƥ���������
PostgreSQL�䤤��碌�ץ��ʤ���ʬ�ʾ����Ȥä���礻���Ŭ���Ǥ���褦�ˤ���ˤϡ�ANALYZEʸ��¹Ԥ��ơ��ơ��֥���Υǡ���ʬ�ۤˤĤ��Ƥ��������Ͽ���Ƥ����ʤ���Ф����ޤ��� �����Ԥ�ʤ����ʤ��뤤�ϡ�����ANALYZE��¹Ԥ����塢�ơ��֥���Υǡ���������Ūʬ�ۤ��������Ѥ�ä����ˡ����ꥳ���Ȥ��䤤��碌�μºݤ������Ȥϰ��פ��ʤ����줬�⤯�����η�̡���Ŭ�ڤ��䤤��碌�ײ褬������ǽ��������ޤ���
����Ū�䤤��碌��Ŭ��(GEQO)���Ե�§Ū�˼¹Էײ�����ޤ��� �������äơ�����졼�����ο�������Ū�䤤��碌��Ŭ���λ��Ѥ��Ϥޤ�geqo_threshold��Ķ����ȡ��¹Էײ��ʸ���¹Ԥ����٤��Ѥ�뤳�Ȥˤʤ�ޤ���
�¹Էײ���γƥΡ��ɤμ¹Ի������Ȥ�¬�ꤹ�뤿��ˡ����ߤ�EXPLAIN ANALYZE�����ϡ��䤤��碌�¹Ԥ��Ф����ͤ����������Υ����С��إåɤ�ä��ޤ��� ���η�̡������䤤��碌�ˤĤ��Ƥ�EXPLAIN ANALYZE�¹Ԥ������̤��䤤��碌��¹Ԥ�����������˻��֤������뤳�Ȥ�����ޤ��� ���Υ����С��إåɤ��̤��䤤��碌�������˰�¸���ޤ���
integer���1�Ļ�����10000�Ԥ�¸�ߤ���ơ��֥���Ф��ơ�ñ����䤤��碌��Ԥä������䤤��碌�ײ��ɽ�����ޤ���
EXPLAIN SELECT * FROM foo; QUERY PLAN --------------------------------------------------------- Seq Scan on foo (cost=0.00..155.00 rows=10000 width=4) (1 row)
����ǥå�����¸�ߤ����䤤��碌��WHERE���ǥ���ǥå��������ѤǤ����硢EXPLAIN�ϰۤʤ�ײ��ɽ�������ǽ��������ޤ���
EXPLAIN SELECT * FROM foo WHERE i = 4; QUERY PLAN -------------------------------------------------------------- Index Scan using fi on foo (cost=0.00..5.98 rows=1 width=4) Index Cond: (i = 4) (2 rows)
���ˡ�����ؿ�����Ѥ����䤤��碌���Ф����䤤��碌�ײ������ޤ���
EXPLAIN SELECT sum(i) FROM foo WHERE i < 10; QUERY PLAN --------------------------------------------------------------------- Aggregate (cost=23.93..23.93 rows=1 width=4) -> Index Scan using fi on foo (cost=0.00..23.92 rows=6 width=4) Index Cond: (i < 10) (3 rows)
�ʲ��ϡ�EXPLAIN EXECUTE�ˤ�äƽ������줿ʸ���Ф���¹Էײ��ɽ��������Ǥ���
PREPARE query(int, int) AS SELECT sum(bar) FROM test WHERE id > $1 AND id < $2 GROUP BY foo; EXPLAIN ANALYZE EXECUTE query(100, 200); QUERY PLAN ------------------------------------------------------------------------------------------------------------------------- HashAggregate (cost=39.53..39.53 rows=1 width=8) (actual time=0.66..0.67 rows=7 loops=1) -> Index Scan using test_pkey on test (cost=0.00..32.97 rows=1311 width=8) (actual time=0.05..0.39 rows=99 loops=1) Index Cond: ((id > $1) AND (id < $2)) Total runtime: 0.85 msec (4 rows)
����������Ǽ���������Ū�ʿ��ͤ��оݤȤ���ơ��֥�μºݤ���Ȥˤ�ä��Ѥ��ޤ��� �ޤ������ο��ͤ����줿�䤤��碌��ά�ϡ��ץ��ʤβ��ɤΤ��ᡢPostgreSQL�Υ����֤ǰۤʤ��ǽ��������ޤ��Τ����դ��Ƥ��������� ����ˡ�ANALYZE���ޥ�ɤϡ��ǡ��������������ꤹ��ݤ˥�����ʥ���ץ��Ԥ����ᡢ�ºݤΥơ��֥����ʬ�ۤ��Ѥ�äƤ��ʤ��Ƥ⡢������ANALYZE��¹Ԥ���ȿ��ꥳ���Ȥ��Ѥ�뤳�Ȥ�����ޤ���