Is it possible to filter user queries based on cost?
GaryG
Administrator
Will there be functionality to filter queries at the user level or resource pool level that checks for the cost of the query? Like, lets says when the functionality is turned on, vertica internally checks for explain json and checks the cost if greater than x and stops the query from executing
0
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.