Staffing the DBA organization is not a simple matter. Several non trivial considerations must be addressed, including the size of the DBA staff and the reporting structure for the DBAs.
One of the most difficult things to determine is the optimal number of DBAs required to keep an organization's databases online and operating efficiently. Many organizations try to operate with the minimal number of DBAs on staff; the idea being that fewer staff members lowers cost. However, that assumption may not be 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.
Determining how many DBAs is optimal is not a precise science. It depends on many factors, including:
Number of databases. The more databases to be supported, the more complex the DBA job 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 to be supported, the more difficult the DBA job. A larger database takes longer to create, maintain, and tune. In addition, more potential for confusion arises 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 potential for increase in the volume of problems and calls increases, further complicating the DBA's job.
Number of applications. 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.
Type of Applications. The administrative needs of mission-critical applications differ from non-mission-critical applications. Mission-critical applications are more likely to require constant monitoring to ensure availability. Likewise, an OLTP application has different DBA requirements than an OLAP application. Each has administration challenges that require different DBA procedures and depending on the mix, can drive up the needed number of DBAs.
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 sub-second response time for transactions is more difficult to support than an agreement requiring one-second response time.
Availability requirements. Database administration becomes easier if databases have an allowable period of scheduled downtime. Some DBA tasks either require an outage, or are easier when an outage can be taken. 24/7 considerations, such as supporting Web applications, drive the need for higher availability- and can increase the number of DBAs needed.
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, DBA complexity rises.
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, making it 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 outperform a veteran who is burned out or unmotivated.
Programming staff experience. If the application developers are not highly skilled in SQL programming, DBAs will need to be more involved in the development process; for example, in such tasks 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 low 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. As multiple DBMSs of different types are installed, DBA becomes more difficult. A shop with DB2 and IMS will have to possess both relational and hierarchical expertise.
DBA tools. Tools that automate DBA tasks and make database administration easier can reduce DBA staffing needs. DBA tasks become less complex with the more tools available and the degree to which they are integrated.
This list of issues notwithstanding, creating a formula that will dictate the optimal number of DBAs to employ is difficult. No industry standard calculation exists and each organization will place different emphasis on different criteria. At any rate, coming up with a formula that works for your shop can be a worthwhile endeavor to add rigor to your DBA staffing decisions.