0
最近在玩ActiveRecord和Sql server,发现ActiveRecord居然支持preparedstatement了。但有些功能还是不能支持,比如NOT EXISTS和CROSS APPLY。
比如,下面这段SQL就没有办法转换成为ActiveRecord
只是有些接近的方法
生成的SQL实际上是
用到了LEFT JOIN,而不是EXISTS。不过,还好是prepared statement。
或者直接用SQL
实际上面生成的SQL就不是prepared过的了。这样就不好了,就不好的利用cache plan了。比起LEFT JOIN 引起的side effect,我更加倾向用LEFT JOIN方式,至少能够cache plan,不用每次compile。
比如,下面这段SQL就没有办法转换成为ActiveRecord
只是有些接近的方法
生成的SQL实际上是
用到了LEFT JOIN,而不是EXISTS。不过,还好是prepared statement。
或者直接用SQL
实际上面生成的SQL就不是prepared过的了。这样就不好了,就不好的利用cache plan了。比起LEFT JOIN 引起的side effect,我更加倾向用LEFT JOIN方式,至少能够cache plan,不用每次compile。
Post a Comment