資料庫優化2

2021-04-28 00:00:00 字數 963 閱讀 2081

還是專案中發現的問題:問題sql如下.

create or replace view v_xqjh_dsxqjhdh as

select bjjysxqjh.xqjhdh ||'  '|| bjjysxqjh.sqr as xqjhdmc,xqjhdh,bmbm

from bjjysxqjh

where ( ( bjjysxqjh.clzt <> 'y' ) or ( bjjysxqjh.clzt is null ) )

and ( ( bjjysxqjh.clzt <> 's' ) or ( bjjysxqjh.clzt is null ) )

and   ( bjjysxqjh.xqjhdh not in ( select bjjxqjh.xqjhdh from bjjxqjh ) ) order by bjjysxqjh.xqjhdh asc

注意到 not in 這個子查詢語句.

整理如下:  [經驗證.效率提高了快100倍]

create or replace view v_xqjh_dsxqjhdh as

select a.xqjhdh || '  ' || a.sqr as xqjhdmc, a.xqjhdh, a.bmbm

from bjjysxqjh a, bjjxqjh b

where a.xqjhdh = b.xqjhdh(+)

and ((a.clzt <> 'y') or (a.clzt is null))

and ((a.clzt <> 's') or (a.clzt is null))

and b.xqjhdh is null

order by a.xqjhdh asc

在子查詢中,not in子句將執行乙個內部的排序和合併. 無論在哪種情況下,not in都是最低效的 (因為它對子查詢中的表執行了乙個全表遍歷). 為了避免使用not in ,我們可以把它改寫成外連線(outer joins)或not exists.

資料庫知識補充 2 資料庫查詢優化

常用的從以下幾個方面入手 一 查詢語句 這是只要懂資料庫的都知道的 這就是不多說了 二。建立索引 今天 2010 9 13 真正的體會到了索引的重要性,我負責公司的乙個管理系統 需要統計大量資料,之前查詢速度一直很慢 被老闆罵了 想了很久的怎麼解決這個問題 多列索引時,一定注意建立索引的順序 索引是...

資料庫優化 資料庫設計優化

一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...

資料庫引擎優化顧問優化資料庫

現在一直在做的專案,資料量相對也不小,開始的時候沒有覺得,因為是剛開始,資料量還很小,在程式使用過程中速度還挺快,但是隨著資料量的不停的增長,發現程式越來越慢,甚至出現了超時的問題,因此要對程式和資料庫進行優化,前期專案比較緊,沒有針對大資料量業務進行分析設計,所以索引等相關優化沒有做到位,通過後期...