สอบถาม VB.net MySQL บนโฮส Update ข้อมูลช้ามาก ขอคำชี้แนะครับ
ช้าครับ ได้กำหนด pid เป็น unique|primary|index ไว้หรือเปล่า
Date :
2019-07-28 22:21:13
By :
Chaidhanan
เป็น Primary ครับ
Date :
2019-07-29 07:08:59
By :
1508133255876470
สอบถามไปที่โฮส เลยครับ
ลองทดสอบความเร็วง่าย ใช้ phpmyadmin update 1 record ใช้เวลา เท่าไหร่ คูณ 85 เข้าไปครับ
1 row affected. (Query took 0.0038 seconds.)
UPDATE `tb_match_play` SET `PlayDate` = '2019-01-30 02:45:00' WHERE `tb_match_play`.`Match_ID` = 51950
ประวัติการแก้ไข 2019-07-29 08:39:55
Date :
2019-07-29 08:33:53
By :
Chaidhanan
@จ.ต้น
--- วันนี้เป็นจ่า วันข้างหน้าอาจจะได้เป็นนายพล
วิธีการเขียนโปรแกรม (อาวุธในมือของจ่า) === ก้อนหินเอาไว้เขวี้ยงกะบานพิฆาตศัตรู
--- ถ้าไม่เปลี่ยนอาวุธ วันพรุ่งนี้อาจโดนลดยศเป็น พลทหารผลัดสอง
--- โยนเข้าไปเป็นก้อนเดียว มีร้อยโยนร้อย อย่าโยนทีละระเบียน (Batch Insert) ส่วนการ Update UI ก็หาวิธีการเอา อทิเช่น
------ ใช้ Async/Await, Yield (จังหวะวนลูปไปก็คืนค่าไป), ใช้รูปกระพริบ/หมุนติ้วเอา, etc...
ถ้าอยากวนจริงฯ วนที่ Lotus Server โน่นแล้วใช้ SignalR ส่งค่ามา Update Windows Client
--- และอีกร้อยแปดพันเก้าวิธี
Date :
2019-07-29 15:24:46
By :
หน้าฮี
จาก #NO4 สรุปสั้นฯได้ว่า จ่ายังใช้ก้อนหินเป็นอาวุธ (เปรียบเทียบให้เห็นภาพชัดเจนครับ มิมีเจตนาเป็นอย่างอื่น)
Date :
2019-07-29 15:27:14
By :
หน้าฮี
เขียนให้ดูเป็นตัวอย่าง ผมทำแค่ระเบียนเดียว แต่ของจ่ามีหลายระเบียนก็แก้ซะ (List<JObject> param)
เพิ่มลูปอีกนิดหน่อย น่าจะพอเข้าใจ
Code (C#)
/// <summary>
/// ข้อมูลฝ่าย เพิ่ม/แก้ไข/ลบ
/// </summary>
/// <param name="param">JObject param</param>
/// <returns>String.Empty = success</returns>
[HttpPost]
[HttpPatch]
public async Task<IActionResult> Post_Division(JObject param) //(List<JObject> param)
{
var hasError = string.Empty; // ""
var gId = (int)param.GetValue("Id", StringComparison.OrdinalIgnoreCase);
var gCode = (string)param.GetValue("xCode", StringComparison.OrdinalIgnoreCase);
var gNameTH = (string)param.GetValue("xNameTH", StringComparison.OrdinalIgnoreCase);
var gNameUS = param.GetValue("xNameUS", StringComparison.OrdinalIgnoreCase).Value<string>();
var gRemark = param.GetValue("Remark", StringComparison.OrdinalIgnoreCase).Value<string>();
var gActFlag = param.GetValue("actFlag", StringComparison.OrdinalIgnoreCase).Value<string>().ToUpper(); //AED
var objDivision = new sexy_Database.Models.Settings.MDivision
{
Id = gId,
Code = gCode,
NameTH = gNameTH,
NameUS = gNameUS,
Remark = gRemark
};
try
{
using (var cn = SexyDatabase.SexyConnection())
{
cn.Open(); //มั่นใจว่าท้องแน่นอน
using (var trans = cn.BeginTransaction())
{
//ของจ่าก็วนลูปตรงนี้เพิ่ม
try
{
switch (gActFlag)
{
case "A":
cn.Insert<sexy_Database.Models.Settings.MDivision>(objDivision, trans);
break;
case "E":
cn.Update<sexy_Database.Models.Settings.MDivision>(objDivision, trans);
break;
case "D":
cn.Delete<sexy_Database.Models.Settings.MDivision>(objDivision, trans);
break;
//default:
// ไปซ่องดีกว่า
// break;
}
trans.Commit();
}
catch (Exception ex2)
{
hasError = ex2.Message;
trans.Rollback();
}
}
}
}
catch (Exception ex1)
{
hasError = ex1.Message;
}
await Task.Delay(0); //Fake async/await
return Ok(hasError);
}
Date :
2019-07-29 15:57:52
By :
หน้าฮี
ขอบพระคุณอย่างสูงครับ จะพยายามศึกษาและปรับแก้ไข ครับ
Date :
2019-07-29 17:06:56
By :
1508133255876470
Load balance : Server 05