Web開発者はスピードを大切にします。高速化したいのにADO.NETを使った最適なデータ取得の方法が分からないという方には、本稿の内容が参考になるでしょう。
はじめに
本稿では、ADO.NETを使ってデータにアクセスするいくつかの方法のベンチマーク評価を行います。このベンチマークの結果が、お使いのアプリケーションでデータアクセスを行う方法の参考になれば幸いです。本稿のねらいはADO.NETの説明ではありません。ADO.NETについては、役に立つ参考資料がMicrosoftから出ていますので、そちらを参照してください(PRC1または新しいヘルプファイルにあります)。ただし、ADO.NETの構造のごく簡単な紹介だけはしておきましょう。
ADO.NETの基本事項
ADO.NETは、データへのアクセスと操作を行う新しいアーキテクチャを提供します。VB6の頃のADOとはまったく別物です。ADO.NETにより、データアクセスおよびデータ操作の新しい方法が利用できます。
ADO.NETのコアとなる機能を提供するのがManaged ProviderとDataSetです。
1. Managed Provider
Managed Providerには、次の4つのクラスがあります。
ConnectionCommandDataReaderDataAdapter
ConnectionとCommandの両クラスは、旧バージョンのADOにあるものとほぼ同じです。Connectionクラスから派生したオブジェクトは、データソースへの接続に使用されます。また、Commandクラスの派生オブジェクトは、ストアドプロシージャの実行とパラメータ情報の設定、それにデータの修正と引渡しに使用されます。
DataReaderクラスは、データソースに対する読み取り専用で前方参照のみのアクセスを提供します。このオブジェクトについては、後でベンチマーク評価を行います。Managed Providerの最後のコンポーネントはDataAdapterクラスです。DataAdapterは、もう1つのコアコンポーネントであるDataSetがManaged Providerに接続するためのチャネルの役割を果たします。
2. DataSet
DataSetクラスは、メモリ内のDataTable、列、行、制約、およびリレーションで構成されています。また、DataSetクラスは、テーブル間のリレーションの設定、データの取得と更新を行うためのインターフェイスを提供します。DataSetが持つ最大のメリットの1つは、XmlDataDocumentとの同期がとれることでしょう。DataSetはXmlDataDocumentに対する階層的なアクセスをリアルタイムに行うことができます。
現時点では、Managed Providerには2つのバージョンがあります。それぞれのバージョンは.NET Framework内の異なる名前空間によって表現されています。1つ目のSystem.Data.SQLClientは、SQL Server 7.0以降へのアクセス機能を提供します。2つ目のManaged ProviderはSystem.Data.OleDbという名前空間の内部にあり、どんなOleDbソースのアクセスにも使用できます。SQLClient Providerは、Microsoft SQL Serverのワイヤフォーマット(TDS)を利用しています。そのため、OleDbプロバイダを介してデータにアクセスするよりも優れたパフォーマンスが得られるはずです。後述のパフォーマンステストでは、両方の種類のManaged Providerについて測定を行います。
ADO.NETの一般的な構造を図で示すと、次のようになります。

この図では、データソースからデータを取得する2とおりの経路が示されています。1つ目は、Managed ProviderコンポーネントのDataReaderを介する経路です。2つ目はDataSetを通る経路で、Managed ProviderのDataAdapterクラスを介してデータソースにアクセスします。
この堅牢なDataSetオブジェクトは、テーブル間のリレーション確立のような機能を実行するときに利用できます。DataReaderは、読み取り専用で前方参照のみのデータ取得を行います。本稿のテストでは、このDataReaderではなくDataSetを使う際のパフォーマンス低下を計測してみたいと思います。
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Craig Davis(Craig Davis)
11年の開発キャリアを持ち、そのうち6年はWeb開発に従事。現在はMicron社の重要技術部門のWeb開発マネージャとして勤務。電子メールの宛先はcraig@chilibean.com。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
