2017-10-25 6 views
2

q for mortals chapter on data normalisationでは、リスト内の重複を排除するタスクでは、リスト上の異なる値を検索するために列挙を使用することが推奨されています可変長q - 列挙によるデータ正規化の速度向上なし

u:`g`ibm`intl`msft/unique list of tickers 
v:1000000?u/list with duplicate tickers 
k:u?v/positions in u 
\t:10 distinct v/performing distinct on symbols 10 times and timing 
\t:10 distinct k/performing distinct on positions 10 times and timing 

の私は、distinct vが約束されたものと一致していないあるdistinct kよりもはるかに高速であることがわかります。

ありがとうございました。

答えて

2

列挙は通常、あなたは大きなパフォーマンスの向上を確認する場所だ圧縮など を支援するために、ディスクに保存されたデータのために使用されています。より速く(MEM)でシンボルのリスト上のintのリストその明瞭である理由

KDB+ 3.5 2017.04.06 Copyright (C) 1993-2017 Kx Systems 

Welcome to kdb+ 32bit edition 
For support please see http://groups.google.com/d/forum/personal-kdbplus 
Tutorials can be found at http://code.kx.com/wiki/Tutorials 
To exit, type \\ 
To remove this startup msg, edit q.q 
u:`g`ibm`intl`msft/unique list of tickers 
v:1000000?u/list with duplicate tickers 
q)k:`u$v //enumerate v against u 
q)k 
`u$`g`g`intl`ibm`intl`ibm`intl`msft`intl`ibm`g`msft`ibm`intl`intl`ibm`g`ibm`i.. 
q)save `:k 
`:k 
q)save `:u 
`:u 
q)save `:v 
`:v 
q)\\ 

KDB+ 3.5 2017.04.06 Copyright (C) 1993-2017 Kx Systems 

Welcome to kdb+ 32bit edition 
For support please see http://groups.google.com/d/forum/personal-kdbplus 
Tutorials can be found at http://code.kx.com/wiki/Tutorials 
To exit, type \\ 
To remove this startup msg, edit q.q 
q)u:get `:u 
q)\ts:10 distinct get `:v 
462 8388848 
q)\ts:10 distinct get `:k 
37 4194544 
q) 

しかし、あなたは興味深い質問を提起行うには考えています。

関連する問題