トップページ > プログラム > 2016年01月13日 > 2tOFPV9B

書き込み順位&時間帯一覧

11 位/176 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000100300000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part39 [転載禁止]©2ch.net
【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net

書き込みレス一覧

Excel VBA 質問スレ Part39 [転載禁止]©2ch.net
401 :デフォルトの名無しさん[sage]:2016/01/13(水) 13:48:54.18 ID:2tOFPV9B
>>397
またお前か。
人に見てもらうようなコードを書こうとは思わないのかね。
【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
407 :デフォルトの名無しさん[sage]:2016/01/13(水) 16:19:56.99 ID:2tOFPV9B
>>393
> そうでないなら、DBに保存して、行数分selectを発行する。
正気か?

データ1行1KBだとして、50MBだと50,000行。
1回のクエリが1msで終わったとして、ループ完了に50秒。

> 追加要求がたびたび発生しそうな案件だから、簡単に変更や拡張ができる
> ように設計したほうがいいよ。
お前のような奴が設計するとか、悪夢だわ。
【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
408 :デフォルトの名無しさん[sage]:2016/01/13(水) 16:27:39.54 ID:2tOFPV9B
手元にあった某ログファイルをコピーして3行書き換えたものをdiffしたら、

log1 41,483,486 bytes
log2 41,483,487 bytes

$ wc -l log1
163537 log1

$ time diff log1 log2 > /dev/null
real 0m2.391s
user 0m2.305s
sys 0m0.086s

16万行のうち数行異なるファイルの差分を取得するのは、2.5秒程度。

最悪Cで書けば、50MBのファイルのマージは、5秒くらいでいけるんじゃね?
【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
409 :デフォルトの名無しさん[sage]:2016/01/13(水) 16:33:08.27 ID:2tOFPV9B
ちなみに、データベースにそのまま読み込んでUNIONすると、

union.sql:
> select log from log1
> union
> select log from log2

$ time psql logtest < union.sql > /dev/null

real 0m10.212s
user 0m2.860s
sys 0m0.030s

"Unique (cost=165536.24..167171.61 rows=327074 width=256)"
" Output: log1.log"
" -> Sort (cost=165536.24..166353.93 rows=327074 width=256)"
" Output: log1.log"
" Sort Key: log1.log"
" -> Append (cost=0.00..18187.48 rows=327074 width=256)"
" -> Seq Scan on public.log1 (cost=0.00..7458.37 rows=163537 width=256)"
" Output: log1.log"
" -> Seq Scan on public.log2 (cost=0.00..7458.37 rows=163537 width=256)"
" Output: log2.log"

appendしてsortしてuniqueかけるから、結構時間がかかる。
ひょっとすると、処理がオンメモリからこぼれる可能性もある。

やっぱ、クライアントコードでゴリゴリやるのがいいと思うよ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。