Advances in self-management capabilities are making it possible to maximize performance and prescribe changes and ongoing maintenance tasks with fewer demands on IT staff.
With IT hiring flat, it's no secret that organizations have been under downward pressure to increase IT efficiency. This has lead to the rapid adoption of technologies and applications that help systems administrators do more with less. Indeed, automation has become a serious business, particularly for software vendors who rely on a database as an integral component of their solution.
In direct opposition to the IT labor trend, the amount of digital information collected and stored each year keeps growing at an exponential rate. In 2009 it grew 62 percent, to about 800,000 petabytes, and it will grow by a factor of 44 by 2020, says IDC1. To manage these much larger and more complex data ecosystems companies are turning to autonomic systems that can perform diagnostics, tuning, maintenance and deployment—among other things—with minimal human intervention.
These self-managing databases can diagnose conditions and make adjustments to optimize performance, availability and resource utilization, ensuring that they are efficient and meet service-level agreements. And because they can do this without increasing IT labor costs, they provide a very low total cost of ownership as compared to traditional databases.
Essential for Embedded, Small and Medium Businesses
The hands-off nature of self-managing database systems make them a handy investment for any organization but there are two common scenarios in which they are essential:
1. Organizations that want to embed a database in a turnkey software solution or an autonomous embedded system
2. Small and medium businesses with minimal or no dedicated IT staff
The concept of an embedded database is inherently zero maintenance. Devices such as kiosks, parking meters and some consumer electronics are deployed with embedded database applications that will never be monitored or managed by an administrator. In other cases, ISVs create and sell software applications that are wholly and indefinitely self-sustaining and self-contained.
Because self-managing database systems are inherently zero maintenance, they are a perfect solution for small businesses that don't want to hire a data management expert. This is a very common scenario today with businesses such as private practice law firms, physicians and independent retailers. Unlike traditional client-server databases, a self-managing database is very easy to set up, and once the initial set up is complete, there's very little else that will ever need to be done.
Assuring High Performance
If a database doesn't perform well, little else matters. It's no surprise, then, that performance optimization tops the list of self-managing capabilities.
Self-managing databases use a cost-based optimizer that chooses the execution strategy with the lowest estimated cost for each query upon invocation. This feature is particularly important for ISVs that market applications to a broad spectrum of customers with varying database sizes and workloads.
The cost-based optimizer in SQL Anywhere, for example, is highly adaptive and uses sophisticated algorithms to make its decisions. It utilizes a variety of metrics to estimate a query's execution cost. These metrics include the size of the available buffer pool, estimated disk transfer time, the server multiprogramming level, table cardinality and row length, and the number of tables, table functions or complex subqueries involved in the join strategy. Many of these metrics are automatically adjusted by the database server during normal operation.
Dynamic memory management
When a database system is embedded in an application as part of an installable package, other processes may be executing concurrently, such as an email client, anti-virus software, and management services. This makes it more difficult to predict the system load or the amount of memory that will be available to the database server at any point in time. To combat this, SQL Anywhere possesses several techniques designed to ensure that its buffer pool is kept appropriately sized in relation to its workload and the amount of available physical memory (see Figure 1).