[英]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.