1樓:月夜風歌
雖然在很多情況下sql 引擎能幫助我們判定 where 條件後的執行順序,但我們仍應該將選擇性高(過濾資料多)的條件放置在 where 語句中的前面,尤其對於複雜的sql 語句,
建議: 在編寫sql時,將選擇性高(過濾資料多)的條件放到where條件的前面,這是為了讓查詢優化器優先考慮這些條件,減少生成最優(或相對最優)的執行計劃的時間.
2樓:匿名使用者
一般認為在rbo優化器模式下無影響(10g開始,預設為rbo優化器模式),而在cbo優化器模式下有影響,主要有兩種觀點:
a.能使結果最少的條件放在最右邊,sql執行是按從右到左進行結果集的篩選的;
b.有人試驗表明,能使結果最少的條件放在最左邊,sql效能更高。
請問sql中where後面條件的數量對查詢大批量資料的速度影響嗎?
3樓:匿名使用者
如果沒索引的話,兩個效率差不多的,因為都是走全表掃描
如果語句一的10萬條查出以後,需要做一個遍歷迴圈來過濾出8萬條資料,那效率肯定比第二條語句直接查出來的低了,遍歷是需要時間的
4樓:匿名使用者
加了條件的執行速度快,效率高。寫程式的時候,建議有條件的時候儘可能加條件。不要寫籠統的,會加重伺服器的承載能力。
5樓:匿名使用者
條件越明確,當然越好
sql where 條件順序對效能的影響有哪些
6樓:哎呀
1、絕大多數情況下,在ms sql server或oracle這兩個最主流的大型資料庫中,在近幾年的版本中,單條語句中,where條件中,各條件的順序對查詢的效率、速度,沒有明顯影響。ms sql server或oracle已經考慮到了where條件的優化,它們會對這些條件進行智慧分析,進行最佳的方式查詢。
2、網路上所傳where對效能有影響的說法,要麼是針對過往老舊的資料庫系統而言,要麼就是想當然,要麼就是對一些特定的小資料庫系統或設計不夠好的資料庫系統而言的,至少,對當前主流版本的ms sql server或oracle,這種說法是錯的。
3、但是,在多語句,特別是使用臨時表進行查詢的情況下,每條語句的結果是需要設計者認真分析的,要儘可能減少中間資料量,以達到最大效率。
4、如果你不相信,可以自已親自去ms sql server或oracle中試試,建議ms sql server 2008 r2以上版本 或 oracle 10g 以上版本中,資料量大於10萬條記錄中,以兩個會帶來較大記錄條數差別的條件,改變它們在where中的順序去查,你會發現,查詢所需時間基本上是一樣的(請多次重複,並最好在沒有干擾的情況下)。
5、最後想說,it技術發展到現在,這些問題,大型公司早就考慮到了的。
sql語句中的select執行效率和where條件的排序有關嗎?
7樓:哎呀
沒有關係。
在ms sql 2008 r2下測試,一個資料量大約是20萬條記錄的表中,where各條件前後放置查詢速度基本一樣。
ms sql內部是使用了很多查詢優化演算法的,並不是我們想象的,一條一條去比較,sql的設計要是笨到那一步,就沒法投入實際運用了。
8樓:匿名使用者
有關啊舉個例子吧
select * from table1 where a<1000 and b=1
select * from table1 where b=1 and a<1000
同樣的全表掃描情況下,假設a<1000的有90%都符合,b=1的有10%符合,則第一條語句90%的還進行了b=1的比較,第二條語句10%的進行了a<1000的比較,當然是第二條語句的效率高啊
9樓:匿名使用者
碰巧我在看資料庫,where條件有特定的大致順序。順序搞亂查詢會錯誤。oracle採用自下而上的順序解析where子句,根據這個原理,表之間的連線必須寫在其他where條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在where子句的末尾。
溫度對鋼材效能有什麼影響,溫度對鋼材效能的影響
豆豆安靜 其他回答 鋼是含碳量在0.04 2.3 之間的鐵碳合金。為了保證其韌性和塑性,含碳量一般不超過1.7 鋼的主要元素除鐵 碳外,還有矽 錳 硫 磷等。鋼的分類方法多種多樣,其主要方法有如下七種 1 按品質分類 1 普通鋼 2 優質鋼 3 高階優質鋼 2.按化學成份分類 1 碳素鋼 a.低碳鋼...
會寫順序條件迴圈語句,離會程式設計還有多遠
最近很多人都在問如何學習程式設計。我覺得學習程式設計最重要的是入門,如果你入門的時候有一個好的方法和思路,打下比較紮實的基礎,對今後的程式設計工作是很有益處的。即使在學習新的程式語言也無所謂,因為它們有很多相通之處,可以相互借鑑。我認為可以先學習一下pascal,這個語言比較嚴謹,適合初學者。pas...
硬碟轉速對遊戲效能影響大嗎
影響不大。不會提升幀數的。硬碟轉速快頂多能提高遊戲載入速度。能明顯提高遊戲效能的是快的cpu,大而且快的記憶體,大而且快的視訊記憶體和gpu,硬碟幾乎沒有影響,如果一個遊戲在高速執行過程中,他顯示需要的資料還要從硬碟臨時讀取的話,那再快的硬碟也勝任不了這個工作,所以遊戲執行前需要有一個很長的載入過程...