質問編集履歴
3
質問事項のソースを改修したものを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -130,3 +130,70 @@
|
|
130
130
|
windows10
|
131
131
|
mysql5.6.20
|
132
132
|
|
133
|
+
### 上記のソースから指摘されたところを変更したソース
|
134
|
+
ひとまずcatchは省いています。以下はINSERTのみですが、UPDATEも同じように直しました。
|
135
|
+
```C#
|
136
|
+
private static async Task<bool> ExitPrintImageMain()
|
137
|
+
{
|
138
|
+
try
|
139
|
+
{
|
140
|
+
int listcnt = 0;
|
141
|
+
|
142
|
+
foreach (var v in TestList)
|
143
|
+
{
|
144
|
+
await UpdTest1TransactionAsync(listcnt);
|
145
|
+
|
146
|
+
await InsTest1TransactionAsync(listcnt);
|
147
|
+
listcnt = listcnt + 1;
|
148
|
+
}
|
149
|
+
return true;
|
150
|
+
}
|
151
|
+
}
|
152
|
+
```
|
153
|
+
parameter2~5は省いています。実際はちゃんと記述してます。
|
154
|
+
```C#
|
155
|
+
private static async Task InsTest1TransactionAsync(int listcnt)
|
156
|
+
{
|
157
|
+
try
|
158
|
+
{
|
159
|
+
DateTime dt = DateTime.Now;
|
160
|
+
|
161
|
+
parameter1.iTest_NO = listcnt;
|
162
|
+
parameter1.sTest_TIME = dt.ToString("yyyy/MM/dd HH:mm:ss")
|
163
|
+
・
|
164
|
+
・
|
165
|
+
・
|
166
|
+
parameter6.iTest_NO = listcnt;
|
167
|
+
parameter6.sTest_TIME = dt.ToString("yyyy/MM/dd HH:mm:ss")
|
168
|
+
|
169
|
+
await Tracsaction.Ins1Main();
|
170
|
+
}
|
171
|
+
}
|
172
|
+
```
|
173
|
+
```C#
|
174
|
+
private static bool Ins1Main()
|
175
|
+
{
|
176
|
+
MySqlCommand cmd = new MySqlCommand(SQL.ins1, cn);
|
177
|
+
try
|
178
|
+
{
|
179
|
+
cmd.Parameters1.Add(new MySqlParameter("i0", Program.parameter1.iTest_NO));
|
180
|
+
cmd.Parameters1.Add(new MySqlParameter("s1", Program.parameter1.sTest_TIME));
|
181
|
+
cmd.ExecuteNonQuery();
|
182
|
+
cmd.Parameters.Clear();
|
183
|
+
・
|
184
|
+
・
|
185
|
+
・
|
186
|
+
cmd = new MySqlCommand(SQL.ins6, cn);
|
187
|
+
cmd.Parameters6.Add(new MySqlParameter("i0", Program.parameter6.iTest_NO));
|
188
|
+
cmd.Parameters6.Add(new MySqlParameter("s1", Program.parameter6.sTest_TIME));
|
189
|
+
cmd.ExecuteNonQuery();
|
190
|
+
cmd.Parameters.Clear();
|
191
|
+
|
192
|
+
cmd.Transaction = cn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);
|
193
|
+
cmd.Transaction.Commit();
|
194
|
+
cmd.Connection.Close();
|
195
|
+
cmd.Dispose();
|
196
|
+
return true;
|
197
|
+
}
|
198
|
+
}
|
199
|
+
```
|
2
前提を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
|
2
2
|
### 前提
|
3
|
+
Visual Studio 2019
|
4
|
+
フレームワーク: .NET core 3.1
|
5
|
+
コンソールアプリケーション
|
3
6
|
|
4
7
|
C#でTaskを使って複数のINSERTやUPDATEを繰り返すと、徐々に1件登録・更新を続けていくと少しずつ遅くなってしまいます。最初の数十件は1件目から2件目登録するのにそれほど時間はかかりませんが、数百件目となると1件処理するのに数秒かかるようになりました。
|
5
8
|
登録や更新しているDBはLocalに構築しています。
|
1
await 追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -77,7 +77,7 @@
|
|
77
77
|
parameter1.iTest_NO = listcnt;
|
78
78
|
parameter1.sTest_TIME = dt.ToString("yyyy/MM/dd HH:mm:ss")
|
79
79
|
|
80
|
-
Tracsaction.Ins1Main();
|
80
|
+
await Tracsaction.Ins1Main();
|
81
81
|
}
|
82
82
|
catch (Exception e)
|
83
83
|
{
|