[英]Efficiency check in sql query
我在兩種執行任務的方法之間掙扎。
我有一組條件,當它們全部為真時-我需要在該記錄的“ x”列屬性中設置“ true”。
什么是更有效和推薦的,為什么?
我不能認為需要更改“ 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.