|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Victor Sudakov 2:5020/400 24 Dec 2002 08:44:54 To : Spartak Radchenko Subject : Re: Учет тpаффика -------------------------------------------------------------------------------- Spartak Radchenko <spartak@aif.ru> wrote: > VS> > VS> select dstIP, sum(octets) from table group by dstIP; > VS> > VS> Я мерял на файле размером 866M, 17750277 строк, PostgreSQL версии 7.2.3 > VS> таблица создавалась с нуля путем "copy from file", потом > VS> индексировалась по полю dstip. Hо наличие или отсутствие индекса, как > VS> оказалось, на скорость практически не влияет. > > Тогда понятно, откуда у тебя такая фигня. В дефолтной установке постгрес я сравнивал не только с постгресом, но и с mysql, правда давненько. awk обгоняет и его. > не оптимизирует запросы по индексам (точнее, делает это не всегда, когда > именно - я так и не понял). Почему так криво сделано - непонятно. Короче, > в postgresql.conf добавь enable_seqscan = false выключение seqscan только замедляет дело > > А вообще в postgres есть очень полезная команда explain. Дай вот такую > команду: > > explain select dstIP, sum(octets) from table group by dstIP; > > И сразу всё увидишь. Если я поставил правильный диагноз, просьба потом > сообщить, кто стал быстрее - awk или postgres. > [sudakov@work ~] wc -l flow.small.txt ; du -h flow.small.txt 500000 flow.small.txt 24M flow.small.txt [sudakov@work ~] time cat flow.small.txt > /dev/null ; time ./netflow.awk flow. mall.txt > t1 0.007u 1.709s 0:01.92 88.5% 76+230k 200+0io 4pf+0w 31.144u 5.463s 0:37.17 98.4% 175+465k 209+0io 5pf+0w [sudakov@work ~] explain analyze select dstip, sum(octets) as mbyte from netflow group by dstip; === без индекса psql:total.sql:4: NOTICE: QUERY PLAN: Aggregate (cost=100000069.83..100000074.83 rows=100 width=36) (actual time=147 74.01..195433.00 rows=1025 loops=1) -> Group (cost=100000069.83..100000072.33 rows=1000 width=36) (actual time= 47285.90..183133.71 rows=500000 loops=1) -> Sort (cost=100000069.83..100000069.83 rows=1000 width=36) (actual ime=147285.80..159808.73 rows=500000 loops=1) -> Seq Scan on netflow (cost=100000000.00..100000020.00 rows=10 0 width=36) (actual time=0.51..30585.59 rows=500000 loops=1) Total runtime: 195597.91 msec 0.039u 0.031s 3:16.77 0.0% 162+218k 2+0io 0pf+0w [sudakov@work ~] === с индексом psql:total.sql:4: NOTICE: QUERY PLAN: Aggregate (cost=0.00..1602106.60 rows=50000 width=36) (actual time=4911.99..30 849.90 rows=1025 loops=1) -> Group (cost=0.00..1600856.60 rows=500000 width=36) (actual time=44.51..2 7796.16 rows=500000 loops=1) -> Index Scan using dstip on netflow (cost=0.00..1599606.60 rows=5000 0 width=36) (actual time=44.44..260562.41 rows=500000 loops=1) Total runtime: 300893.24 msec 0.021u 0.053s 5:02.74 0.0% 108+142k 9+1io 14pf+0w [sudakov@work ~] Суди сам. Интересно было бы увидеть и твои измерения. Что всё я да я. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/149@fidonet http://vas.tomsk.ru/ --- ifmail v.2.15dev5 * Origin: AO "Svyaztransneft", SibPTUS (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/9182c7586b72.html, оценка из 5, голосов 10
|