SlideShare a Scribd company logo
1 of 32
Download to read offline
EMBARCADERO TECHNOLOGIESEMBARCADERO TECHNOLOGIES
What's New in DBArtisan and
Rapid SQL 2016
Brett Hawton
Director of Product Management
Embarcadero Technologies
EMBARCADERO TECHNOLOGIES
DBA’s have problems with:
• Understanding what SQL is running poorly & why
• Correcting poorly performing SQL, before it goes live if possible
• Suspicious/worried about SAN performance
• Concerned about how virtualization hurts/helps
• Uncertain about how to apply new DBMS platform features to
help their situation
• Need great monitoring and alerting
• Are concerned about expanding storage footprint
We want to solve DBA’s and SQL developers major pains
EMBARCADERO TECHNOLOGIES
2016 release (September 2015)
 Deep performance integrations into DBArtisan & Rapid SQL
 Significant SQL IDE enhancements to detect poor SQL performance
 Cardinality problems
 Data skew issues
 Substandard SQL syntax
 Inefficient index usage & index suggestions
 Full alerting package (+blackouts & non monitoring)
 SQL Server monitoring support
 Oracle monitoring support
 SQL Server repository support
 Oracle repository support
EMBARCADERO TECHNOLOGIES
EMBARCADERO CONFIDENTIAL
Showing SQL performance history / waits
EMBARCADERO TECHNOLOGIES
EMBARCADERO CONFIDENTIAL
Showing cross-instance performance
EMBARCADERO TECHNOLOGIES
Help software engineers and DBA’s write more performant SQL which will
work perfectly in production by showing data cardinality, data skew, table
statistics, index statistics, data churn etc. all from their ACTUAL LIVE DATA.
SQL IDE tips for DBArtisan & Rapid SQL
SELECT EmployeeID,
LastName
FROM EmployeeMaster
WHERE Table Statistics
No of Rows: 356,007
Data Size: 462MB
Index Size: 48MB
Row size: 422 bytes
Rows / page: 19
Fragmentation: 14%
Table scan time: 114 seconds
Table Churn: 1,588 changes/min
Alter statistics / use statistics from another DB
SELECT EmployeeID,
LastName
FROM EmployeeMaster
WHERE Zip = 94001
Column Statistics
No of table rows: 356,007
Column: Zip
Column Type: int (nullable)
Ave. column data length: 4 bytes
No of distinct values: 298 (not very good)
Average cardinality: 1,194 rows
Best cardinality: “98001”- 4 rows
Worst cardinality: “91301” – 146,092 rows
Test performance using worst cardinality
7
SQL Editor screens on Rap/Art to show existing index makeup
Where there are existing indexes on columns then allow the user to
view the index(s) in order to understand their suitability to the query
(which may prompt a query adjustment)
8
SQL Editor screens on Rap/Art to show Index Suggestions
By showing software engineers & DBA’s what indexes they should be adding to make
queries run efficiently.
It also shows the possible downside of adding an index such as index size and the volatility
of the underlying table as well as per column cardinality and data skew.
9
SQL Editor screens on Rap/Art to suggest syntactical
SQL adjustments to improve performance
By showing software engineers & DBA’s one or more of over 200
performance adjustments which could be made in the SQL syntax
to make queries run efficiently.
10
An Actual Syntax Performance Adjustment Suggestion
11
Another Actual Syntax Performance Adjustment Suggestion
12
Sample of performance
enhancements - 1
• Quirky Update method (link)
• Alter SUBSTRING (column, 1, nnn) TO column LIKE ‘XXX%‘ to boost performance up to 3X
faster (link)
• Alter YEAR(column) = YYYY TO column BETWEEN ‘1 Jan YYYY’ AND ’31 Dec YYYY’ to boost
performance up to 300X (link)
• Alter order of nested MIN/MAX functions
• Alter column IN (XXX, YYY, ZZZ) TO column BETWEEN XXX AND ZZZ to boost performance
up to 75% when AAA is an integer type column and the IN list has all consecutive elements (link)
• Alter LEFT JOIN TO NOT IN to boost performance up to 12X faster (link)
• Alter DELETE with no WHERE clause to a TRUNCATE
• Alter COALESCE(XXX, N’YYY’) = N’YYY’ TO XXX = N’YYY’ OR XXX IS NULL to boost
performance ~20% (link)
• Alter LIKE with no % or _ wildcards to =
• Alter LEFT (XXX, YYY) = ‘ZZZ’ TO XXX LIKE ‘ZZZ%’ to boost performance up to 300X (link)
• Read forward cursor is not using the “Fast Forward” option, can boost performance well over
100% (link)
• Alter CHARINDEX (‘YYY’, XXX) = 0 TO XXX LIKE ‘YYY%’ to boost performance up to 300X
(link)
13
Sample of performance
enhancements - 2
• Replace temp table creation & usage with table variables to boost performance up to 3X (link) E.G. Alter CREATE
TABLE #tablename(Col1…) TO DECLARE @tablename TABLE (Col1…)
• Cursor has not been correctly closed & de-allocated using DEALLOCATE (cursor name}
• Remove UPPER & LOWER functions if the instance collation isn’t case sensitive.
• If the query has large index or table scans & > 4 cores & MAXDOP < (cores / 3) then suggest raising MAXDOP
Changing MAXDOP setting from 1 to xx will improve query performance dramatically whilst ensuring the query
cant monopolize resources.
• Suggest using columnstore indexes where appropriate. Appropriate places would be on tables with zero
updates/deletes/updates where the query performs large scale index scans where the cardinality of the columns in
the index is somewhat low. (link)
• Alter queries which scan >100 page “fact” tables and join to dimension tables to optimize for using bitmap
filtering by using single column inner joins (link)
• Make use of Star join techniques as well as few-outer-row optimizations to improve query performance by over
100% (link)
• Make use of Windowing functions to dramatically speed up percentile groups, moving averages, largest,
smallest, offsetting, lagging, leading, ranking etc. (link)
• AVG, CHECKSUM_AGG, COUNT, COUNT_BIG, MIN, MAX, SUM, STDEV, STDEVP, VAR, VARP
• User-defined CLR Aggregates (excl. windowing)
• Analytical
• ROW_NUMBER, NTILE, RANK, DENSE_RANK, CUME_DIST, PERCENT_RANK
• Distribution
• PERCENTILE_CONT, PERCENTILE_DISC
• Offset
• LAG, LEAD, FIRST_VALUE, LAST_VALUE
EMBARCADERO TECHNOLOGIES
Showing Global Performance and Alert Overview view in DBArtisan/Rapid
EMBARCADERO TECHNOLOGIES
We don’t want to create a 1960’s 707 cockpit with
hundreds of metrics to look at…
15
EMBARCADERO TECHNOLOGIES
We don’t show hundreds of metrics…we show
outcomes… like this modern 787 cockpit
16
EMBARCADERO TECHNOLOGIES
Adding performance data to the server node
EMBARCADERO CONFIDENTIAL
EMBARCADERO TECHNOLOGIES
Wait based analysis – a closer look
EMBARCADERO TECHNOLOGIES
Time travel controls
(to view performance history at any point)
Data & time selector Cog wheel opens up a dialog allowing the user to select
baseline as well as filters/exclusions specific to the current
data source.
EMBARCADERO TECHNOLOGIES
Show the IO that the TOP SQL is generating
EMBARCADERO CONFIDENTIAL
SQL IO Flow
EMBARCADERO TECHNOLOGIES
SQL IO - A closer look
21
EMBARCADERO TECHNOLOGIES
Throughput vs Response time
EMBARCADERO TECHNOLOGIES
Top Applications
EMBARCADERO TECHNOLOGIES
Top Procedures
EMBARCADERO TECHNOLOGIES
Top SQL with wait based analysis and baselines
EMBARCADERO CONFIDENTIAL
EMBARCADERO TECHNOLOGIES
Indicating Alerts both globally and per DBMS Instance
EMBARCADERO CONFIDENTIAL
Alerts
Global
alert
status
Alert
status
per
group
Alerts
per
instance
Alert
status
per
instance
Global
alert
status
EMBARCADERO TECHNOLOGIES
Alerts have duration
EMBARCADERO CONFIDENTIAL
Duration
of alert
EMBARCADERO TECHNOLOGIES
Alert criticality
EMBARCADERO CONFIDENTIAL
EMBARCADERO TECHNOLOGIES
Embarcadero Platform
ER/Studio Team
Edition
DBArtisan &
Rapid SQL
ER/Studio Team Server
Performance IQ Team
Server
Glossary
Model
Repo
DS Repo DB Auth
Collaboration 24/7
Workstation
Tools
Automation
Business Stakeholders SQL Developers
DBA’s
EMBARCADERO CONFIDENTIAL
EMBARCADERO TECHNOLOGIES
Next Steps
30
EMBARCADERO TECHNOLOGIES
31
Join the Revolution…Get Involved
• Learn more about Performance IQ
– http://www.embarcadero.com/products/dbartisan/performanceiq
• Register to attend webinars
– http://www.embarcadero.com/resources/webinars
• Download white papers with content related to Performance
IQ capabilities.
– http://www.embarcadero.com/resources/white-papers/database-
management
• See DBArtisan and Rapid SQL tutorial videos
– http://www.embarcadero.com/products/dbartisan/product-demos
EMBARCADERO TECHNOLOGIESEMBARCADERO TECHNOLOGIES
Questions?

More Related Content

Viewers also liked

The Key to Big Data Modeling: Collaboration
The Key to Big Data Modeling: CollaborationThe Key to Big Data Modeling: Collaboration
The Key to Big Data Modeling: Collaboration
Embarcadero Technologies
 
Getting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidGetting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and Android
Embarcadero Technologies
 

Viewers also liked (11)

Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016
 
Best Practices for Meeting State Data Management Objectives
Best Practices for Meeting State Data Management ObjectivesBest Practices for Meeting State Data Management Objectives
Best Practices for Meeting State Data Management Objectives
 
Driving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data AssetsDriving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data Assets
 
The Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst PracticesThe Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst Practices
 
Embarcadero RAD server Launch Webinar
Embarcadero RAD server Launch WebinarEmbarcadero RAD server Launch Webinar
Embarcadero RAD server Launch Webinar
 
REST Servers in Delphi XE Using DataSnap
REST Servers in Delphi XE Using DataSnapREST Servers in Delphi XE Using DataSnap
REST Servers in Delphi XE Using DataSnap
 
The Key to Big Data Modeling: Collaboration
The Key to Big Data Modeling: CollaborationThe Key to Big Data Modeling: Collaboration
The Key to Big Data Modeling: Collaboration
 
Getting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidGetting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and Android
 
ER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data ArchitectureER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data Architecture
 
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...
 
Useful C++ Features You Should be Using
Useful C++ Features You Should be UsingUseful C++ Features You Should be Using
Useful C++ Features You Should be Using
 

Similar to What's New in DBArtisan and Rapid SQL 2016

Sql tuning guideline
Sql tuning guidelineSql tuning guideline
Sql tuning guideline
Sidney Chen
 

Similar to What's New in DBArtisan and Rapid SQL 2016 (20)

Dan Hotka's Top 10 Oracle 12c New Features
Dan Hotka's Top 10 Oracle 12c New FeaturesDan Hotka's Top 10 Oracle 12c New Features
Dan Hotka's Top 10 Oracle 12c New Features
 
Presentación Oracle Database Migración consideraciones 10g/11g/12c
Presentación Oracle Database Migración consideraciones 10g/11g/12cPresentación Oracle Database Migración consideraciones 10g/11g/12c
Presentación Oracle Database Migración consideraciones 10g/11g/12c
 
TSQL in SQL Server 2012
TSQL in SQL Server 2012TSQL in SQL Server 2012
TSQL in SQL Server 2012
 
Exploring T-SQL Anti-Patterns
Exploring T-SQL Anti-Patterns Exploring T-SQL Anti-Patterns
Exploring T-SQL Anti-Patterns
 
SignalR & SQL Dependency
SignalR & SQL DependencySignalR & SQL Dependency
SignalR & SQL Dependency
 
Oracle vs. SQL Server- War of the Indices
Oracle vs. SQL Server- War of the IndicesOracle vs. SQL Server- War of the Indices
Oracle vs. SQL Server- War of the Indices
 
SQL Server 2008 New Features
SQL Server 2008 New FeaturesSQL Server 2008 New Features
SQL Server 2008 New Features
 
SQL Server End Of Support
SQL Server End Of SupportSQL Server End Of Support
SQL Server End Of Support
 
Sql tuning guideline
Sql tuning guidelineSql tuning guideline
Sql tuning guideline
 
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
 
SQL server 2016 New Features
SQL server 2016 New FeaturesSQL server 2016 New Features
SQL server 2016 New Features
 
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginners
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginnersSQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginners
SQLSaturday#290_Kiev_AdHocMaintenancePlansForBeginners
 
Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019
 
Explain the explain_plan
Explain the explain_planExplain the explain_plan
Explain the explain_plan
 
SQL Pass Summit Presentations from Datavail - Optimize SQL Server: Query Tuni...
SQL Pass Summit Presentations from Datavail - Optimize SQL Server: Query Tuni...SQL Pass Summit Presentations from Datavail - Optimize SQL Server: Query Tuni...
SQL Pass Summit Presentations from Datavail - Optimize SQL Server: Query Tuni...
 
Sql 2016 - What's New
Sql 2016 - What's NewSql 2016 - What's New
Sql 2016 - What's New
 
Enhancements that will make your sql database roar sp1 edition sql bits 2017
Enhancements that will make your sql database roar sp1 edition sql bits 2017Enhancements that will make your sql database roar sp1 edition sql bits 2017
Enhancements that will make your sql database roar sp1 edition sql bits 2017
 
Introduction to SQL, SQL*Plus
Introduction to SQL, SQL*PlusIntroduction to SQL, SQL*Plus
Introduction to SQL, SQL*Plus
 
MySQL 5.5
MySQL 5.5MySQL 5.5
MySQL 5.5
 
SQL Server 2008 Integration Services
SQL Server 2008 Integration ServicesSQL Server 2008 Integration Services
SQL Server 2008 Integration Services
 

More from Embarcadero Technologies

More from Embarcadero Technologies (15)

PyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdfPyTorch for Delphi - Python Data Sciences Libraries.pdf
PyTorch for Delphi - Python Data Sciences Libraries.pdf
 
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
 
Linux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxLinux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for Linux
 
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Introduction to Python GUI development with Delphi for Python - Part 1:   Del...Introduction to Python GUI development with Delphi for Python - Part 1:   Del...
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for Linux
 
Python for Delphi Developers - Part 2
Python for Delphi Developers - Part 2Python for Delphi Developers - Part 2
Python for Delphi Developers - Part 2
 
Python for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 IntroductionPython for Delphi Developers - Part 1 Introduction
Python for Delphi Developers - Part 1 Introduction
 
RAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and InstrumentationRAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and Instrumentation
 
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
 
Rad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup DocumentRad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup Document
 
TMS Google Mapping Components
TMS Google Mapping ComponentsTMS Google Mapping Components
TMS Google Mapping Components
 
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinarMove Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
 
RAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature MatrixRAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature Matrix
 
Embarcadero RAD Studio XE8 Feature Matrix
Embarcadero RAD Studio XE8 Feature MatrixEmbarcadero RAD Studio XE8 Feature Matrix
Embarcadero RAD Studio XE8 Feature Matrix
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Recently uploaded (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 

What's New in DBArtisan and Rapid SQL 2016

  • 1. EMBARCADERO TECHNOLOGIESEMBARCADERO TECHNOLOGIES What's New in DBArtisan and Rapid SQL 2016 Brett Hawton Director of Product Management Embarcadero Technologies
  • 2. EMBARCADERO TECHNOLOGIES DBA’s have problems with: • Understanding what SQL is running poorly & why • Correcting poorly performing SQL, before it goes live if possible • Suspicious/worried about SAN performance • Concerned about how virtualization hurts/helps • Uncertain about how to apply new DBMS platform features to help their situation • Need great monitoring and alerting • Are concerned about expanding storage footprint We want to solve DBA’s and SQL developers major pains
  • 3. EMBARCADERO TECHNOLOGIES 2016 release (September 2015)  Deep performance integrations into DBArtisan & Rapid SQL  Significant SQL IDE enhancements to detect poor SQL performance  Cardinality problems  Data skew issues  Substandard SQL syntax  Inefficient index usage & index suggestions  Full alerting package (+blackouts & non monitoring)  SQL Server monitoring support  Oracle monitoring support  SQL Server repository support  Oracle repository support
  • 6. EMBARCADERO TECHNOLOGIES Help software engineers and DBA’s write more performant SQL which will work perfectly in production by showing data cardinality, data skew, table statistics, index statistics, data churn etc. all from their ACTUAL LIVE DATA. SQL IDE tips for DBArtisan & Rapid SQL SELECT EmployeeID, LastName FROM EmployeeMaster WHERE Table Statistics No of Rows: 356,007 Data Size: 462MB Index Size: 48MB Row size: 422 bytes Rows / page: 19 Fragmentation: 14% Table scan time: 114 seconds Table Churn: 1,588 changes/min Alter statistics / use statistics from another DB SELECT EmployeeID, LastName FROM EmployeeMaster WHERE Zip = 94001 Column Statistics No of table rows: 356,007 Column: Zip Column Type: int (nullable) Ave. column data length: 4 bytes No of distinct values: 298 (not very good) Average cardinality: 1,194 rows Best cardinality: “98001”- 4 rows Worst cardinality: “91301” – 146,092 rows Test performance using worst cardinality
  • 7. 7 SQL Editor screens on Rap/Art to show existing index makeup Where there are existing indexes on columns then allow the user to view the index(s) in order to understand their suitability to the query (which may prompt a query adjustment)
  • 8. 8 SQL Editor screens on Rap/Art to show Index Suggestions By showing software engineers & DBA’s what indexes they should be adding to make queries run efficiently. It also shows the possible downside of adding an index such as index size and the volatility of the underlying table as well as per column cardinality and data skew.
  • 9. 9 SQL Editor screens on Rap/Art to suggest syntactical SQL adjustments to improve performance By showing software engineers & DBA’s one or more of over 200 performance adjustments which could be made in the SQL syntax to make queries run efficiently.
  • 10. 10 An Actual Syntax Performance Adjustment Suggestion
  • 11. 11 Another Actual Syntax Performance Adjustment Suggestion
  • 12. 12 Sample of performance enhancements - 1 • Quirky Update method (link) • Alter SUBSTRING (column, 1, nnn) TO column LIKE ‘XXX%‘ to boost performance up to 3X faster (link) • Alter YEAR(column) = YYYY TO column BETWEEN ‘1 Jan YYYY’ AND ’31 Dec YYYY’ to boost performance up to 300X (link) • Alter order of nested MIN/MAX functions • Alter column IN (XXX, YYY, ZZZ) TO column BETWEEN XXX AND ZZZ to boost performance up to 75% when AAA is an integer type column and the IN list has all consecutive elements (link) • Alter LEFT JOIN TO NOT IN to boost performance up to 12X faster (link) • Alter DELETE with no WHERE clause to a TRUNCATE • Alter COALESCE(XXX, N’YYY’) = N’YYY’ TO XXX = N’YYY’ OR XXX IS NULL to boost performance ~20% (link) • Alter LIKE with no % or _ wildcards to = • Alter LEFT (XXX, YYY) = ‘ZZZ’ TO XXX LIKE ‘ZZZ%’ to boost performance up to 300X (link) • Read forward cursor is not using the “Fast Forward” option, can boost performance well over 100% (link) • Alter CHARINDEX (‘YYY’, XXX) = 0 TO XXX LIKE ‘YYY%’ to boost performance up to 300X (link)
  • 13. 13 Sample of performance enhancements - 2 • Replace temp table creation & usage with table variables to boost performance up to 3X (link) E.G. Alter CREATE TABLE #tablename(Col1…) TO DECLARE @tablename TABLE (Col1…) • Cursor has not been correctly closed & de-allocated using DEALLOCATE (cursor name} • Remove UPPER & LOWER functions if the instance collation isn’t case sensitive. • If the query has large index or table scans & > 4 cores & MAXDOP < (cores / 3) then suggest raising MAXDOP Changing MAXDOP setting from 1 to xx will improve query performance dramatically whilst ensuring the query cant monopolize resources. • Suggest using columnstore indexes where appropriate. Appropriate places would be on tables with zero updates/deletes/updates where the query performs large scale index scans where the cardinality of the columns in the index is somewhat low. (link) • Alter queries which scan >100 page “fact” tables and join to dimension tables to optimize for using bitmap filtering by using single column inner joins (link) • Make use of Star join techniques as well as few-outer-row optimizations to improve query performance by over 100% (link) • Make use of Windowing functions to dramatically speed up percentile groups, moving averages, largest, smallest, offsetting, lagging, leading, ranking etc. (link) • AVG, CHECKSUM_AGG, COUNT, COUNT_BIG, MIN, MAX, SUM, STDEV, STDEVP, VAR, VARP • User-defined CLR Aggregates (excl. windowing) • Analytical • ROW_NUMBER, NTILE, RANK, DENSE_RANK, CUME_DIST, PERCENT_RANK • Distribution • PERCENTILE_CONT, PERCENTILE_DISC • Offset • LAG, LEAD, FIRST_VALUE, LAST_VALUE
  • 14. EMBARCADERO TECHNOLOGIES Showing Global Performance and Alert Overview view in DBArtisan/Rapid
  • 15. EMBARCADERO TECHNOLOGIES We don’t want to create a 1960’s 707 cockpit with hundreds of metrics to look at… 15
  • 16. EMBARCADERO TECHNOLOGIES We don’t show hundreds of metrics…we show outcomes… like this modern 787 cockpit 16
  • 17. EMBARCADERO TECHNOLOGIES Adding performance data to the server node EMBARCADERO CONFIDENTIAL
  • 18. EMBARCADERO TECHNOLOGIES Wait based analysis – a closer look
  • 19. EMBARCADERO TECHNOLOGIES Time travel controls (to view performance history at any point) Data & time selector Cog wheel opens up a dialog allowing the user to select baseline as well as filters/exclusions specific to the current data source.
  • 20. EMBARCADERO TECHNOLOGIES Show the IO that the TOP SQL is generating EMBARCADERO CONFIDENTIAL SQL IO Flow
  • 21. EMBARCADERO TECHNOLOGIES SQL IO - A closer look 21
  • 25. EMBARCADERO TECHNOLOGIES Top SQL with wait based analysis and baselines EMBARCADERO CONFIDENTIAL
  • 26. EMBARCADERO TECHNOLOGIES Indicating Alerts both globally and per DBMS Instance EMBARCADERO CONFIDENTIAL Alerts Global alert status Alert status per group Alerts per instance Alert status per instance Global alert status
  • 27. EMBARCADERO TECHNOLOGIES Alerts have duration EMBARCADERO CONFIDENTIAL Duration of alert
  • 29. EMBARCADERO TECHNOLOGIES Embarcadero Platform ER/Studio Team Edition DBArtisan & Rapid SQL ER/Studio Team Server Performance IQ Team Server Glossary Model Repo DS Repo DB Auth Collaboration 24/7 Workstation Tools Automation Business Stakeholders SQL Developers DBA’s EMBARCADERO CONFIDENTIAL
  • 31. EMBARCADERO TECHNOLOGIES 31 Join the Revolution…Get Involved • Learn more about Performance IQ – http://www.embarcadero.com/products/dbartisan/performanceiq • Register to attend webinars – http://www.embarcadero.com/resources/webinars • Download white papers with content related to Performance IQ capabilities. – http://www.embarcadero.com/resources/white-papers/database- management • See DBArtisan and Rapid SQL tutorial videos – http://www.embarcadero.com/products/dbartisan/product-demos