質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

パフォーマンス

コード効率の向上や計算に関する質問には、このタグを使ってください。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

2回答

4683閲覧

Linq to SQLのパフォーマンスチューニングについて

Surf244

総合スコア11

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

パフォーマンス

コード効率の向上や計算に関する質問には、このタグを使ってください。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2016/02/04 12:10

編集2016/02/04 22:24

Linq to SQLのパフォーマンスチューニングをしております。

ネットではcompiledqueryを使用したり、Dataoptionを使用し、関連するテーブルを先に読み込むとよいという風に書かれていましたが、いまいちやり方がわかりません。

分かりやすくご教授いただけると助かります。

VS2013
SQLserver2012
asp.net mvc4.5
vb

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Linq to SQL では Linq の構文を使ってデータを検索します。
しかしデータベースに渡されるのは Linq ではなく SQL 言語のクエリです。
つまりここで Linq から SQL への翻訳が行われることになります。
翻訳は極めて短い時間で行われますが、大量のクエリを投げる場合、合計した時間はバカにできないこともあります。

そこで、同じクエリを何度も投げるならば、同じクエリをその都度翻訳するのではなく、あらかじめ一度翻訳してからループに乗せることで無駄が省けます。
具体的には、例えば今まで

var query = arg => db.Table1.Where(row => row.Name == arg);
foreach (var q in query) { 処理 }

としていたところを

var query = CompiledQuery.Compile(arg => db.Table1.Where(row => row.Name == arg));
foreach (var q in query) { 処理 }

と置き換えるだけです。
この例では query を一回しか使っていないので、まったくパフォーマンスは改善されませんが、この query を何度も使うのであれば、これでパフォーマンスの改善が見込めます。

Dataoption というのは、ひょっとして DataContext のことではないですか?

投稿2016/03/25 09:07

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まず
誤:Link to SQL
正:Linq to SQL
です

かなり前の記事ですが
10 Tips to Improve your LINQ to SQL Application Performance
辺りは参考になるかもです

「Linq to SQL」を使うなら移行も考えておきましょう
今のところ「Entity Framework」になるのでしょうか?
それはそれで...ですが(苦笑

投稿2016/02/04 19:21

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Surf244

2016/02/05 11:08

ご回答ありがとうございます。 10tips読みました。 内容は理解出来るのですが、実装する事が出来ませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問