select和from中间尽量不要用自定义的函数
咱们常用的
select ***, sys_common_if_p.Get_Lookup_Name('xxx', yyy) from table
或者
select ***, sys_common_if_p.GET_USER_NAME('xxx') from table
都是不好的,如果是自定义函数,在函数中进行了大量查询,那就更糟糕了,在数据量大的时候会很慢。
因为函数每走一条记录,都会执行函数里相关表的全表扫描,而关联表只扫一次
所以,尽量以关联表的形式查询吧,当然,关联条件一定要写全,否则形成笛卡尔连接就更慢了。
以上是各人理解,如果不对,请说明指出
咱们常用的
select ***, sys_common_if_p.Get_Lookup_Name('xxx', yyy) from table
或者
select ***, sys_common_if_p.GET_USER_NAME('xxx') from table
都是不好的,如果是自定义函数,在函数中进行了大量查询,那就更糟糕了,在数据量大的时候会很慢。
因为函数每走一条记录,都会执行函数里相关表的全表扫描,而关联表只扫一次
所以,尽量以关联表的形式查询吧,当然,关联条件一定要写全,否则形成笛卡尔连接就更慢了。
以上是各人理解,如果不对,请说明指出