我正在学习查询优化。通常,在JOIN之前应用PROJECT和SELECT将为您提供更好的性能。我的问题是:
在应用JOIN操作或应用JOIN操作之前应用PROJECT操作之前是否有任何应用SELECT操作的情况会更好?
感谢您的回复。
答案 0 :(得分:1)
“推送选择”是一个基本的优化策略,可以减少需要完成的I / O数量。
例如,包含sargable谓词的选择(如果在连接下推送)将通过减少外部关系中的元组数量来有效减少I / O数量(嵌套循环连接需要|R|+|R|*|Q|
I / Os)。
推迟选择的主要缺点是无法使用原始关系的现有指数。决定是否推送是与连接方法的选择一起完成的。
同样,如果保留了连接所需的属性,则可以向下“推”投影。