SQL+JQL is designed for massive users and not for massive data

For a thousand users working in parallel for their daily work basis, SQL+JQL will perform well.

For many thousands of records, the performance could degrade a lot.

Based on our experience and after having analyzed a lot of reported users' queries, our conclusion is that SQL+JQL is very flexible, and there many alternatives to writing a query and there are great performance differences among them. I.e: we have optimized users' queries taking minutes to take a few seconds only.

Take into consideration that the underlying Jira API is always invoked and this consumes time and resources. A cache has been implemented to reduce the calls to the Jira API as much as possible, however simple queries like:

SELECT COUNT(*) FROM ISSUES WHERE JQL = <JQL query returning thousands of issues>

might take a lot of time to be answered because the ISSUES table must be populated first with all the records (thousands) before count all of them and return a simple number.

The main tricks to write the best performing queries possible are (already explained in sections before):

JQL queries perform better than SQL

The JQL table performs better than the SQL table

The built-in cache may decrease performance by 20-50%

The “Execution Plan”

Support is the key