3

これは負荷の高い質問かもしれませんし、反対票が投じられるかもしれませんが、私は完全にイライラします.

開発で SQL Server を使用する場合、データ アクセスは高速で効率的ですが、COM を使用して Excel と通信する場合は非常に遅くなります。

ADO、ADO.NET、LINQ、Entity Framework、Astoria (ADO.NET Data Services) など、使用するデータ アクセス テクノロジに関係なく、それらはすべて Excel を自動化するよりも高速です。

Workbook のセル "A1" のデータだけが必要な場合は、1 つのデータ ポイントを取得するためだけに、Excel.Application、Excel.Workbook、Excel.Worksheet、および Excel.Range オブジェクトが必要です。

なぜ、Excel と対話するよりも SQL Server と対話する方が効率的なのですか? Excel はローカルであり、Sql Server はローカルではない可能性があります。

ティア・クリス

4

4 に答える 4

16

対話型アプリケーションとして設計された巨大なモノリシック実行可能ファイルの起動は、その目的のために設計されたアプリケーションと高速ネットワークを介して対話するよりも遅いためです。

于 2009-10-22T20:06:40.620 に答える
6

Excel と対話する必要があるたびに、サーバーは実際に Excel プログラムを起動する必要があります。非表示のデスクトップにありますが、プログラム全体を起動しています。複数のユーザーがサイトを使用している場合、それは Excel の複数のインスタンスでもあります。そして、同じワークブックを共有している場合は、さらに悪化します。

一方、Sql Server は既に実行されています。接続するだけです。このようなことのために作られました。エクセルはそうではありませんでした。

于 2009-10-22T20:13:47.803 に答える
2

Excelは、2007年でも、依然としてcom相互運用機能です。しかし、多くのヘルパーがいます。

エクセル-パフォーマンス-新しい-ホワイトペーパー-利用可能

スプレッドシートギア

excelpackage.codeplex

于 2009-10-22T22:02:06.147 に答える
0

これは、SQL サーバーがデータをサーバーするように設計されているためです。Excel はそうではありません。ここでは、SQL サーバーから数千行、場合によっては数百万行を取得するまで、ネットワーク遅延は問題になりません。

于 2009-10-22T20:07:04.817 に答える