Managing projects in Jira Data Center performance
Project guardrails in Jira Data Center measure the number of active (non-archived) projects in your instance. These guardrails are designed to help maintain optimal system performance and user experience.
Thresholds: | |
|---|---|
Optimal | Less than 5,250 projects |
Approaching limit | Between 5,250 and 7,000 projects |
Exceeding limit | More than 7,000 projects |
How does the project count affect performance?
Exceeding the recommended project limits can have several negative effects on your Jira Data Center instance. The main impacts include:
Increased system resource consumption
Slower permission calculations
Longer reindexing times
Decreased overall system performance
Degraded user experience, especially during searches and dashboard loading
If you have more projects than the recommended limit, you can still use Jira, but you may experience these performance issues, especially as your instance grows.
What's the recommendation?
To ensure optimal performance, you should aim to reduce the number of active projects below the guardrail limit. These are the things you can do it keep your project count number in check:
Identify projects for clean-up
Archive inactive projects
Delete unnecessary projects
Implement project retention policies
Identify projects for clean up
Reviewing projects using an SQL query
To retrieve a list of projects with the SQL query:
Copy the SQL query and run it on your database.
COPY (
WITH rank_created AS (
SELECT project,
created,
RANK() OVER (PARTITION BY I.project ORDER BY I.created DESC) AS ranking
FROM jiraissue I
),
rank_updated AS (
SELECT project,
updated,
RANK() OVER (PARTITION BY I.project ORDER BY I.updated DESC) AS ranking
FROM jiraissue I
),
count_issues AS (
SELECT project,
COUNT(*) AS "Total issues (inc. archived)"
FROM jiraissue j
GROUP BY project
),
users AS (
SELECT user_name,
lower_user_name,
email_address,
U.active,
RANK() OVER (PARTITION BY U.user_name ORDER BY D.directory_position) AS ranking
FROM cwd_user U
JOIN cwd_directory D ON U.directory_id = D.id
AND D.active = 1
)
SELECT P.pname AS "Project name",
P.pkey AS "Project Key",
U.user_name AS "Project Lead (PL)",
U.email_address AS "PL email",
U.active AS "PL account active",
RC.created,
RU.updated,
CI."Total issues (inc. archived)",
TO_TIMESTAMP(CAST(A."ENTITY_TIMESTAMP" AS BIGINT) / 1000) AS "Project created"
FROM project P
JOIN "AO_C77861_AUDIT_ENTITY" A ON "ACTION" = 'Project created'
AND A."PRIMARY_RESOURCE_ID" = CAST(P.id AS VARCHAR)
JOIN app_user AU ON AU.user_key = P."lead"
JOIN users U ON U.lower_user_name = AU.lower_user_name
AND U.ranking = 1
LEFT JOIN rank_created RC ON RC.project = P.id
AND RC.ranking = 1
LEFT JOIN rank_updated RU ON RU.project = P.id
AND RU.ranking = 1
LEFT JOIN count_issues CI ON CI.project = P.id
WHERE P.id NOT IN (
SELECT entity_id
FROM propertyentry
WHERE property_key = 'jira.archiving.projects'
)
)
TO '/tmp/csv_export.csv' (FORMAT CSV);
2. Review the returned list of projects and identify candidates for archiving or deletion.
Reviewing projects manually
You can also view projects in Jira, but this method may be time-consuming for instances with a large number of projects.
To view projects in Jira:
Go to Administration > Projects.
Use the search and filter options to identify potential candidates for archiving or deletion.
Archive inactive projects
Archiving is recommended for projects that are no longer active but may contain valuable historical data. To archive a project
Go to Administration > Projects
Find the project you want to archive
Select on the "..." menu and select Archive
Confirm the action
When you archive a project, it becomes restricted and invisible in most areas of Jira, but its data is preserved and can be restored if needed. Issues become read-only, and the project is removed from the index to improve performance.
For bulk archiving, consider using the archiving API.
Read more about archiving projects.
Delete unnecessary projects
If a project is no longer needed and contains no valuable historical data, consider deletion.
Steps to delete a project:
Go to Administration > Projects
Find the project you want to delete
Select the "..." menu and select Delete
Confirm the action
Project deletion is irreversible. Ensure you have a backup before proceeding.
For bulk deletions, use the Bulk Delete projects method.
Implement project retention policies
To prevent future accumulation of unnecessary projects, establish and enforce project retention criteria within your organization. Consider the following steps:
Define criteria for project retention (e.g., project age, last activity date, issue count).
Schedule regular reviews (e.g., quarterly) to identify projects for archiving or deletion.
Automate the process where possible using Jira's REST API.
Regularly monitor your project count to ensure it stays within the recommended limits.
Use this page to find out how you can identify archived and unarchived projects via a database SQL query.
Consider setting up alerts or scheduled reports to notify administrators when the project count approaches the guardrail limit.
Best practices for managing projects at scale
Use a project naming convention to easily identify project purpose and ownership.
Implement a project request and approval process to control project creation.
Regularly review and update project lead assignments to ensure proper ownership.
Utilize project categories to group related projects for easier management.
Consider using Jira Software's Advanced Roadmaps for a multi-project view instead of creating separate projects for related work.