- PR -

クライアント用の軽いデータベース

投稿者投稿内容
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2007-01-19 16:45
さかもとです。

PCなどでの利用であれば「インストール不要」というわけではありませんが、こんなものもあります。(CEだとアプリからのアクセスがあった場合に自動的にインストール?)

http://www.microsoft.com/japan/sql/editions/compact/default.mspx

元々「EveryWhereEdition」という名前がこれに変わったんですね。
SQLiteと違って、ファイル置いたらそれでOKというわけではなさそうですけど、mdbに近い使い方ができそうな気がします。

SQLiteとかFirebirdとか色々調べたんですけど、.netからの接続に関して情報が少ないのでが、こちらはmsdnとかに情報が結構ありますし、VS2005に統合されているし、使いやすいのではないでしょうか?(VS2003では使えないみたいです)

かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-01-19 17:40
引用:

さかもとさんの書き込み (2007-01-19 16:45) より:

SQLiteとかFirebirdとか色々調べたんですけど、.netからの接続に関して情報が少ないのでが、


SQLiteは前調べた時は、ADO.NET Data Provider for SQLiteぐらいしか見つからなかったけど、いつのまにやらADO.NET 2.0 Provider for SQLite(名前は似てるが、たぶん別物)なんてのがあるのも発見した。これらはどちらも、.net compact framework環境で使用できそう(未確認だけど)。

firebirdはFirebird .Net Data Provider ぐらいかな。.net compact framework環境で使用できるかどうかは分かりません。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-01-19 22:51
引用:

未記入さんの書き込み (2007-01-18 21:37) より:
MDBは重いため代替方法を以下の条件で探しております。
・ロジックは極力変えない(SQL文が利用できる)
・MDBより軽い
・クライアントへのインストール作業は極力行わない


Microsoft Acccess の Jet データーベースがあります。
SQL 文もそれほど制限はありませんし、軽いです。インストールも MDAC をインストールするだけであり、簡単です。

ただし、なぜか拡張子は .mdb です。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}
MeijiK
常連さん
会議室デビュー日: 2005/12/26
投稿数: 24
お住まい・勤務地: 東京都
投稿日時: 2007-01-21 08:13
引用:

Firebirdもできるって、Martin Fowler氏も言ってるんだけど、ソースを見つけることができませんでした。



たぶんEmbedded版と間違えているのだと思います。とりあえず私の知る限りでは、公式のIn-memory版のFirebirdは存在しません。

.NETからのインプロセスDBとして、FirebirdのEmbedded版はヨーロッパで人気です。
英語になりますが、以下のURLからいろいろと情報を得ることができます。
http://www.dotnetfirebird.org/
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2007-01-24 18:46
さかもとです。

有識者の皆様のレスを見て色々と勉強させて頂きました。
firebirdとか色々な試みがあるようで、かなり迷います。

私が挙げたSql Server Compact Editionですが、使ったこと無かったので
質問者の「MDBより軽い」だけに着目して少し実験してみました。

レイアウト
文字項目A nchar(7)
文字項目B nvarchar(100)
文字項目C nchar(6)
文字項目D nvarchar(100)
数字項目A int
数字項目B int

件数6万レコード VB2005使用 WinXPsp2 メモリ2GB CPU2.0G(dual)

処理はSQLserver2000のテーブルAをDataReaderで読み込みつつ.sdfファイルにINSERTしていくだけの単純なものです。

結果
CompactEdition=ファイルサイズ8800kb 処理時間31秒
MDB=ファイルサイズ8903kb 処理時間(メモなくしました、34秒くらいだったかと)

CompactEditionの方は処理後にCompactメソッドとShrinkメソッドで最適化したところ8736kbとなりました。
MDBは最適化して8903kbです。

所感ですが、速度面、ファイルサイズなどはそれほど大きく違わないように思います。
ただ、MSSQLのエンジンを基本としている信頼性とか、ストアドプロシージャーが利用できるとかスマートデバイスでの利用、VSでの開発時の親和性などを考慮するとCompactEditionに軍配が上がるかと。

厳密に実験したわけではないですので、数値は参考程度でお願いします。
又、記述内容に間違いがあったらごめんなさい。

スキルアップ/キャリアアップ(JOB@IT)