Is there an option for Vertica to run an internal EXPLAIN plan that rejects the query plan if the cost is over a specified amount? At either a user or resource pool level? @bat@rbankula
The query optimizer uses "cost" to choose between query plans for the same query in the same context. Costs across queries and across contexts are not great indicators of run time, or other resources, even with state-of-the-art academic research. (See http://pages.cs.wisc.edu/~wentaowu/slides/ICDE-2013.pdf)
Fortunately, Vertica has a solution that works much better in practice: run the query, and if it actually exceeds resource caps, kill it. That's at the resource pool level, or you can assign the pool to a user.
Answers
The query optimizer uses "cost" to choose between query plans for the same query in the same context. Costs across queries and across contexts are not great indicators of run time, or other resources, even with state-of-the-art academic research. (See http://pages.cs.wisc.edu/~wentaowu/slides/ICDE-2013.pdf)
Fortunately, Vertica has a solution that works much better in practice: run the query, and if it actually exceeds resource caps, kill it. That's at the resource pool level, or you can assign the pool to a user.