忍者ブログ
ADMIN / ENTRY
2025
05
<<  >>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
技術の覚書
[6]  [7]  [8]  [9]  [10]  [11
New Entry
2012/04/21 ---- GPUレンダリング
2011/02/02 ---- PL/SQL
2011/02/02 ---- ファイルオープン
2011/02/02 ---- 値比較
2008/04/22 ---- In Any
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

DataTableはサーバーデータをクライアントのメモリ内に落としこむため、落とすまでに時間を要する。
しかし、落とした後はオンメモリーとなるため、ループ処理(フェッチ)は非常に高速となる。

一方、DataReaderは都度(行、カラム単位)サーバーへデータの問い合わせを行うため、限定されたデータを取得する場合は非常に高速である。

上記、2種類の手法の使い分けは、データを使い回す:DataTableか、回さない:DataReaderかで判断すると良い。
PR
KEY項目を抽出条件として項目の取得をする場合は、DataViewのRowfilterよりもDataTableのSelectの方が高速
文字列を「+=」で連結するとレスポンスが悪くなる。

ループ処理で文字列連結を行う場合はStringBuilderクラスのAppendメソッドを使用する。

特に、大量のデータを連結するとレスポンスが顕著に現れる。

【例】
string s = "1";
s += "2";
s += "3";
上記では順番に"1","2","12","3","123"という5回メモリの確保が行われる。

StringBuilder s = new StringBuilder("1");
s.Append("2");
s.Append("3");
s.ToString();
上記では順番に"1","2","3","123"となり回数+1回のメモリ確保が行われる。

故にstringの+=はStringBilderに比べ倍のメモリ確保が行われることとなる。
カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
フリーエリア
最新CM
最新記事
(04/21)
(02/02)
(02/02)
(02/02)
(04/22)
最新TB
プロフィール
HN:
ECR33 Type-M
性別:
非公開
バーコード
ブログ内検索
Powerd by NINJAブログ / Designed by SUSH
Copyright © 技術覚書 All Rights Reserved.
忍者ブログ [PR]