Windows Vista �ł� XP �܂ł̂悤�� �t�@�C�����R�}���h�v�����v�g�Ƀh���b�O���h���b�v���� �t�@�C���̃p�X��\�邱�Ƃ��ł��܂���B
���@���������ƌ������Ă݂�Ǝ��̂悤�ȋL��������܂����B
�y�Q�l�T�C�g�z
�������ς����Windows Vista 100�A���I �\ ��49�� �g�p�X�Ƃ��ăR�s�[�h�ŃR�}���h�v�����v�g�Ƀp�X����n��
����ɂ��� Vista �ł� [Shift] �L�[�������Ȃ���E�N���b�N����� ���̂悤�Ɂu�p�X�Ƃ��ăR�s�[�v���郁�j���[���o�Ă���̂� ����Ńt�@�C���̃p�X���R�s�[���Ă��� �R�}���h�v�����v�g�ɓ\��t���邻���ł��B
�h���b�O���h���b�v���֗��������̂Ŏc�O�ł��B
�O�� VACUUM �̊m�F�ɂ��ď����܂����� ����� ANALYZE �̊m�F�ɂ��ď��������Ǝv���܂��B
�܂��̓e�[�u�� analyze_test ���쐬���܂��B
db=# CREATE TABLE analyze_test (f1 VARCHAR(10), f2 INTEGER);
CREATE TABLE
ANALYZE ������ pg_stat_all_tables ����擾�ł��܂��B
db=# SELECT * FROM pg_stat_all_tables db-# WHERE relname = 'analyze_test'; -[ RECORD 1 ]----+------------------------------ relid | 16469 schemaname | public relname | analyze_test seq_scan | 2 seq_tup_read | 9 idx_scan | idx_tup_fetch | n_tup_ins | 5 n_tup_upd | 1 n_tup_del | 1 n_tup_hot_upd | 1 n_live_tup | 4 n_dead_tup | 0 last_vacuum | last_autovacuum | last_analyze | last_autoanalyze |
ANALYZE ����O�͂��̂悤�ȏ�Ԃł��B
�܂��Apg_stat_all_tables �̑��� �Ƃ̓��v��� pg_stats �r���[����擾�ł��܂��B
db=# SELECT * FROM pg_stats WHERE tablename = 'analyze_test';
(No rows)
ANALYZE ����O�� ���R�[�h���擾�ł��܂���B
����ł� ANALYZE �����s���܂��B
db=# ANALYZE analyze_test;
ANALYZE
��Ԃ��m�F���܂��B
db=# SELECT * FROM pg_stat_all_tables db-# WHERE relname = 'analyze_test'; -[ RECORD 1 ]----+------------------------------ relid | 16469 schemaname | public relname | analyze_test seq_scan | 2 seq_tup_read | 9 idx_scan | idx_tup_fetch | n_tup_ins | 5 n_tup_upd | 1 n_tup_del | 1 n_tup_hot_upd | 1 n_live_tup | 4 n_dead_tup | 0 last_vacuum | last_autovacuum | last_analyze | 2010-04-24 15:49:12.383112+09 last_autoanalyze |
last_analyze �� ANALYZE �����������i�[����܂����B
�Ƃ̓��v�����m�F���܂��B
db=# SELECT * from pg_stats WHERE tablename = 'analyze_test'; -[ RECORD 1 ]-----+-------------------------- schemaname | public tablename | analyze_test attname | f1 null_frac | 0 avg_width | 6 n_distinct | -1 most_common_vals | most_common_freqs | histogram_bounds | {00001,00003,00004,00005} correlation | -0.2 -[ RECORD 2 ]-----+-------------------------- schemaname | public tablename | analyze_test attname | f2 null_frac | 0 avg_width | 4 n_distinct | -1 most_common_vals | most_common_freqs | histogram_bounds | {15,30,40,50} correlation | -0.2
ANALYZE �����e�[�u���̗�̃��R�[�h���lj�����Ă��܂��B
histogram_bounds �ɗ�̒l�̃T���v���������Ă��܂��B
�i�s�����Ȃ��̂őS�Ă̒l�������Ă��܂��j
PostgreSQL �� �f�[�^���X�V�����Ƃ��� �폜�����Ƃ��� ���R�[�h�Ɂu�s�v�v�}�[�N��t����Ƃ����������s�Ȃ��܂��B
�u�s�v�v�}�[�N�̕t�������R�[�h�i�ȉ��A�s�v�ȃ��R�[�h�j�� ���̂܂܂ł͍ė��p�ł��Ȃ��̂Ńf�[�^��}�����Ȃ��Ă� �X�V���J��Ԃ������� �e�[�u���̎g�p����X�y�[�X�͍L�����Ă����܂��B
VACUUM �́A�s�v�ɂȂ������R�[�h�̃X�y�[�X�� �ė��p�\�ɂ��܂��B ����́A���̓������m�F���Ă݂����Ǝv���܂��B
�܂��͐V�����e�[�u�� vacuum_test ���쐬���܂��B
db=# CREATE TABLE vacuum_test (f1 VARCHAR(10), f2 INTEGER);
CREATE TABLE
���� pg_stat_all_tables �J�^���O����擾���܂��B
db=# SELECT n_live_tup,n_dead_tup,last_vacuum,last_autovacuum db-# FROM pg_stat_all_tables db-# WHERE relname = 'vacuum_test'; -[ RECORD 1 ]----+------------ n_live_tup | 0 n_dead_tup | 0 last_vacuum | last_autovacuum |
�e�[�u�����쐬�������_�ł͏�̂悤�ɂȂ��Ă��܂��B
VACUUM �Ɋ֘A�����ȗ�̂ݎ擾���Ă��܂��B
���ꂼ��̗�̈Ӗ��͎��̂悤�ɂȂ�܂��B
| �� | ���� |
|---|---|
| n_live_tup | �L���ȃ��R�[�h�� |
| n_dead_tup | �s�v�ɂȂ������R�[�h�� |
| last_vacuum | ��� VACUUM �����s�������� |
| last_autovacuum | �Ō�� ���� VACUUM �����s���ꂽ���� |
���R�[�h��}�����܂��B
INSERT INTO vacuum_test VALUES ('00001', 10);
INSERT INTO vacuum_test VALUES ('00002', 20);
INSERT INTO vacuum_test VALUES ('00003', 30);
INSERT INTO vacuum_test VALUES ('00004', 40);
INSERT INTO vacuum_test VALUES ('00005', 50);
��Ԃ��m�F���܂��B
db=# SELECT n_live_tup,n_dead_tup,last_vacuum,last_autovacuum db-# FROM pg_stat_all_tables db-# WHERE relname = 'vacuum_test'; -[ RECORD 1 ]----+------------ n_live_tup | 5 n_dead_tup | 0 last_vacuum | last_autovacuum |
5 ���R�[�h�}�������̂ŁA�L���ȃ��R�[�h���� 5 �ɂȂ�܂����B
���� 1 ���R�[�h�폜���܂��B
db=# DELETE FROM vacuum_test WHERE f1 = '00002';
DELETE 1
��Ԃ��m�F���܂��B
db=# SELECT n_live_tup,n_dead_tup,last_vacuum,last_autovacuum db-# FROM pg_stat_all_tables db-# WHERE relname = 'vacuum_test'; -[ RECORD 1 ]----+------------ n_live_tup | 4 n_dead_tup | 1 last_vacuum | last_autovacuum |
�L���ȃ��R�[�h���� 4 �ɂȂ� �s�v�ȃ��R�[�h���� 1 �ɂȂ�܂����B
���łɍX�V�����܂��B
db=# UPDATE vacuum_test SET f2 = 15 WHERE f1 = '00001';
UPDATE 1
��������Ԃ��m�F���܂��B
db=# SELECT n_live_tup,n_dead_tup,last_vacuum,last_autovacuum db-# FROM pg_stat_all_tables db-# WHERE relname = 'vacuum_test'; -[ RECORD 1 ]----+------------ n_live_tup | 4 n_dead_tup | 2 last_vacuum | last_autovacuum |
�s�v�ȃ��R�[�h���� 1 �����܂����B
�����܂ł͏����ł��B �悤�₭ VACUUM �����s���܂��B
db=# VACUUM vacuum_test;
VACUUM
��Ԃ��m�F���܂��B
db=# SELECT n_live_tup,n_dead_tup,last_vacuum,last_autovacuum db-# FROM pg_stat_all_tables db-# WHERE relname = 'vacuum_test'; -[ RECORD 1 ]----+------------------------------ n_live_tup | 4 n_dead_tup | 0 last_vacuum | 2010-04-20 22:20:20.560647+09 last_autovacuum |
�s�v�ȃ��R�[�h���� 0 �ɂȂ�܂����B
last_vacuum �� VACUUM �����s���������������Ă��܂��B
���̂悤�� VACUUM �ŁA�s�v�ɂȂ������R�[�h�� �X�y�[�X���ė��p�\�ɂ��邱�Ƃ��ł��܂��B
Linux �ɂ� �p�X���[�h���ꊇ�ŕύX�ł��� chpasswd �Ƃ����R�}���h������܂��B �g�����͊ȒP�ŕW�����͂��烆�[�U���ƃp�X���[�h�̃Z�b�g��n�������ł��B
�Ⴆ�� testuser1 �̃p�X���[�h�� hogehoge �ɂ���ꍇ ���̂悤�� ���[�U���ƃp�X���[�h���R�����ŋ���ăp�C�v���܂��B
# echo "testuser1:hogehoge" | chpasswd
�������[�U�̃p�X���[�h���ꊇ�ŕύX����ꍇ ���̂悤�� �t�@�C���Ƀ��[�U���ƃp�X���[�h�̃Z�b�g���L�q���܂��B
# vi passwd.txt
testuser1:hogehoge1 testuser2:hogehoge2 testuser3:hogehoge3
������p�C�v�œn���܂��B
# cat passwd.txt | chpasswd
�S���[�U�̃p�X���[�h���ꊇ�ŏ���������ꍇ�ȂǕ֗��ł��B
�O��i Bash �� �z����g���Ă݂� ���� 1 �j�͒l�̊i�[�ł����� ����͔z��炵�� for ���[�v���g���Ēl���o�͂��܂��B
�܂��� ���ʂ́H for ���ł��B �z��̒l��S�ďo�͂���ɂ͎��̂悤�� �Y������ "@" �� "*" ���g���܂��B
$ ARRAY=(one two three four) $ echo ${ARRAY[@]} one two three four $ echo ${ARRAY[*]} one two three four
����� for ���Ŏg�p���܂��B
$ ARRAY=(one two three four) $ for item in ${ARRAY[@]} > do > echo $item > done one two three four
�������A����� 1 ��肪����܂��B
Bash �� for �� ���� 2 �ŏ����܂����� for ���� IFS (�f�t�H���g�̓X�y�[�X�Ȃ�) �ŋ��ꂽ������Ń��[�v�����邱�Ƃ��ł���̂� �z��̗v�f�� IFS ���܂ޕ�����̏ꍇ�A���̂悤�Ƀ��[�v�������Ă��܂��܂��B
$ ARRAY=("one1 one2 one3" two three four) $ echo ${ARRAY[0]} one1 one2 one3 $ for item in ${ARRAY[@]} > do > echo $item > done one1 one2 one3 two three four
�����h�����߂Ƀv���O��������̂悤�� for �����g�p���܂��B
�z��̓Y�����̍ő���擾����ɂ͎��̂悤�ɂ��܂��B
$ ARRAY=("one1 one2 one3" two three four) $ echo ${#ARRAY[@]} 4 $ echo ${#ARRAY[*]} 4
����� for ���Ŏg�p���܂��B
$ ARRAY=("one1 one2 one3" two three four) $ for (( i = 0; i < ${#ARRAY[@]}; i++ )) > do > echo ${ARRAY[$i]} > done one1 one2 one3 two three four
1 �߂̔z����������o�͂���܂����B
�܂��͒l�̊i�[�ł��B ���� 1 ���w�肷����@�ł��B
$ A[0]=one $ A[1]=two
������͈ꊇ�Ŏw�肷����@�ł��B
$ A=(one two three four)
�z��̒l���o�͂���ɂ� "{}" �i�u�����P�b�g�j�� �g�p����K�v������܂��B
$ echo ${A[0]}
�u�����P�b�g���w�肵�Ȃ��� �ϐ� "$A" �� "[0]" �Ƃ��������̏o�͂ɂȂ��Ă��܂��܂��B
���Ȃ݂� ���̂悤�ɓY���� 0 �̒l�� �Y�������w�肵�Ȃ��ϐ��̒l�Ɠ����ɂȂ�܂��B
$ echo ${A[0]} one $ echo $A one
�ł��̂Ńu�����P�b�g���g�p���Ȃ��ꍇ�͎��̂悤�ɏo�͂���܂��B
$ echo $A[0]
one[0]
Bash �� for �� ���� 2 �� IFS ���o������ł����A �f�t�H���g�� IFS �̒��g��\�����邱�Ƃ��ł��Ȃ����Ȃ� �l���Ă��܂����B
���ʂɏo�͂��Ă����̂悤�ɂȂ��Ă��܂��܂��B
$ echo "[$IFS]"
[
]
���̃T�C�g�ɗǂ����@���ڂ��Ă��܂����B
�y�Q�l�T�C�g�z
IFS - http://www.curri.miyakyo-u.ac.jp/pub/doc/sh/node31.html
$ echo -n "$IFS" | od -b 0000000 040 011 012 0000003 $ echo -n "$IFS" | od -c 0000000 \t \n 0000003
040 011 012 �� 8�i���ł��B
�l�Ƃ��Ă� �X�y�[�X�i0x20�j�A�����^�u�i0x09�j�A���s�i0x0A�j�ɂȂ�܂��B
Bash �� for �� �̑����ł��B
���̂悤�ɕ�����̋ŋ��ꂽ���ڂ����X�g�Ƃ��� ���[�v�����邱�Ƃ��ł��܂��B
$ ITEMS="one two three four" $ for item in $ITEMS > do > echo $item; > done; one two three four
�������͋ł͂Ȃ� IFS (Internal Field Separator) �Œ�`����Ă�����̂� ����������܂��B IFS ��ύX����Ƌ���ς��邱�Ƃ��ł��܂��B
$ ITEMS="one/two/three four" $ IFS="/" $ for item in $ITEMS > do > echo $item; > done; one two three four
���Ɉ����̃��X�g�Ń��[�v������Ƃ����̂�����܂��B
$ function test () { > for item in $* > do > echo $item; > done; > } $ test one two three four one two three four
Bash �Ŏg���� for ���ɂ͐F�X�Ȍ`������܂��B
$ for item in one two three four > do > echo $item > done one two three four
in �̌�ɕ��ׂ��l�����[�v�����܂��B
$ for item in /tmp/* > do > echo $item > done /tmp/aaaa.txt /tmp/bbbb.txt
�}�b�`���� �f�B���N�g����t�@�C���̃p�X�Ń��[�v�����܂��B
$ for item in $(wc /tmp/a.txt) > do > echo $item > done 0 3 9
�R�}���h�u�����g���āA���s���ʂŃ��[�v�����܂��B
����𗘗p���� seq �R�}���h���g�����@������܂��B
$ for item in $(seq 1 3) > do > echo $item > done 1 2 3
����ł悭�݂����� ����������J��Ԃ������� �Z�~�R�����ŋ���Ă�`�����g���܂��B
$ for (( item = 0; item < 3; item++ )) > do > echo $item > done 0 1 2
��d�J�b�R (()) ���g���܂��B