MSDNフォーラムの以下の投稿に基づいた検証の続きです。
DBのテーブルからレコード数によって文字列として作成し利用する方法
たとえばテーブルに レコードが3レコードあるとき , 1 TIME, 2 TIME, 3 TIME レコードが5レコードあるとき , 1 TIME, 2 TIME, 3 TIME, 4 TIME, 5 TIME というように 文字列を作成するにはどのような方法があるでしょうか? ...
今度はDataTableの行数参照の処理時間を検証します。以下のコードで「行数の参照処理」を変更して検証を行います。
DataSet ds = new DataSet(); DataTable dt = ds.Tables.Add("table"); dt.Columns.Add(); for (int i = 0; i < 100000; i++) { dt.Rows.Add("hoge"); } Stopwatch w = new Stopwatch(); w.Start(); /* * 行数の参照処理 */ w.Stop(); Console.WriteLine("経過時間:{0}ミリ秒", w.ElapsedMilliseconds);
プロパティを直接参照
int count; for (int i = 0; i < 1000000; i++) { count = ds.Tables["table"].Rows.Count; }
結果は513ミリ秒でした。
変数に取得して参照
int rowCount = ds.Tables["table"].Rows.Count; int count; for (int i = 0; i < 1000000; i++) { count = rowCount; }
結果は5ミリ秒でした。
検証結果
一度変数に取得した方が速いです。