日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据查询读取优化

發(fā)布時間:2024/6/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据查询读取优化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

主要隨著數(shù)據(jù)的增加,用到in的,消耗時間幾何增長。由于在前期測試評估不到位,沒有查看具體的代碼。測試版數(shù)據(jù)量跟線上的數(shù)據(jù)差距很大,一般很難看出。對于涉及多表復(fù)雜查詢的功能需要特別留意。

?

優(yōu)化前 線上74.031秒,測試版0.031秒。隨著數(shù)據(jù)量增加而增加。

select * from (select "Extent1".*,row_number() OVER(ORDER BY ID desc) as "row_number"from (select *from (select s.id,s.shipment_no,s.order_no,s.destination,s.estimated_ship_date,s.orig_warehouse_idfrom ship_shipment sWhere is_deleted = 0and not exists(select sst.idfrom ship_shipment sstleft join ship_picklist_item spion spi.shipment_id = sst.idleft join ship_picklist spon sp.id = spi.picklist_idinner join (select te.type,ti.work_effort_id,ti.bill_id_tofrom trsf_work_effort teinner join trsf_work_effort_item tion ti.work_effort_id = te.idand te.type = 13where ti.is_deleted = 0) ton t.bill_id_to = spi.idwhere spi.is_deleted = 0and sp.pick_type = 3and sst.id = s.id)and not exists(select pi.shipment_idfrom ship_picklist_item pileft join ship_picklist sppon spp.id = pi.picklist_idleft join trsf_work_effort tweon twe.id = pi.work_effort_idwhere spp.pick_type = 3and twe.status != 3and pi.is_deleted = 0and pi.shipment_id = s.idgroup by pi.shipment_id)) ssWhere 1 = 1and id in(select i.shipment_idfrom ship_picklist_item iinner join ship_picklist spon sp.id = i.picklist_idand sp.pick_type = 3where i.is_deleted = 0group by i.shipment_idhaving sum(nvl(i.quantity_picked, 0)) = sum(nvl(i.quantity_sorted, 0)) and sum(nvl(i.quantity_picked, 0)) > 0)and ss.ORIG_WAREHOUSE_ID = 170) "Extent1") "Extent2"where "row_number" > 0and rownum <= 20

?

優(yōu)化后:線上0.359秒 ?測試版:0.047秒

select * from (select s.id,s.shipment_no,s.order_no,s.destination,s.estimated_ship_date,s.orig_warehouse_idfrom ship_shipment sWhere is_deleted = 0 and not exists(select sst.idfrom ship_shipment sstleft join ship_picklist_item spion spi.shipment_id = sst.idleft join ship_picklist spon sp.id = spi.picklist_idinner join (select te.type, ti.work_effort_id, ti.bill_id_tofrom trsf_work_effort teinner join trsf_work_effort_item tion ti.work_effort_id = te.idand te.type = 13where ti.is_deleted = 0) ton t.bill_id_to = spi.idwhere spi.is_deleted = 0and sp.pick_type = 3and sst.id = s.id)and not exists (select pi.shipment_idfrom ship_picklist_item pileft join ship_picklist sppon spp.id = pi.picklist_idleft join trsf_work_effort tweon twe.id = pi.work_effort_idwhere spp.pick_type = 3and twe.status != 3and pi.is_deleted = 0and pi.shipment_id = s.idgroup by pi.shipment_id)) ss, (select i.shipment_idfrom ship_picklist_item i inner join ship_picklist spon sp.id = i.picklist_idand sp.pick_type = 3where i.is_deleted = 0 group by i.shipment_idhaving sum(nvl(i.quantity_picked, 0)) = sum(nvl(i.quantity_sorted, 0)) and sum(nvl(i.quantity_picked, 0)) > 0) spi where ss.id = spi.shipment_id and ss.orig_warehouse_id = 1

?

轉(zhuǎn)載于:https://www.cnblogs.com/llvoeto/p/6085954.html

總結(jié)

以上是生活随笔為你收集整理的数据查询读取优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。