工作中遇到個情況
sql如下:
select org.id orgid,org."path
"from (
select * from
a
inner join t_org org on ...
inner join c org on ...
inner join d b on ...
inner join e bsns on ...
left join f logopttp on ...
left join g sysopttp on ...
where
1 = 1
-- and org.path ~ '(/177412/)';-- 加上這一行,時間12s,去掉之後0.3s,懷疑是因為模糊查詢導致了全表掃瞄
解決方式:1.給需要查詢快的字段加上gin索引
2. 用position函式,替代模糊查詢
select org.id orgid,org."path
"from (
select *from a
inner join t_org org on ...
inner join c org on ...
inner join d b on ...
inner join e bsns on ...
left join f logopttp on ...
left join g sysopttp on ...
where
1 = 1
andposition('/177412/' in org.path)>0;-- 這樣的寫法不導致全表掃瞄
解決模糊查詢速度慢問題 ORACLE
乙個困擾我良久的問題,在今天早上8 41分時基本解決。資料庫的資料量非常龐大,查詢速度極慢,建立索引後 搜尋速度問題解決,但是在搜尋的sql語句中大部分是用like,可是like 是不使用索引的,而like 則經過索引,求教曾經的老師 高階程式設計師也無用,在 上搜尋 求助,最終鎖定兩種辦法 1.全...
mysql慢查詢解決方法
在做後台資料統計的時候,需要統計使用者的已回答數 未回答數 平均回答時間等其他資料,執行sql語句的時候耗時40多秒。1 首先是優化sql語句,這個具體的細節就不說了,可以參考一些優化sql語句的方法。2 主要解決方法是表連線字段加索引,經分析,sql語句的複雜之處主要在於問題表和回答表需要多次表連...
SQL查詢慢的解決思路
前提 需要優化的sql符合oracle的高效語法規則,這裡暫且不提 1.在plsql工具中通過使用f5檢視sql語句的執行計畫 2.如果走全表掃瞄,則可通過hints的方式更改cbo的掃瞄方式 table access full 或者index range scan hints 無法更改cbo的掃瞄...