陳麻家 陳麻飯の残ったご飯に坦々スープをかけて食べます
さて、3年間でデータ保存の方式もいろいろ試しました。
CSVテキスト
よーし、パパWebからダウンロードしてきた株価データをエクセルで分析しちゃうぞ、的な入門的データ形式。
高速パースができればよいのですが、TextFieldParserなどは遅かったです。
Access(MDB)
手っ取り早くプロトタイピングを行うならMicrosoft Accessもお手軽。
DAO(JET)でのアクセスもそこそこ高速です。馬鹿にはできません。
SQLServer(MDF)
RDBMSはたしかに高速ですが潤沢にメモリを搭載した場合に限ります。
エンタープライズな大げさなシステムを目指したいのであれば悪くない選択肢ですが、全メモリの30%程度を乗っ取られることを覚悟しましょう。
固定長レコードテキスト
うちのシステムで現在使ってるデータ保存形式です。
丸ごとオンメモリにすれば高速にシークできます。あえて文字列型のままメモリに置くことで高速性を確保してますが、ちょっとメモリ食いです。
バイナリデータあれこれ
数値は数値型変数で持ち。バイナリファイルにリニアに書き込む。これがもっとも効率の良い手法のはずです。
ちょうどDataSet(ADO.NET2.0) がSerializableなのですが、なぜかプレーンXMLにしか対応しておらず、バイナリシリアライズするためには自分でこちょこちょとインタフェースを実装してあげる必要があるみたい。
正月休み中にこの辺を研究してみたい所存。





コメントする