最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySql批量插入優(yōu)化Sql執(zhí)行效率實(shí)例詳解

 更新時間:2017年04月27日 09:38:39   投稿:lqh  
這篇文章主要介紹了MySql批量插入優(yōu)化Sql執(zhí)行效率實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

MySql批量插入優(yōu)化Sql執(zhí)行效率實(shí)例詳解

itemcontractprice數(shù)量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,'外幣匯率調(diào)整,重新計(jì)算人民幣底價(jià)','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,'外幣匯率調(diào)整,重新計(jì)算人民幣底價(jià)','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,'外幣匯率調(diào)整,重新計(jì)算人民幣底價(jià)','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,'外幣匯率調(diào)整,重新計(jì)算人民幣底價(jià)','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,'外幣匯率調(diào)整,重新計(jì)算人民幣底價(jià)','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("底價(jià)更新和日志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("底價(jià)更新影響行數(shù):{0}", effctRows); 

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

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

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

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

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

相關(guān)文章

  • 使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù)

    使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù)

    這篇文章主要介紹了使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù),可以有效的解決一次插入大數(shù)據(jù)的方法,
    2016-11-11
  • Mysql雙主配置的詳細(xì)步驟

    Mysql雙主配置的詳細(xì)步驟

    雙主可以在一定程度上保證主庫的高可用,在一臺主庫down掉之后,可以在極短的時間內(nèi)切換到另一臺主庫上,減少了主從同步給線上主庫帶來的壓力,這篇文章主要給大家介紹了關(guān)于Mysql雙主配置的詳細(xì)步驟,需要的朋友可以參考下
    2022-06-06
  • Mysql Workbench查詢mysql數(shù)據(jù)庫方法

    Mysql Workbench查詢mysql數(shù)據(jù)庫方法

    在本篇文章里小編給大家分享了個關(guān)于Mysql Workbench查詢mysql數(shù)據(jù)庫方法和步驟,有需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • mysql 添加用戶并分配select權(quán)限的實(shí)現(xiàn)

    mysql 添加用戶并分配select權(quán)限的實(shí)現(xiàn)

    在開發(fā)MySQL應(yīng)用程序時,為了保證數(shù)據(jù)的安全性和準(zhǔn)確性,通常需要設(shè)置不同級別的用戶權(quán)限,本文主要介紹了mysql 添加用戶并分配select權(quán)限的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Xampp中mysql無法啟動問題的解決方法

    Xampp中mysql無法啟動問題的解決方法

    最近有朋友反映遇到了xampp的mysql啟動不了這種情況,該怎么辦呢,所以下面這篇文章主要給大家介紹了關(guān)于Xampp中mysql無法啟動問題的解決方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 正確使用MySQL update語句

    正確使用MySQL update語句

    今天我們主要向大家講述的是MySQL update 語句的實(shí)際用法,以及在實(shí)際操作中哪些相關(guān)的操作步驟是值得我們大家注意的。
    2015-08-08
  • Mysql 數(shù)據(jù)庫常用備份方法和注意事項(xiàng)

    Mysql 數(shù)據(jù)庫常用備份方法和注意事項(xiàng)

    Mysql 數(shù)據(jù)庫常用備份方法和注意事項(xiàng) ,需要的朋友可以參考下。
    2010-04-04
  • MySQL字符串前綴索引使用

    MySQL字符串前綴索引使用

    本文主要介紹了MySQL字符串前綴索引使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • MySQL基于SSL協(xié)議進(jìn)行主從復(fù)制的詳細(xì)操作教程

    MySQL基于SSL協(xié)議進(jìn)行主從復(fù)制的詳細(xì)操作教程

    這篇文章主要介紹了MySQL基于SSL協(xié)議進(jìn)行主從復(fù)制的詳細(xì)操作教程,示例環(huán)境基于Linux系統(tǒng)以及OpenSSL客戶端,需要的朋友可以參考下
    2015-12-12
  • MySQL將多條數(shù)據(jù)合并成一條的完整示例

    MySQL將多條數(shù)據(jù)合并成一條的完整示例

    我們在使用mysql的時候常會遇到合并的需求,下面這篇文章主要給大家介紹了關(guān)于MySQL將多條數(shù)據(jù)合并成一條的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02

最新評論

惠来县| 常熟市| 弋阳县| 兴化市| 大方县| 乡宁县| 东城区| 河西区| 本溪| 台中县| 如皋市| 宁强县| 尉犁县| 湖北省| 确山县| 宁津县| 密山市| 蕉岭县| 老河口市| 隆安县| 顺义区| 徐闻县| 珲春市| 开阳县| 灵武市| 民权县| 陆丰市| 微博| 依兰县| 海原县| 连城县| 广西| 宁乡县| 茂名市| 沐川县| 辽宁省| 农安县| 原阳县| 延边| 昌都县| 嘉峪关市|