How to Optimize Your Database Performance with Automated Tuning

by Nov 13, 2019

Categories

Tags

Administration agent-based monitoring Agentless Monitoring alert responses alert thresholds alerting Alerts Amazon Aurora Amazon EC2 Amazon RDS Amazon RDS / Aurora Amazon RDS for SQL Server Amazon Redshift Amazon S3 Amazon Web Services (AWS) Analytics application monitoring Aqua Data Studio automation availability Azure Azure SQL Database azure sql managed instance Azure VM backup Backup and recovery backup and restore backup compression backup status Backup Strategy backups big data Blocking bug fixes business architecture business data objects business intelligence business process modeling business process models capacity planning change management cloud cloud database cloud database monitoring cloud infrastructure cloud migration cloud providers Cloud Readiness Cloud Services cloud storage cloud virtual machine cloud VM clusters code completion collaboration compliance compliance audit compliance audits compliance manager compliance reporting conference configuration connect to database cpu Cross Platform custom counters Custom Views customer survey customer testimonials Dark Theme dashboards data analysis Data Analytics data architect data architecture data breaches Data Collector data governance data lakes data lineage data management data model data modeler data modeling data models data privacy data protection data security data security measures data sources data visualization data warehouse database database administration database administrator database automation database backup database backups database capacity database changes database community database connection database design database developer database developers database development database diversity Database Engine Tuning Advisor database fragmentation database GUI database IDE database indexes database inventory management database locks database management database migration database monitoring database navigation database optimization database performance Database Permissions database platforms database profiling database queries database recovery database replication database restore database schema database security database support database synchronization database tools database transactions database tuning database-as-a-service databases DB Change Manager DB Optimizer DB PowerStudio DB2 DBA DBaaS DBArtisan dBase DBMS DDL Debugging defragmentation Demo diagnostic manager diagnostics dimensional modeling disaster recovery Download drills embedded database Encryption End-user Experience entity-relationship model ER/Studio ER/Studio Data Architect ER/Studio Enterprise Team Edition events execution plans free tools galera cluster GDPR Getting Started Git GitHub Google Cloud Hadoop Healthcare high availability HIPAA Hive hybrid clouds Hyper-V IDERA IDERA ACE Index Analyzer index optimization infrastructure as a service (IaaS) infrastructure monitoring installation Integrated Development Environment interbase Inventory Manager IT infrastructure Java JD Edwards JSON licensing load test load testing logical data model macOS macros managed cloud database managed cloud databases MariaDB memory memorystorage memoryusage metadata metric baselines metric thresholds Microsoft Azure Microsoft Azure SQL Database Microsoft PowerShell Microsoft SQL Server Microsoft Windows MongoDB monitoring Monitoring Tools Monyog multiple platforms MySQL news newsletter NoSQL Notifications odbc optimization Oracle PeopleSoft performance Performance Dashboards performance metrics performance monitoring performance schema performance tuning personally identifiable information physical data model Platform platform as a service (PaaS) PostgreSQL Precise Precise for Databases Precise for Oracle Precise for SQL Server Precise Management Database (PMDB) product updates Project Migration public clouds Query Analyzer query builder query monitor query optimization query performance Query Store query tool query tuning query-level waits Rapid SQL rdbms real time monitoring Real User Monitoring recovery regulations relational databases Releases Reporting Reports repository Restore reverse engineering Roadmap sample SAP Scalability Security Policy Security Practices server monitoring Server performance server-level waits Service Level Agreement SkySQL slow query SNMP snowflake source control SQL SQL Admin Toolset SQL CM SQL code SQL coding SQL Compliance Manager SQL Defrag Manager sql development SQL Diagnostic Manager SQL Diagnostic Manager for MySQL SQL Diagnostic Manager for SQL Server SQL Diagnostic Manager Pro SQL DM SQL Doctor SQL Enterprise Job Manager SQl IM SQL Inventory Manager SQL Management Suite SQL Monitoring SQL Performance SQL Quality SQL query SQL Query Tuner SQL Safe Backup SQL script SQL Secure SQL Security Suite SQL Server sql server alert SQL Server Migration SQL Server Performance SQL Server Recommendations SQL Server Security SQL statement history SQL tuning SQL Virtual Database sqlmemory sqlserver SQLyog Storage Storage Performance structured data Subversion Support tempdb tempdb data temporal data Tips and Tricks troubleshooting universal data models universal mapping unstructured data Uptime Infrastructure Monitor user experience user permissions Virtual Machine (VM) web services webinar What-if analysis WindowsPowerShell

Optimizing database performance is one of the key roles of a database administrator. It can end up taking up the majority of their time and in some cases, become an overwhelming problem. The thing about performance issues is that they are noticeable to the database’s users.

Those users often make it a point to become noticeable to the DBAs responsible for the slow-moving systems.

Even if they have other tasks lined up today, when the performance of an important database is an issue, its resolution may be prioritized by entities outside of the control of the database team.

If a web-based application used by customers is impacted by database performance issues, you will likely be deluged with problem tickets to resolve as the help desk tries to mollify irate users. You can count on management to quickly start pressuring the DBAs for results when the business is adversely affected in this way.

The database team can expect the same type of treatment when widely-used or important in-house systems experience poor performance. In this case, the problem tickets and phone calls may be accompanied by furrow-browed executives who you haven’t seen in months hanging around and requesting status updates.

The trickle-down effects of stress and anxiety are something that most DBAs would like to avoid if at all possible.

Key Optimization Methods for Better Database Performance

SQL databases are made up of a lot of moving parts that can contribute to degraded performance. Problems in the system’s SQL queries are often at least partly to blame, and in many cases may be responsible for the bulk of performance issues that need to be addressed. Here are some of the specific areas to look at regarding a database’s SQL code.

Optimizing SELECT statements is one way to speed up database performance. This can be done in a variety of way including:

  • Using indexes on all fields that may be used in the WHERE and JOIN parts of your SQL statements;

  • Applying filters to limit the amount of data being used in the query;

  • Removing unnecessary tables to reduce processing requirements put on the database;

  • Removing calculated fields in JOIN and WHERE clauses. This may entail the modification of the table structure to store the value in a new field.

Splitting queries may be necessary when other optimization techniques do not provide the desired results. This tactic needs to be used judiciously so that the number of views used in a JOIN is minimized.

Automating and Streamlining Database Optimization

IDERA’s DB Optimizer is designed to assist DBAs to optimize their SQL code on many major DBMSs including SQL Server, IBM Db2, Oracle, and Sybase. It uses the same interface for all supported platforms, reducing training time and improving team productivity. The application provides features like an SQL tuning wizard and visual tuning diagrams to streamline and automate optimization.

Some specific ways that DB Optimizer accomplishes this feat are:

  • Suggesting SQL rewrites that offer the best alternative to a selected SQL statement;
  • Explaining the plan cost of each original statement to enable the expected cost of execution to be evaluated;
  • Analyzing indexes visually using color-coding and offering recommendations to optimize performance;
  • Testing alternative execution paths to determine the fastest running SQL statements.

Unless you are seriously averse to saving yourself time and trouble, automating database optimization tasks with DB Optimizer is a no-brainer. It can save you countless hours of manual optimizing drudgery while keeping the help desk and management queries to a minimum.

When you think about it, DB Optimizer can be seen as a tool to optimize database performance as well as the work-life of an organization’s database team.