C#最小SQLデータベース


12

私は、CSVのようなものでは処理が効率的でなく、SQL / MySQLサーバーが多すぎるほど十分なデータを保存する必要がある小さなプロジェクト(本番ではない)に取り組んでいます。.Netには、単一のファイルを読み込んで処理するのではなく、サーバーを管理および接続することなく、クエリ機能を使用して、データの複数のエントリを効率的に保存する方法がありますか。


既にデータベースサーバーが稼働しており、別のデータベースを作成して実行している場合は、非常に簡単です。データのみを使用している場合は、Accessを検討できます。
ブラッド

@Bradこれは単なる個人的なプロジェクトであり、現在自宅でデータベースサーバーを実行していません。Accessの提案は、まさに私が探しているものです。
デビッド

4
私はAccessのファンではありませんが、場合によっては適切な解決策になるかもしれません。オブジェクトのシリアル化を検討しましたか?オブジェクトを作成してファイルに書き込むだけです。(オブジェクトはList<foo>)可能性があります
ダンピチェルマン

これらを持続させたいですか、それともメモリ内にある必要があるだけですか?
リチャード

1
@David:4000エントリー-少ない?すべてをメモリ内に保持してみませんか?管理ツールを使用せずに、クエリを実行するためにメモリ内のデータベースのみが必要な場合は、データテーブル(ファイルに保存)を含むデータセットで十分です。
ドックブラウン

回答:


15

いくつかの選択肢があり、順不同です。

  1. (有料?)Visual Studioのすべてのバージョンには、SQL Server Expressがインストールされています。あなたはそれを使うことができます。
  2. (うーん)XMLファイル
  3. SQL Server CE(基本的に、ファイルを介したローカルSQL)
  4. SQLite

その他のアイデア:https : //stackoverflow.com/questions/3639846/what-is-a-good-embedded-database-to-use-with-c


私は本当に単一の実行可能ファイルに完全に自己完結したものが欲しいです。DLLもサードパーティのソフトウェアもありません。XMLを除く上記のいずれかがこれらのニーズに対応できますか?
デビッド

DLLを実行可能ファイルに埋め込むことができます。
Sklivvz

さて、私は最も重要な部分は、このようなMSSQL / MySQLのようなサービスは、#3、#4収まるだろう*全くの第三者ではないと思います
デヴィッド・

SQL CEに別個のランタイムがあるかどうかは覚えていません。SQLiteはサポートしていませんが、.NETプロジェクトをセットアップするのは少し難しいかもしれません。
ギャラクティック

3
LocalDBはオプションであることを付け加えます。この回答を参照してください:stackoverflow.com/questions/9655362/…–
アンディ


3

SQLiteが最適な選択肢です。
彼らのサイトに書かれているように:

SQLiteは、自己完結型のサーバーなしのゼロ構成のトランザクションSQLデータベースエンジンを実装するソフトウェアライブラリです。

本当にあなたが探しているもののようです!

あなたがそれをダウンロードしてインストールするのが面倒なら、チョコレートのパッケージさえあります!


2

ADO.NETはXMLにシリアル化でき、RDBMSのほぼすべての機能を備えています。(まあ、とにかく安いものです。)

私はそれが「古い」ことを知っており、今では見下されていますが、ADO.NETはまさにあなたが記述していることに対して本当にうまく機能します。コミットされていない変更を追跡するというかなりまともな仕事さえします。

「古い」場合もありますが、「バスト」ではありません。ただし、メモリフットプリントがかなり重いため、それを呼び出します。4000レコードは問題になりません。


「重いメモリフットプリント」について詳しく説明していただけますか?
デビッド

@David-クエリから返されるレコードだけでなく、データセット全体がメモリに保持されることを意味します。400万件のレコードのデータベースがある場合、すべてをADO.NETデータセットに保持するとリソースが大幅に消費されますが、「実際の」RDBMSはそれらのサブセットを照会するまでディスクに保持します。4000レコードはメモリ使用量の小さなくしゃみなので、心配する必要はありません。
ウェズリーロング

+1、私はこれが最良の選択肢だと思います。この要件のために、SQLliteは非常に手間がかかるように思えます。
Doc Brown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.