好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySql批量插入優化Sql執行效率實例詳解

MySql批量插入優化Sql執行效率實例詳解

熱門標簽:智能電銷機器人靠譜么 安國在哪里辦理400電話 南宋地圖標注黃河華山 昆明智能外呼系統中心 電銷機器人公眾號推送 電銷機器人說明書 長安區違法建房地圖標注 手機用地圖標注工具 地圖標注培訓

MySql批量插入優化Sql執行效率實例詳解

itemcontractprice數量1萬左右,每條itemcontractprice 插入5條日志。

updateInsertSql.AppendFormat("UPDATE itemcontractprice AS p INNER JOIN foreigncurrency AS f ON p.ForeignCurrencyId = f.ContractPriceId SET p.RemainPrice = f.RemainPrice * {0},p.BuyOutPrice = f.BuyOutPrice * {0},p.ReservedPrice = f.ReservedPrice * {0},p.CollectedPrice = f.CollectedPrice * {0},p.AccessPrice = f.AccessPrice * {0} WHERE p.CurrencyId = {1} AND p.date BETWEEN '{2:yyyy-MM-dd}' AND '{3:yyyy-MM-dd}';", rate.ExchangeRate, exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
 
updateInsertSql.AppendFormat("INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 0,c.RemainPrice,f.RemainPrice,c.RemainIsExpire,'外幣匯率調整,重新計算人民幣底價','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
 
updateInsertSql.AppendFormat(" INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 1,c.BuyOutPrice,f.BuyOutPrice,c.BuyOutIsExpire,'外幣匯率調整,重新計算人民幣底價','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
 
updateInsertSql.AppendFormat("INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 2,c.ReservedPrice,f.ReservedPrice,c.ReservedIsExpire,'外幣匯率調整,重新計算人民幣底價','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
 
updateInsertSql.AppendFormat("INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 3,c.CollectedPrice,f.CollectedPrice,c.CollectedIsExpire,'外幣匯率調整,重新計算人民幣底價','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
updateInsertSql.AppendFormat("INSERT INTO `itemcontractpricelog`(`ContractPriceType`,`ContractPrice`,`FcContractPrice`,`IsExpire`,`LogRemark`,`CreatedByName`,`CreatedById`,`CreatedDate`,`LogTypeId`,`ProviderId`,`StageId`,`Date`,`CurrencyId`,`ContractPriceId`,`StockPattern`,`ItemId`) SELECT 4,c.AccessPrice,f.AccessPrice,c.AccessIsExpire,'外幣匯率調整,重新計算人民幣底價','job',0,NOW(),5,c.ProviderId,c.StageId,c.Date,c.CurrencyId,c.ContractPriceId,0,c.ItemId FROM itemcontractprice AS c INNER JOIN foreigncurrency AS f ON c.ForeignCurrencyId = f.ContractPriceId WHERE c.CurrencyId={0} AND c.date BETWEEN '{1:yyyy-MM-dd}' AND '{2:yyyy-MM-dd}';", exchangeRate.CurrencyId, rate.BeginDate, rate.EndDate); 
//var curContractPriceList = itemContractPriceList.Where(o => o.CurrencyId == exchangeRate.CurrencyId  o.Date >= rate.BeginDate  o.Date = rate.EndDate).ToList(); 
logger.InfoFormat("底價更新和日志sql:{0}", updateInsertSql.ToString()); 
//if (curContractPriceList.Count == 0) continue; 
int effctRows = 0; 
using (var tran = UnitOfWorkManager.Begin()) 
{ 
  effctRows = taskRepository.ExecuteSql(updateInsertSql.ToString(), false); 
  tran.Complete(); 
} 
logger.InfoFormat("底價更新影響行數:{0}", effctRows); 

正常情況下大概20秒鐘就ok.

之前是用EF操作,查詢出來 ,要耗時,然后再組裝 update語句 ,然后再插入日志(每條數據5條日志),這個網絡交互的時間加上數據庫連接打開關閉的時間,總的執行時間,大概10多分鐘。

用sql語句批量操作,可以說效率提升了 40倍,就是大量數據的傳輸和數據庫的處理次數耗時。

所以說,軟件開發不是開發完成就行,而是要解決性能上的問題,這才是開發的進階。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • mysql大批量插入數據的4種方法示例
  • MYSQL批量插入數據的實現代碼
  • MySQL實現批量插入以優化性能的教程
  • MySQL批量插入遇上唯一索引避免方法
  • Mysql使用insert插入多條記錄 批量新增數據
  • MYSQL開發性能研究之批量插入數據的優化方法
  • MySQL批量插入數據腳本
  • mysql 循環批量插入的實例代碼詳解
  • MySQL批量SQL插入性能優化詳解
  • MySQL如何快速批量插入1000w條數據

標簽:江門 南昌 武漢 東莞 吉安 合肥 長沙 潛江

巨人網絡通訊聲明:本文標題《MySql批量插入優化Sql執行效率實例詳解》,本文關鍵詞  MySql,批量,插入,優化,Sql,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySql批量插入優化Sql執行效率實例詳解》相關的同類信息!
  • 本頁收集關于MySql批量插入優化Sql執行效率實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国精产品自偷自偷综合| 一级毛片日韩a欧美OOXX| 国产亚洲精品久久久久久无几年桃 | 欧洲色视频| 日本人的色道www免费一区| 巨胸教师 冲田杏梨 在线| 欧美人在线一区二区三区| 把女人弄特爽黄a大片 在线观看| 2020国产精品自拍| 娇妻在农场内被灌满脓液小说| 胯下口舌奴视频丨vk| 曰本黄色一级片| 最新中国gay高清xxxx| 兔子先生在线| 国国产自偷自偷免费二区| free欧美性69| 天堂资源在线观看| 国精产品一线二线三线影院| 欧美老妇人与黑人做爰| 操出白浆在线观看| 男同山东浩浩gay| 精品少妇a 6 2v久久欧美| gay在线观看| 3d全彩漫画| 黄色污污小说| 成人3D无遮H漫画| 上课被男同桌脱了内裤摸| 天天舔天天爱| 野花社区www在线观看| 韩国19禁??AV无码| 国产福利你懂的| 合租嗯啊好猛h| 国产精品私拍PANS大尺度在线| freex性hd| 男男gaychinese| 强伦人妻一区二区三区视频18| 国产又粗又黄又爽又硬的蘑菇| 日本精a在线观看| 精品视频vs精品视频| 欧产日产国产不卡一二三区| 警察好大?好爽?湿透了|