auto_explain�⥸�塼��ϡ���ư��EXPLAIN�μ¹Ԥ�ɬ�פȤ�������ưŪ���٤�ʸ�μ¹Էײ�������Ͽ������ʤ����ޤ����礭�ʥ��ץꥱ�������ˤ������Ŭ������Ƥ��ʤ��䤤��碌�����פ���Τ��ä�ͭ�ѤǤ���
���Υ⥸�塼���SQL�ǥ��������Ǥ���ؿ������ޤ����Ѥ���ˤϡ������Ф�ñ���ɤ߹��ޤ��ޤ���������̤Υ��å������ɤ߹��ޤ��뤳�Ȥ��Ǥ��ޤ���
LOAD 'auto_explain';
�ʼ¹Ԥ��뤿��ˤϥ����ѡ��桼���Ǥʤ���Фʤ�ޤ��ˤ�����Ū�ʻ�����ˡ�ϡ�postgresql.conf��shared_preload_libraries��auto_explain��ޤ�ơ����٤ƤΥ��å����ǻ����˥����ɤ��Ƥ������ȤǤ�������ȡ����곰����®���䤤��碌��ȯ�����˲���Ԥ����Ȥʤ����פ��뤳�Ȥ��Ǥ��ޤ��������ʤ��餳�Τ���Υ����С��إåɤȤ������������ޤ���
auto_explain��ư������椹�뤤���Ĥ��ι����ѥ�����¸�ߤ��ޤ����ǥե���Ȥ�ư��ϲ��⤷�ʤ����ȤʤΤǡ��ʤ�餫�η�̤�˾��ΤǤ���о��ʤ��Ȥ�auto_explain.log_min_duration�����ꤷ�ʤ���Фʤ�ʤ����Ȥ����դ��Ƥ���������
auto_explain.log_min_duration�ϡ�ʸ�μ¹Էײ褬�����˵�Ͽ�����褦�ˤʤ롢�ߥ���ñ�̤κǾ���ʸ�¹Ի��֤Ǥ���������ˤ���С����٤Ƥηײ褬��Ͽ����ޤ����ޥ��ʥ�1�ʥǥե���ȡˤϷײ�ε�Ͽ��̵���ˤ��ޤ����㤨�С�250ms�����ꤹ��ȡ�250ms�ʾ�¹Ԥ���ʸ���٤Ƥ���Ͽ����ޤ��������ѡ��桼���Τߤ�����������ѹ����뤳�Ȥ��Ǥ��ޤ���
auto_explain.log_analyze�ϡ��¹Էײ�Υ������������줿�Ȥ��˽��Ϥ�����ΤȤ��ơ�ñ��EXPLAIN���ϤǤϤʤ���EXPLAIN ANALYZE���Ϥ�Ԥ��ޤ������Υѥ����ϥǥե���Ȥ�̵���Ǥ��������ѥ桼���Τߡ�����������ѹ��Ǥ��ޤ���
注意: ���Υѥ�����ͭ���ξ�硢�ײ�Ρ��ɤ��Ȥλ���ŪĴ���ϻ��¾���������ޤ�ǡ���˻��֤��ݤ������ȡ����Ƥμ¹�ʸ���Ф��ư���������ޤ�����ü����ǽ��Υޥ��ʥ��αƶ������������ޤ���
auto_explain.log_verbose�ϡ��¹Էײ�Υ������������줿�Ȥ��˽��Ϥ�����ΤȤ��ơ�ñ��EXPLAIN���ϤǤϤʤ���EXPLAIN VERBOSE���Ϥ�Ԥ��ޤ������Υѥ����ϥǥե���Ȥ�̵���Ǥ��������ѥ桼���Τߡ�����������ѹ��Ǥ��ޤ���
auto_explain.log_nested_statements�ˤ�ꡢ����Ҿ���ʸ�ʴؿ��⤫��¹Ԥ����ʸ�ˤ��θ���Ƶ�Ͽ����褦�ˤʤ�ޤ���̵���ʤ�С��Ǿ�̤��䤤��碌�ײ�Τߤ���Ͽ����ޤ������Υѥ����ϥǥե���Ȥ�̵���Ǥ��������ѡ��桼���Τߤ�����������ѹ����뤳�Ȥ��Ǥ��ޤ���
�����ѥ�����postgresql.conf�ե���������ꤹ�뤿��ˤϡ�custom_variable_classes��auto_explain���ɲä���ɬ�פ�����ޤ���ŵ��Ū�ʻ���ˡ�ϰʲ��Τ褦�ˤʤ�ޤ���
# postgresql.conf shared_preload_libraries = 'auto_explain' custom_variable_classes = 'auto_explain' auto_explain.log_min_duration = '3s'
postgres=# LOAD 'auto_explain'; postgres=# SET auto_explain.log_min_duration = 0; postgres=# SELECT count(*) FROM pg_class, pg_index WHERE oid = indrelid AND indisunique;
����ˤ�ꡢ�ʲ��Τ褦�ʥ������Ϥ���������ޤ���
LOG: duration: 0.986 ms plan: Aggregate (cost=14.90..14.91 rows=1 width=0) -> Hash Join (cost=3.91..14.70 rows=81 width=0) Hash Cond: (pg_class.oid = pg_index.indrelid) -> Seq Scan on pg_class (cost=0.00..8.27 rows=227 width=4) -> Hash (cost=2.90..2.90 rows=81 width=4) -> Seq Scan on pg_index (cost=0.00..2.90 rows=81 width=4) Filter: indisunique STATEMENT: SELECT count(*) FROM pg_class, pg_index WHERE oid = indrelid AND indisunique;
�ij� ��͵ <itagaki.takahiro.at.oss.ntt.co.jp>