Dpa Getting Started
Dpa Getting Started
Database Performance
Analyzer
Version 2023.2.100
This document may not be reproduced by any means nor modified, decompiled, disassembled,
published or distributed, in whole or in part, or translated to any electronic medium or other means
without the prior written consent of SolarWinds. All right, title, and interest in and to the software,
services, and documentation are and shall remain the exclusive property of SolarWinds, its affiliates,
and/or its respective licensors.
The SolarWinds, SolarWinds & Design, Orion, and THWACK trademarks are the exclusive property of
SolarWinds Worldwide, LLC or its affiliates, are registered with the U.S. Patent and Trademark Office,
and may be registered or pending registration in other countries. All other SolarWinds trademarks,
service marks, and logos may be common law marks or are registered or pending registration. All
other trademarks mentioned herein are used for identification purposes only and are trademarks of
(and may be registered trademarks) of their respective companies.
To learn about performance monitoring with DPA, SolarWinds recommends that you complete the
following tasks:
See the DPA Installation and Upgrade Guide for system requirements, planning checklists, and
installation or upgrade instructions.
Create reports to track the effects of your tuning efforts and share your progress with others.
After evaluating DPA, activate a license for each instance you want to monitor.
After you become familiar with DPA basics, learn about other DPA features.
When you have finished this guide, see Beyond Getting Started with DPA for information about other
DPA functionality.
Existing customers: Access your licensed software from the SolarWinds Customer Portal. If you need
any implementation help, contact our Support Reps.
Evaluators: Download your free 14-day evaluation from [Link]. If you need assistance
with your evaluation, contact sales@[Link].
DPA can monitor many database types, including SQL Server, Sybase, Db2, PostgreSQL, MySQL, AWS,
and Azure. This example in the DPA Getting Started Guide shows you how to register an Oracle
database with a manually created monitoring user. For information about registering other types of
database instances, see Register a database instance for monitoring in the DPA Administrator Guide.
2. Edit the script to update the user name and password values.
3. Connect to the Oracle database as a user with the SYSDBA role (such as SYS), and run the script.
Connection
Required fields
method
Direct connect l Enter the host name or IP address of the server that hosts the
database instance.
l Verify or update the port used for the connection. The default port
is 1521.
l Specify the SID (System Identifier) or Service name of the
database instance.
TNS connect In the TNS descriptor box, enter everything after NAME= in the
descriptor [Link] file. The beginning (DESCRIPTION= is necessary. For
example:
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL =
TCP)(HOST = [Link])(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = myserver)))
TNS name In the TNS name box, enter the SERVICE_NAME value from the
[Link] file.
b. Under SSL mode (if SSL mode is enabled), specify the type of secure socket layer (SSL)
connections established between the instance and the DPA server.
SSL connections are not available if LDAP is selected as the Connection method.
Validate server SSL is enabled. The client verifies the certificate chain and also
certificate and verifies that the server hostname matches its certificate's Subject
match hostname Alternative Name or Common Name (CN).
c. Enter the user name and password of the monitoring user created previously. Or, if DPA is
configured to use CyberArk, enter the CyberArk credentials query for the monitoring user.
d. Click Next.
DPA validates the connection information and the privileges of the monitoring user. If the
validation is successful, the Instance options pane opens.
5. Specify the following Instance options.
The instance name and group membership can be changed after registration.
a. If your repository database is Oracle, choose the tablespace in the repository database to
store DPA performance data for this monitored instance.
By default, the performance data is stored in the default tablespace of the repository user.
However, data for monitored instances can be stored in separate tablespaces.
b. If the monitored instance contains the Oracle E-Business Suite, specify whether you want
DPA to collect additional information about the suite.
DPA can capture Oracle E-Business data to identify the screens, modules, and users
generating the database requests. This gives you increased visibility into the causes of
performance problems in the Oracle E-Business Suite, Oracle Enterprise Resource
Planning (ERP), and Oracle Applications environments.
c. Enter the name that DPA will display to identify this database instance.
The Display name field defaults to the name retrieved from the database instance.
d. (Optional) If you have manually created instance groups, you can assign this database
instance to one of the groups.
e. (Optional) If you have existing alert groups, you can assign this database instance to one
or more groups.
If no alert groups exist, or the existing groups do not match this instance's database
type, this option is not shown.
f. Click Next.
6. Review the information on the Summary page. Click Back if you need to make changes. When
the information is correct, click Register.
When DPA is monitoring an instance, the home page shows summary information about the instance.
For the first two hours after you register the instance, data is shown only on the home page. After two
hours, all DPA pages are populated.
Click the instance name to view detailed information about that instance. For more information, see
Investigate a SQL statement causing long waits.
DPA provides a unique approach to investigating performance issues. Use the wait-based analysis
approach in DPA to focus on issues that provide the greatest performance improvements.
The agentless architecture in DPA uses less than one percent of database resources, so it can
monitor production systems without affecting their performance.
Wait-based analysis
Traditional database monitoring tools focus on database health metrics to troubleshoot performance
problems. DBAs can spend hours tuning the database to improve these metrics, only to find that their
changes had little or no effect on performance.
Instead of database health metrics, DPA focuses on application and end-user wait times. DPA
graphically shows you where the longest wait times are, and it also identifies time periods when wait
times that are longer than expected (anomalies). You can drill in to find the root cause of a
performance issue and get advice on how to fix it. When you use DPA to find and fix the issues that
are directly responsible for long wait times, you can deliver performance improvements that get
noticed.
Use the DPA home page to quickly identify database instances with high wait times or anomalies, and
then drill down for details.
DPA uses the predominant type of wait and other information to automatically select the most
relevant statistics, blocking, plan, and metrics charts. When you scroll down to view these charts, the
Top Waits chart remains visible so you can correlate query wait times with other events during the
same time period. This information provides the context you need to identify the root cause of
complex performance problems.
Anomaly detection
DPA uses an anomaly detection algorithm to identify unexpected increases in wait time. During
certain time periods, high wait times might be normal. DPA uses historical data to "learn" what normal
is and makes predictions based on this data. When wait times for a time period are significantly
higher than expected, DPA reports an anomaly.
The problem
Users are complaining about the performance of an application developed in-house. The performance
problems always occur around 2 PM, during core business hours.
The investigation
1. From the DPA home page, click the database instance that the application runs against.
The Top SQL Statements trend chart shows the 15 SQL statements with the highest wait times
for the past 31 days.
2. Click a bar that represents a day when users experienced slow performance.
The chart shows the top SQL statements for each hour. During the 2 PM hour, one SQL
statement caused significantly longer waits than all the others.
3. Point to that segment in the bar to display additional information about the SQL statement. Note
the SQL hash.
4. In the chart legend, click the hash value that represents the SQL statement.
The Query Detail page displays DPA's analysis of the query performance, including the types of
waits, query advisors, and the most relevant charts. By default, the time period is the same as
the period that you selected on the trends chart.
5. To make this statement easier to identify in charts and reports, name the SQL statement:
a. In the upper-right corner, click SQL Properties.
b. In the SQL Properties dialog, enter the name and click OK.
Legends and reports now identify the SQL statement by name instead of by hash value.
6. Look at the Top Waits chart to see what type of waits are causing delays.
The chart shows that this SQL statement spends most of its time in Memory/CPU waits.
7. Click the information icon next to the wait type in the legend to see more information about
Memory/CPU waits.
DPA provides detailed information about this wait type, including possible solutions.
8. In the Query Advisors section, notice that DPA's analysis shows that a full table scan is being
performed and suggests adding an index.
You can click the full table scan link for details, or click the plan hash on the right to view the
plan.
Before you add the index, you decide to find out more about where this query comes from.
9. Click the Supporting Data tab, which shows that the query is being run by Accounting.
Rather than add an index immediately, you decide to first contact the Accounting team and ask if they
can tune the SQL statement. In this scenario, the Accounting department replies that the SQL
statement cannot be changed. With this information, you decide to add the index.
After you add the index, you can add an annotation to let the rest of the team know what
changed and to help determine whether the change is effective.
The new index improves the execution time of the SQL statement, and users no longer complain
about slow performance when it runs.
Next steps
l To make sure this SQL statement doesn't cause problems in the future, you can add an alert to
notify you if the average wait time for this statement increases.
l You can create a report to track wait times and determine if your tuning efforts were effective.
l For other examples of using DPA to investigate a performance issue, see:
o Investigate an increase in wait time with DPA
The problem
The wait time for a SQL statement that runs regularly has increased significantly.
The investigation
1. From the DPA home page, click the database instance that the SQL statement runs against.
2. In the Top SQL Statements trend chart legend, click the SQL statement's name or hash value.
The Query Details page shows the wait times for the past 30 days. You can see that the wait
time started to increase around April 23.
4. On any chart, click the bar that represents April 23 to see more details about that day.
The Top Waits and Statistics charts confirm that the wait times started increasing during the
hour that the plan changed. You can also see that charts in the Instance Resource Metrics
section don't indicate any resource pressure.
After determining the root cause, you can click the hash values in the Plans section to display each
plan and find out what changed.
Learn more
Learn more about the DPA approach to investigating performance issues. For other examples of
using DPA to investigate a performance issue, see:
l Investigate an application performance problem with DPA
l Investigate a wait time anomaly with DPA
The problem
When you click a database instance from the DPA home page, DPA displays the Anomaly Detection
chart below the Top SQL Statements chart. In this example, the chart shows that DPA detected
critical anomalies for January 24.
The investigation
1. On the Anomaly Detection chart, click the bar that represents January 24.
The one-day Anomaly Detection chart shows that the anomaly occurred during the 2 AM hour.
3. Click the name of the COMMIT TRAN SQL statement to open the Query Details page, which
shows detailed information about that SQL statement's performance during the selected time
period (2:00 AM to 3:00 AM in this case).
Notice that the predominant wait type during that hour is HADR_SYNC_COMMIT. This wait
indicates that the primary AG replica is waiting for secondary replicas to commit their data. The
most likely issue is that there are slowdowns within the AG environment.
4. To get an idea of what is normal for COMMIT TRAN, click the date control in the top center of
the screen and choose Last 90 Days.
The chart displays wait times for the COMMIT TRAN SQL statement during the last 90 days.
Based on this data, your team uses SolarWinds SAM to investigate further, and you identify network
issues between the primary and replica databases as the underlying cause of the anomalies.
You also configure a Database Instance Wait Time anomaly alert to notify you when anomalies are
detected.
Learn more
Learn more about the DPA approach to investigating performance issues. For other examples of
using DPA to investigate a performance issue, see:
l Investigate an application performance problem with DPA
l Investigate an increase in wait time with DPA
A previous example showed how to use DPA to resolve performance problems that were caused by a
long-running SQL statement. This example adds an alert to notify the DBA group if the average
execution time of that SQL statement is above the specified threshold. If this alert is triggered, the
team can stop the query before end users notice a performance problem.
6. Enter a unique name, select the execution interval, and enter the email notification text.
SolarWinds recommends an execution interval of at least 10 minutes. This allows time for
valid samples and prevents unnecessary alerts from a single slow execution.
7. Select the database instance that the SQL statement runs against.
d. Click OK. The hash value of the SQL statement is displayed in the SQL Hash field.
9. Specify the thresholds for each alert level you want to enable.
In this example, a High alert is triggered if the average wait time of the SQL statement during an
execution interval is 30 seconds or more.
10. Select the person or group who gets notified when an alert level is triggered and when the alert
is broken. (The alert status is set to Broken if an error occurs during execution.)
If you have not added the person or group as a contact in DPA, click Add Contact or Add
Contact Group. See Create contacts and contact groups in the DPA Administrator Guide.
11. Click Test Alert to verify that no errors occur when the alert is executed.
12. Click Save.
The following example creates a report to track wait types for a specific SQL statement. If you made
changes to reduce a specific type of wait for a SQL statement, you can use this report to determine if
your tuning efforts were effective.
b. Enter part of the wait name (for example, scattered), and click Search.
The Search Results section lists all waits that match your search criteria.
7. Under Dates to Display, specify the dates that the report should include.
In this example, the date range is the current month, and the report includes only weekdays.
The Data Range at the bottom of this section shows the time period for which data is
available.
Report Enter a unique name to identify this report in the report list.
Name
Report Title (Optional) Enter a title to display at the top of the report. If you leave
this field blank, the report title defaults to the report type, database
instance, and time period.
9. In the New Report section at the top of the window, click Display Report.
The report opens. In this example, the drop in wait times after September 7 shows that the
tuning efforts were effective.
You can view the report from the Reports tab at any time, or schedule the report to run automatically
and be emailed to a group of recipients.
If your DPA server is not connected to the Internet, you can activate your licenses offline.
1. Complete the following steps to retrieve your license activation key from the Customer Portal.
If you are evaluating DPA and have received a license activation key from a SolarWinds
representative, continue with step 2.
a. Log in to the SolarWinds Customer Portal.
b. Choose Licenses > Manage Licenses.
c. Locate the license, and expand it.
d. Copy the activation key.
2. On the DPA home page, click License Management. Then click License Manager.
3. Click Enter Activation Key.
Unactivated licenses can be activated later. You can reuse an activation key on a different
DPA server and activate remaining licenses there.
When you activate a license, DPA automatically allocates the license to a registered database
instance if you have enough licenses to monitor all registered instances in that license category. If
you do not have enough licenses to monitor all registered instances, you must manually allocate
licenses to the instances you want to monitor.
Integrating DPA with the SolarWinds Platform expands the information available in the SolarWinds
Platform Web Console, making it easier to determine the root cause of performance problems. You
can view database instance information alongside other environmental factors to get a more
comprehensive view of issues affecting users and your IT infrastructure.
After integration, the SolarWinds Platform displays DPA-specific resources that poll information
directly from DPA. Integration also expands the information available in other SolarWinds Platform
resources. Information from DPA, such as database wait time, improves your ability to troubleshoot
slow response times or pinpoint database instances that need additional resources.
If you have SAM, integration with DPA adds views and resources that are available only with
integration. For example, you can see which applications are querying a database, and then click
through for information about response time.
This information gives you a storage-centric perspective of database performance and helps
you determine if the root cause of performance problems is in the storage object or the
database.
l Build SolarWinds Platform alerts and reports using information from DPA
You can create alerts in the SolarWinds Platform Web Console that are triggered by data
collected from database instances. You can also select DPA resources when you create reports
in the SolarWinds Platform Web Console.
l Include DPA data in Performance Analysis (PerfStack™) dashboards
When you include DPA metrics with metrics from other SolarWinds Platform products,
PerfStack dashboards can show how queries and database wait times relate to application and
infrastructure performance. Both DBAs and non-DBAs can use DPA data in PerfStack to answer
the question "Is it the database or the application?"
If you have multiple SolarWinds Platform products installed, SolarWinds does not recommend
installing DPA and the SolarWinds Platform products on the same server. For more
information, see Requirements for the DPA Integration Module.
You can also connect with the SolarWinds DPA user community on THWACK, where you'll find
training videos, blog posts, and information about what the DPA team is working on.