Re-Indexing Behave Pro

Re-index Behave Pro in order to increase performance on large instances.

Alan Parkinson avatar
Written by Alan Parkinson
Updated over a week ago

Changes in Behave Pro Server 1.6.x have resolved many issues regarding database performance issues on large instances with millions of scenarios. When you upgrade to Behave Pro 1.6.x the performance boost will not take the effect immediately. You will have to perform a re-index on per project basis. Note that there is a difference between Jira's own re-index and Behave Pro re-index, they are not the same! Re-indexing is not needed for any new project created with Behave Pro 1.6.x installed. Depending on hardware and Jira project scale, performing re-index can speed up Behave Pro scenarios and test sessions up to 50 times.

Tests have been done on 9 million scenarios (including 1 million issues and 1500 projects) using Data Centre Template with Postgre SQL database. Once the re-indexing has been done as shown below, the Behave Pro only added around 150-250 milliseconds of additional load time on top of Issue View load time.

To perform re-index on your project, simply go to Project Settings -> Behave Pro -> Re-index Scenarios. It is highly recommended to perform re-index when Jira is not being used as the job can take between few seconds up to several minutes, depending on your project size and server hardware.

If you are using Test Sessions, it is recommended you perform re-index. Simply, go to Project Settings -> Manage Session Based Testing -> Re-index sessions. As mentioned previously, this is not needed for projects created with Behave Pro 1.6.x installed.

Further re-indexing is possible if you have direct access to the database. Please note that scheduling re-index job in the Jira project settings is not the same as performing re-index on database tables directly! Re-indexing database tables can improve Behave Pro performance even further. To do so, you will need to re-index (also known as optimise) the following tables in your database: AO_6797AA_FEATURE_EVENT, AO_6797AA_TEST_SESSION_EVENT, AO_6797AA_QUESTION_ENTITY, and AO_6797AA_APPROVAL_ENTITY.

Each database has its own specific set of commands. To perform re-index on Postgre SQL or Oracle SQL, simply execute the two commands below. More about Postgre SQL re-index here and Oracle version here

> REINDEX TABLE "AO_6797AA_FEATURE_EVENT";
> REINDEX TABLE "AO_6797AA_TEST_SESSION_EVENT";
> REINDEX TABLE "AO_6797AA_QUESTION_ENTITY";
> REINDEX TABLE "AO_6797AA_APPROVAL_ENTITY";

Re-indexing on Microsoft SQL Server can be done via Management Studio, more information here
Re-indexing on MySQL depends on MySQL internal integration with the database storage engine, more information here 

Did this answer your question?