SQL Server から Versant OODB に切り替える利点
-
26-10-2019 - |
質問
SQL Server 2008 から Versant OODB に切り替えることで (開発者だけでなく) 会社にとってどのようなメリットが得られますか?
プロジェクトに関する詳細情報と、答えに役立つ事実 (さらに必要な場合はお知らせください):
- 非常に小さなチームで、OODB をほとんど使用したことがありません。
- プロジェクトでは NHibernate 2 を使用します。
- テストカバレッジは約 75%。
- ASP.NET MVC アプリ。
この段階では、次の点により切り替えを正当化できませんでした (Versant メインストリーム OODB ではなく、db4o に最も関連した点です)。
- 「マネージャー」、プロファイラー、統合/移行ツールなどが多数存在する RDBMS の世界と比較すると、ツールはかなり貧弱です。
- 私が観察した限りでは、ドキュメントは非常に基本的であり、Java がかなり混合されています。
- RDBMS に比べてネット上のリソースはそれほど多くありません。
- (RDBMS とは対照的に) 他のデータベースに切り替えると問題が発生する可能性があります。
- 開発者とITチームの学習曲線。
- 追加のライセンス費用。
- 追加のメンテナンス費用。
- MSDeployment (自動バックアップ、MSBuild、パッケージングなどを含む) との統合はありません。
解決
これは、SQL Server 2005からVersantに切り替えた実際のユーザーによるコメントです。
Vod.netに関する私と私の同僚からのフィードバックはこちらです。
私は自分のアイデアを長所と短所でグループ化しました
長所: (一言で言えば:速度)
- データベースエンジンは、データの読み取りと書き込みのために高速です。私たちが行ったことから、SQL Server 2005の約5〜10倍高速です
- 標準のデータアクセスレイヤーテクノロジーよりも同じことをするために必要なコードの量を減らします
- また、新しい機能を開発する時間を短縮します
- 厳密なオブジェクト構造を作成し、データの整合性を促進します
- VODへのデータのインポートは簡単です
短所: (一言で言えば:トラブルシューティングスキルが必要です)
- 私たちの主な否定的なポイントは、管理ツールの使いやすさ(管理コンソールとオブジェクトインスペクター)についてです
- ボタン/リンクは、それらが何をしているかについて完全に明示的ではありません。通常、それを使用しようとするときにわかります
- Bersant Compilation/Databaseの更新エラーは十分ではありません。クラスがエラーを引き起こすのはほとんどわかりませんが、理由はほとんどないため、自分でデバッグする必要があります。
- データベース]メニューの検証オプションを使用することは機能しなくなり、エラーが表示されます(時間によって異なります)
- アプリケーションの移行
- DALパターンアプリケーションを移行するとき、UIの同じコードを保持しようとする場合、VODで動作させるのは長いです
履歴書では、上級開発者のスキルと複雑な/ビッグデータ構造を持つエンタープライズにvod.netを使用することをお勧めします。既存のアプリケーションを移行するよりも、真新しいアプリケーションを作成することは間違いなく速いです。オブジェクトインスペクターは、よりユーザーフレンドリーになるために再設計を必要とします。
LINQPADサポートを提供することにより、オブジェクトインスペクターの懸念のいくつかに対処しました。感情的な議論ではなく、技術的な利点に基づいて切り替えることを決定する必要があると思います。また、VersantはMicrosoftのパートナーであり、優れたOOスキルを持つ人々には多くの機会があります。
他のヒント
オブジェクトモデルに依存します。複雑な階層的な関係を持つドメインの深いオブジェクトグラフを扱っている場合、SQL Server 2008からVersant ODBに切り替えることで大きな時間に恩恵を受けます。フラットオブジェクトを扱っている場合は、リレーショナルエンジンに固執します。 www.polepos.orgでC/sの結果を確認してください:http://polepos.sourceforge.net/results/polepositionclientserver.pdf
あなたが忘れてしまった ....おそらく、はるかに速く到着します(ただし、モデルによって異なります。単純なモデルがある場合は、 RDB をそのまま使用することをお勧めします)。
多対任意、再帰関係、ネストされたサブグラフなどがある場合...そうすればもっと速くなります。
もちろん、より少ないハードウェアでも動作します。IBM との調査によると、中間層の CPU を約 50% 節約できることが示されています (例:Web サーバーでは、RDB のすべての型変換が行われます)。
また、データベースの専門家は必要ありません。あなたが OO の人なら、すでにスキルセットを持っています...特に Hibernate/nHibernate を知っている場合は、Hibernate と ORM スペースのオブジェクト ライフ サイクル管理の概念が基本的に OODB の世界からハイジャックされ、RDB 陣営に移植されたものであるためです。 。
また、DBA に頻繁に行ってスキーマの更新を依頼する必要がなく、開発サイクルの反復をより速く行うことができます。
....RDBは最終的にはメインフレームの道を歩むことになるでしょう。まだ存在していますが、新しいプロジェクトには使用されていません。Cobalt プログラマーたちも、当時はそれを信じていませんでした...だから、否定的な人たちを気にしないでください。
切り替えたい場合は、そうしてください。これはあなたの唯一の「プラス」ポイントです。
「私たち全員がとてもうんざりしているオブジェクト関係のインピーダンスの不一致を取り除く」
あなたはすでにほとんどのネガをリストしました。さらに2つ追加します:
- ジョブズはどのようにしてゆるいoodbスキルを求めることができますか?
- 何人の開発者がOODBスキルを持っていますか?
開示では、私は販売のためにVersantで働いており、あなたの質問についてコメントするために、Versantは商用製品ですが、SQL Serverと同様に同様の価格設定があります。コミュニティエディションはデータベースサイズに制限があり、標準版はあたり少量のコストです。サーバーですが、許可されているスレッドの数は制限されており、高価ですが、スケーラビリティとパフォーマンスが必要な場合はSQLサーバーまたはOracleよりも少ないエンタープライズエディションです。また、NhibernateからLinqに移動することで、それをVersantのデータベースに使用することができ、将来的にはSQL Serverに戻りたい場合は、EFまたはLINQを使用してSQLで簡単に行うことができます。データベースインフラストラクチャのリスク。これは、PRORPREITARYインターフェイスを備えたKVP NOSQLストアを使用するのではなく、Versantのポイントになります。確かに、リレーショナルであるが、www.odbms.orgにはいくつかの優れた情報と参照資料があります。学習曲線チームがC#に熟練しているかどうかは非常に簡単で、管理の観点から見ると、Versantはデータベースであるため、バックアップと回復手順の学習は馴染みがあるように思われるはずです。お客様のC ++、Java、または.NETはすべて、Versantの利点は、サーバーとストレージのリソースの量が少ないため、開発の容易さ、パフォーマンス、およびニーズをサポートする能力だと言います。