簡體   English   中英

SQL查詢效率檢查

[英]Efficiency check in sql query

我在兩種執行任務的方法之間掙扎。

我有一組條件,當它們全部為真時-我需要在該記錄的“ x”列屬性中設置“ true”。

什么是更有效和推薦的,為什么?

  1. 對於表中的所有記錄,將此列設置為“ false”,然后在某些情況下運行另一個查詢以將“ true”設置為“ true”。
  2. 如果所有條件均為“ true”,則設置為“ true”,然后在一個或多個條件失敗的所有記錄上運行另一查詢以將“ false”設置為“ false”。

我不能認為需要更改“ x”列的某些默認值,因為查詢也應在初始值插入該列后需要的時候偶爾運行一次。從我上次運行此查詢開始。

也許還有另一個想法,比上面的2個更有效?

我也想了解如何高效地計算查詢,這類似於編程中的高效計算方式。

可能最有效的方法是使用case語句,因為您只需要每行評估一次條件,並且也只需修改每行一次,例如

UPDATE tablename SET fieldname = (CASE WHEN conditions THEN 'true' ELSE 'false' END)

案例聲明至少在Oracle和MS-SQL中可用。 不了解其他數據庫供應商。

如果所有條件在數據結構上都相似,那么我認為這並不重要。

如果條件具有不同的數據查詢結構(例如,“我的鍵不是tableB中的外鍵”和“ State ='California'”),則設置為true,然后逐個檢查它們(作為SQL序列)語句)更好,因為您可以先檢查簡單的語句,而不必擔心那些已經刪除其標志的記錄的復雜記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM