sql優化的進入的誤區

2021-06-14 10:13:16 字數 853 閱讀 1497

如題,近期做新作乙個專案,有個cr是讓對sql語句進行優化,提高執行效率。

具體的sql這裡就不寫了,因為不是本文要寫的重點。這裡用select * from dual來代替《這裡認為是sql1》。

本以為是對這個sql進行優化就可以了,但是經過了兩天修改,一無所獲。

後來無奈只能請教同事,才發現問題並不在此。

因為在這句sql執行過後,下面的**間接的使用了sql1執行的結果集。

並且對這個結果集合中的某些字段重新查詢:

例如下面的sql就對結果集合中的invoicetype這個字段進行判斷,並使用了這個findsysparaname()方法(這個方法裡面是乙個sql查詢《這裡可以認為是sql2》)得到結果,並重新寫入到第一條sql的結果集合中。

tmp[1]= !stringutils.isempty(obj.getinvoicetype()) ? obj.getinvoicetype()+" "+findnamefacadeimpl.findsysparaname("vd", "invoice_type", obj.getinvoicetype()) : "";

舉個例子:

select name from people;

select age from employee where name=name 那麼我們將兩個sql結合在一起:

select name ,age from people left join employee on employee .name=people.name 最終程式完成優化。

就將這麼多吧,其實就是一開始進入了乙個sql優化所帶來的乙個誤區。這裡就總結出乙個經驗教訓,以後如果出現很多自己沒有把握解決的問題,盡早的請教同事或者他人,從而不至於在誤區裡面徘徊不前。

mysql優化誤區 資料庫效能優化的誤區

常見的資料庫系統優化中的一些觀點 系統效能出現問題進行優化,一定要深入了解資料庫內部引數 等待事件 latch 緩衝池 trace檔案 查詢 優化引擎等底層細節。這種觀點往往出自資料庫 高手 這部分人以了解資料庫底層實現細節而感到非常驕傲。但是從優化角度講資料庫的等待事件 latch等指標高等等都只...

氣泡排序的優化與誤區

氣泡排序 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的...

SQL的一些誤區

資料庫 oracle11g無索引的情況下,一樣速度 有索引字段可以為空的情況下,count 列 更快 有索引欄位不可以為空的情況下,兩個一樣快 count 列 的時候,列的偏移量決定效能,列越靠後,訪問的開銷越大.由於count 的演算法與列的偏移量無關,所以count 最快,count 最後列最慢...