DATABASE ADMINISTRATION

37
DATABASE ADMINISTRATION DATABASE ADMINISTRATION Pertemuan ke-5

description

DATABASE ADMINISTRATION. Pertemuan ke-5. Performance Management source : Database Administration the complete guide to practices and procedures chapter 9 by. Craig S. Mullins. - PowerPoint PPT Presentation

Transcript of DATABASE ADMINISTRATION

Page 1: DATABASE ADMINISTRATION

DATABASE ADMINISTRATIONDATABASE ADMINISTRATIONPertemuan ke-5

Page 2: DATABASE ADMINISTRATION

Performance Management

source : Database Administrationthe complete guide to practices and procedureschapter 9by. Craig S. Mullins

Page 3: DATABASE ADMINISTRATION

• When non-DBAs think about what it is that a DBA does, performance monitoring and tuning are quite frequently the first tasks that come to mind.

• Almost anyone who has come in contact with a computer has experienced some type of performance problem. Moreover, relational database systems have a notorious reputation (mostly undeserved) for poor performance.

• This chapter, as well as the following three, will discuss performance monitoring, tuning, and management within the context of database administration.

• This chapter defines performance, discusses the difference between performance monitoring and performance management, looks at managing service levels, and defines three specific subsets of database performance management.

Page 4: DATABASE ADMINISTRATION

Defining Performance • Most organizations monitor and tune the

performance of their IT infrastructure. • This infrastructure encompasses servers, networks,

applications, desktops, and databases. • However, the performance management steps

taken are usually reactive. • A user calls with a response-time problem: A

tablespace runs out of disk storage space in which to expand. The batch window extends into the day. Someone submitted a "query from hell" that just won't stop running.

• Those of you in the trenches can relate—you've been there, done that.

Page 5: DATABASE ADMINISTRATION

• All of this discussion is useful, but it begs the question: Just what do we mean by database performance? You need a firm definition of database performance before you can plan for efficiency.

• Think, for a moment, of database performance using the familiar concepts of supply and demand.

• Users request information from the database. • The DBMS supplies information to those requesting it. • The rate at which the DBMS supplies the demand for

information can be termed "database performance" However, this definition captures database performance only in a most simplistic form.

Page 6: DATABASE ADMINISTRATION

• Five factors influence database performance: – workload, – throughput, – resources, – optimization, – and contention

Page 7: DATABASE ADMINISTRATION

• The workload is a combination of online transactions, batch jobs, ad hoc queries, data warehousing analysis, and system commands directed through the system at any given time.

• Workload can fluctuate drastically from day to day, hour to hour, and even minute to minute.

• Sometimes workload is predictable (such as heavy month-end processing of payroll, or very light access after 7:00 P.M., when most users have left for the day), whereas workload is very unpredictable at other times.

• The overall workload has a major impact on database performance.

Page 8: DATABASE ADMINISTRATION

• Throughput defines the overall capability of the computer to process data.

• It is a composite of I/O speed, CPU speed, parallel capabilities of the machine, and the efficiency of the operating system and system software.

• resources of the system is the hardware and software tools at the disposal of the system.

• Examples of resources include the database kernel, disk storage devices, random access memory chips, cache controllers, and microcode.

Page 9: DATABASE ADMINISTRATION

• The fourth defining element of database performance is optimization.

• All types of systems can be optimized, but relational databases are unique in that query optimization is primarily accomplished internal to the DBMS.

• However, many other factors need to be optimized (such as SQL formulation and database parameters) to enable the database optimizer to create the most efficient access paths

Page 10: DATABASE ADMINISTRATION

• When the demand (workload) for a particular resource is high, contention can result.

• Contention is the condition where two or more components of the workload are attempting to use a single resource in a conflicting way (e.g., dual updates to the same piece of data).

• As contention increases, throughput decreases.

Page 11: DATABASE ADMINISTRATION

Monitoring vs. Management • Even many of the supposedly proactive steps taken

against completed production applications might be considered reactive.

• A change to a completed application that requires code to be rewritten cannot reasonably be considered proactive.

• A proactive approach would have involved correcting the problem before completing the application

• Unfortunately, the DBA usually attacks performance in a reactive manner.

• A user calls with a response time problem. A database runs out of space. The batch window extends into the day.

• The problem has happened and now it needs to be remedied. Such activity is purely reactive.

Page 12: DATABASE ADMINISTRATION

• Some event-driven tools can be used to make performance tuning easier by automatically taking predefined actions when prespecified alerts are triggered.

• This is the first step toward performance management. • Managing performance differs from monitoring

performance because it combines monitoring with a detailed plan for resolving problems when they arise.

• Performance management consists of three specific components that need to be performed in conjunction with each other: monitoring, analysis, and correction, as shown in . Figure 9-1

• Monitoring is the first component of performance management. It consists of scanning the environment, reviewing the output of instrumentation facilities, and generally watching the system as it runs. Monitoring is the process of identifying problems.

Page 13: DATABASE ADMINISTRATION

Figure 9-1. The components of performance management

Page 14: DATABASE ADMINISTRATION

• Analysis is the second component of performance management.

• A monitoring task can generate hundreds or thousands of messages, or reams and reams of paper reports.

• A monitor collects the pertinent information for making performance tuning and optimization decisions, but it is essentially dumb.

• A monitor cannot independently make decisions based on the information it has collected.

• This requires analysis—and analysis typically is performed by a skilled technician like a DBA.

Page 15: DATABASE ADMINISTRATION

Service-Level Management

• Service-level management (SLM) is the "disciplined, proactive methodology and procedures used to ensure that adequate levels of service are delivered to all IT users in accordance with business priorities and at acceptable cost."

• In order to effectively manage service levels, a business must prioritize its application and identify the amount of time, effort, and capital that can be expended delivering service for those applications

Page 16: DATABASE ADMINISTRATION

• A service level is a measure of operational behavior.

• SLM ensures that applications behave accordingly by applying resources to those applications based on their importance to the organization.

• Depending on the needs of the organization, SLM can focus on availability, performance, or both.

• In terms of availability, the service level might be defined as "99.95% uptime from 9:00 A.M. to 10:00 P.M. on weekdays." Of course, a service level can be more specific, stating "average response time for transactions will be two seconds or less for workloads of 500 or fewer users."

Page 17: DATABASE ADMINISTRATION

• For a service-level agreement (SLA) to be successful, all parties involved must agree on stated objectives for availability and performance.

• The end users must be satisfied with the performance of their applications, and the DBAs and technicians must be content with their ability to manage the system to the objectives.

• Compromise is essential to reach a useful SLA. • In practice, though, many organizations do not institutionalize SLM.

When new applications are delivered, there may be vague requirements and promises of subsecond response time, but the prioritization and budgeting required to assure such service levels are rarely tackled unless the IT function is outsourced.

• Internal IT organizations are loath to sign SLAs because any SLA worth pursuing will be difficult to achieve. Furthermore, once the difficulties of negotiating an SLA are completed, the business could very well turn around and outsource the SLA to a lower-cost provider than the internal IT group.

Page 18: DATABASE ADMINISTRATION

• The failure of SLM within most businesses lies with both IT organizations and business users.

• The business users frequently desire better service but are not willing to make the effort to prioritize their needs correctly or to pay additional cash to achieve better service.

• Another potential problem with SLM is the context of the service being discussed. Most IT professionals view service levels on an element-by-element basis.

• In other words, the DBA views performance based on the DBMS, the SA views performance based on the operating system or the transaction processing system, and so on.

• SLM properly views service for an entire application. However, it can be difficult to assign responsibility within the typical IT structure.

• IT usually operates as a group of silos that do not work together very well. Frequently, the application teams operate independently from the DBAs, who operate independently from the SAs, as shown in Figure 9-3.

• When an application team has staffed an application DBA function, that team may not communicate effectively with the corporate DBA silo. These fractured silos make cooperation toward a common application service level difficult.

Page 19: DATABASE ADMINISTRATION

Figure 9-3. IT silos in a fractured environment

Page 20: DATABASE ADMINISTRATION

• To achieve end-to-end SLM, these silos need to be broken down. The various departments within the IT infrastructure need to communicate effectively and cooperate with one another.

• Failing this, end-to-end SLM will be difficult, if not impossible, to implement.

• SLM is a beneficial practice: A robust SLM discipline makes performance management predictable. SLM manages the expectations of all involved.

• Without an SLA, how will the DBA and the end users know whether an application is performing adequately? Not every application can, or needs to, deliver subsecond response time.

• Without an SLA, business users and DBAs may have different expectations, resulting in unsatisfied business executives and frustrated DBAs. Not a good situation.

Page 21: DATABASE ADMINISTRATION

• With SLM in place, DBAs can adjust resources by applying them to the most mission-critical applications as defined in the SLA.

• Costs will be controlled and capital will be expended on the portions of the business that are most important to the business.

Page 22: DATABASE ADMINISTRATION

Types of Performance Tuning

• A database application requires constant interaction between disparate computing resources in order to operate efficiently and according to specifications.

• Realistically, though, the tuning of a database application can be broken down into three components: system tuning, database tuning, and application tuning.

• Indeed, all these areas are related, and certain aspects of tuning require an integrated approach. However, for clarity, we'll discuss these areas separately.

Page 23: DATABASE ADMINISTRATION

System Tuning • System tuning occurs at the highest level

and has the greatest impact on the overall health of database applications because every application depends on the system.

• For the purposes of this discussion, we will define the system as comprising the DBMS itself and all of the related components on which it relies.

• No amount of tuning is going to help a database or application when the server it is running on is short on resources or improperly installed.

Page 24: DATABASE ADMINISTRATION

• The DBMS can and must be tuned to assure optimum performance.

• The way in which the DBMS software is installed, its memory, disk, CPU, other resources, and any configuration options can impact database application performance.

• The other systems software with which the DBMS interacts includes the operating system, networking software, message queueing systems, middleware, and transaction processors.

• System tuning comprises installation, configuration, and integration issues, as well as ensuring connectivity of the software to the DBMS and database applications.

Page 25: DATABASE ADMINISTRATION

Database Tuning

• Performance can be impacted by the physical design of the database, including normalization, disk storage, number of tables, index design, and use of DDL and its associated parameters.

• The physical location of database files on disk systems will have an impact on the performance of applications accessing the data.

• As more data is stored on the same disk device, the possibility of performance degradation increases.

Page 26: DATABASE ADMINISTRATION

• However, design is not the only component of database performance. The organization of the database will change over time.

• As data is inserted, updated, and deleted from the database, the efficiency of the database will degrade. Moreover, the files that hold the data may need to expand as more data is added.

• Perhaps additional files, or file extents, will need to be allocated.

• Both disorganization and file growth can degrade performance.

• Indexes also need to be monitored, analyzed, and tuned to optimize data access and to ensure that they are not having a negative impact on data modification.

Page 27: DATABASE ADMINISTRATION

Application Tuning • The application itself must be designed appropriately and

monitored for efficiency. • Most experts agree that as much as 75% of performance

problems are caused by improperly coded applications. • SQL is the primary culprit; coding efficient SQL statements can

be complicated. • Developers need to be taught how to properly formulate,

monitor, and tune SQL statements. • However, not all application problems are due to improperly

coded SQL. • The host language application code in which the SQL has

been embedded may be causing the problem. • For example, Java, COBOL, C++, or Visual Basic code may be

inefficient, causing database application performance to suffer.

Page 28: DATABASE ADMINISTRATION

Performance Tuning Tools • Database tools are helpful to effectively manage

database performance. • Some DBMS vendors provide embedded options and

bundled tools to address database performance management.

• However, these tools are frequently insufficient for large-scale or heavily used database applications.

• Fortunately, many third-party tools will effectively manage the performance of mission-critical database applications.

• Tools that enable DBAs to tune databases fall into two major categories: performance management and performance optimization.

• Many different types of performance management tools are available.

Page 29: DATABASE ADMINISTRATION

• Performance monitors enable DBAs and performance analysts to gauge the performance of applications accessing databases in one (or more) of three ways: real time, near time (intervals), or based on historical trends. The more advanced performance monitors are agent-based.

• Performance estimation tools provide predictive performance estimation for entire programs and SQL statements based on access paths, operating environment, and a rules or inference engine.

• Capacity planning tools enable DBAs to analyze the current environment and database design and perform "what-if" scenarios on both.

• SQL analysis and tuning tools provide graphical and/or textual descriptions of query access paths as determined by the relational optimizer. These tools can execute against single SQL statements or entire programs.

• Advisory tools augment SQL analysis and tuning tools by providing a knowledge base that provides tips on how to reformulate SQL for optimal performance. Advanced tools may automatically change the SQL (on request) based on the coding tips in the knowledge base.

• System analysis and tuning tools enable the DBA to view and change database and system parameters using a graphical interface (e.g., cache and/or bufferpool tuning, log sizing).

Page 30: DATABASE ADMINISTRATION

• In the performance optimization category, several tools can be used to tune databases. – Reorganization tools automate the process of rebuilding

optimally organized databases. Databases can cause performance problems due to their internal organization (e.g., fragmentation, row ordering, storage allocation).

– Compression tools enable DBAs to minimize the amount of disk storage used by databases, thereby reducing overall disk utilization and, possibly, elapsed query/program execution time, because fewer I/Os may be required. (Caution: Compression tools can also increase CPU consumption due to the overhead of their compress/decompress algorithms.)

– Sorting tools can be used to sort data prior to loading databases to ensure that rows will be in a predetermined sequence. Additionally, sorting tools can be used in place of ORDER BY or GROUP BY SQL. Retrieving rows from a relational database is sometimes more efficient using SQL and ORDER BY rather than SQL alone followed by a standalone sort of the SQL results set.

Page 31: DATABASE ADMINISTRATION

• The DBA will often need to use these tools in conjunction with one another—integrated and accessible from a central management console. This enables the DBA to perform core performance-oriented and database administration tasks from a single platform

• Many DBMS vendors provide solutions to manage their databases only; for example, Oracle provides Oracle Enterprise Manager and Sybase provides SQL Central for this purpose. Third-party vendors provide more robust options that act across heterogeneous environments such as multiple different database servers or operating systems.

• In general, it is wise to use the DBMS vendor solution only if your shop has a single DBMS. Organizations with multiple DBMS engines running across multiple operating systems should investigate the third-party tool vendors.

Page 32: DATABASE ADMINISTRATION

DBMS Performance Basics

• We have defined database performance and discussed it from a high level.

• Before we delve into the specifics of system, database, and application performance, let's examine some rules of thumb for achieving your DBMS-related performance goals.

Page 33: DATABASE ADMINISTRATION

• Do not over-tune. Most DBAs are more than happy to roll up their sleeves and get their hands dirty with the minute technical details of the DBMS. Sometimes this is required. However, as a DBA, you should always keep in mind the business objectives of the databases and applications you manage. It is wise to manage performance based on the expectations and budget of the business users. Even though it might be an interesting intellectual challenge for you to fine-tune a query to its best performance, doing so may take too much time away from your other duties. It is best to stop tuning when performance reaches a predefined service level for which the business users are willing to pay.

• Remain focused. As a DBA, you should understand the goal for each task you perform and remain focused on it. This is important because the DBMS is complex, and when you are tuning one area, you might find problems in another. If so, it is best to document what you found for later and continue with the tuning task at hand. Furthermore, by jumping around trying to tune multiple things at once, you will have no idea of each task's impact on the environment.

Page 34: DATABASE ADMINISTRATION

• Do not panic. The DBA is expected to know everything about the DBMS he manages. However, this is an unreasonable expectation. "I don't know, but I'll find out" is one of the most important phrases in your communications arsenal. A good DBA knows where to look for answers and who to call for help.

• Communicate clearly. Communication is key to assuring properly tuned, high-performance database systems. The DBA must be at the center of that communication, coordinating discussions and workload between the business users, programmers, managers, and SAs. Furthermore, the world of IT in general, and database technology in particular, sometimes uses a language all its own. Many similar and confusing terms are thrown about, and folks are expected to understand what they mean. Be sure to clearly define even basic terms so that you're all speaking the same language.

Page 35: DATABASE ADMINISTRATION

• Accept reality. Many organizations talk about being proactive but in reality have very little interest in stopping performance problems before they happen. Yet, every organization is interested in fixing performance problems after the problems occur. This can be a frustrating environment for the DBA, who would rather set up preventative maintenance for the DBMS environment. Alas, this requires budget, time, and effort—all of which are in short supply for strapped IT organizations. As a DBA, you must sometimes be content to accept reality and deal with problems as they occur—even when you know there are better ways of tackling performance management.

Page 36: DATABASE ADMINISTRATION

Summary

• Applications that access relational databases are only as good as the performance they achieve.

• The wise organization will implement a comprehensive performance monitoring, tuning, and management environment that consists of policies, procedures, and integrated performance management tools and utilities.

Page 37: DATABASE ADMINISTRATION

Terima kasihTerima kasih