An age-old question when it comes to staffing a DBA group is how to determine the right number of DBAs required to keep your organization’s databases online and operating efficiently.
Many organizations try to operate with the minimal number of DBAs that they can. The general idea here is that the fewer staff members you hire, the lower overall cost will be. However, that assumption is probably not entirely true. An overworked DBA staff can make mistakes that cause downtime and operational problems far in excess of the salary requirements of an additional DBA.
At any rate, I have yet to come across a shop that has a scientific approach to determine the optimal number of DBAs to employ or when it is time to add a DBA. Even so, determining how many DBAs you need is not a precise science. It depends on many factors. Let’s take a look at some of the most pertinent ones.
Number of databases. The more databases that need to be supported, the more complex the job of database administration becomes. Each database needs to be designed, implemented, monitored for availability and performance, backed up, and administered. There is a limit to the number of databases that an individual DBA can control.
Size of the databases. The larger the databases that need to be supported, the more difficult the job of database administration becomes. A larger database takes longer to create, maintain, and tune. And confusion can arise when SQL takes longer to execute—causing the DBA to spend more time working with developers to tune SQL.
Number of users. As additional users are brought online, optimal database performance becomes more difficult to ensure. Additionally, as the number of users increases, the volume of problems and calls increases, further complicating the DBA’s job.
Number of applications. A single database can be utilized by numerous applications. Indeed, one of the primary benefits of the DBMS is that it enables the sharing of data across an organization. As more applications are brought online, additional pressure is exerted on the database in terms of performance, availability, and resources. As more applications are brought online, more DBAs may be required to support the same number of databases.
Service-level agreements (SLAs). The more restrictive the SLA, the more difficult it becomes for the DBA to deliver the service. For example, a service-level agreement requiring a sub-second response time for transactions is more difficult to support than an agreement requiring a three-second response time.
Availability requirements. Database administration becomes easier if databases have scheduled downtime. Some DBA tasks either require an outage or are easier when an outage can be taken. The need to support online and web transactions drives the requirement for 24×7 database availability. But 24×7 availability can be incompatible with some DBA tasks.
Impact of downtime. The greater the financial impact of an unavailable database, the greater the pressure on the DBA to assure greater database availability.
Performance requirements. As the requirements for database access become more performance oriented, database administration becomes more complicated.
Type of applications. The type of applications supported has a direct bearing on the number of DBAs required. The DBMS and database needs of a mission-critical application differ from those of a non-mission-critical application. Mission-critical applications are more likely to require constant monitoring to ensure availability. Likewise, an OLTP application has different characteristics and administration requirements than an analytical application. OLTP transactions are likely to be of shorter duration than analytical queries; OLTP applications perform both read and write operations whereas analytical applications are predominantly read-only. Each has administration challenges that require different DBA procedures.
Volatility. The frequency of database change requests is an important factor in the need for additional DBAs. A static database environment requiring few changes will not require the same level of DBA effort as a volatile, frequently changing database environment. Unfortunately, the level of volatility for most databases and applications tends to change dramatically over time. It’s usually very difficult to ascertain how volatile an overall database environment will be over its lifetime.
DBA staff experience. The skill of the existing DBA staff affects the need for additional DBAs. A highly skilled DBA staff will accomplish more than a novice team. Skills, more than experience, dictate DBA staffing requirements. A highly skilled DBA with two years of experience might easily outperform a ten-year veteran who is burned out and unmotivated.
Programming staff experience. If the application developers are not highly skilled in database and SQL programming, the DBAs will need to be more involved in the development process. DBAs will be needed for tasks such as composing complex SQL, analyzing SQL and application code, debugging, tuning, and ensuring connectivity. As the experience of the programming staff increases, the complexity of DBA requirements decreases.
End user experience. When end users access databases directly with ad hoc SQL, their skill level has a direct impact on the complexity of DBA. If the end user has few SQL skills, the DBA will need to initiate more performance monitoring and tuning.
Variety of DBMSs. The more heterogeneous the environment, the more difficult it becomes to administer. For example, acquiring and maintaining expertise in both Oracle and DB2 is more difficult than gaining expertise in only one of them. Moreover, as multiple DBMSs of different types are installed, database administration becomes even more difficult. For example, a shop with IBM Db2, MongoDB, and Neo4j will have to possess relational (Db2), document (MongoDB), and graph (Neo4j) expertise.
DBA tools. Fewer DBAs will be required when an organization invests in tools that automate DBA tasks and make database administration easier. DBA tasks become less complex when more tools are available. Industry analysts have estimated that shops without DBA tools might require up to twice the number of DBAs to manage the same workload.
This list of issues notwithstanding, creating a formula that will dictate the optimal number of DBAs to employ is difficult. You will need to apply your knowledge of your environment and its requirements to arrive at any useful criteria for when to add to your DBA staff. Until a formula is created, I guess the best answer to “How many DBAs do you need?” is the one that always seems to be correct… “One more!”
How does your shop determine how many DBAs to staff?