SlideShare une entreprise Scribd logo
1  sur  34
Optimize Database Connectivity
in .NET Applications
March 17, 2016
Avadhoot Kulkarni
© 2013 Progress Software Corporation. All rights reserved.2
INTRODUCTION
Avadhoot Kulkarni
Product Owner ODBC, JDBC & ADO.NET Drivers, Progress DataDirect
https://www.progress.com/net
Avadhoot.Kulkarni@progress.com
© 2013 Progress Software Corporation. All rights reserved.3
AGENDA
Components of Performance
Performance Strategy
ADO.NET Data Provider
 Architecture of Data Provider
 Connection Improvements
 Query Execution Improvement
 Result Fetching Improvements
 Coding Guidelines
© 2013 Progress Software Corporation. All rights reserved.4
Components of Performance
Database Network Data Provider
Data Access
Code
Client
Infrastructure
© 2013 Progress Software Corporation. All rights reserved.5
Do not fix your applications for better performance,
Design it to perform better.
PERFORMANCE STRATEGY
© 2013 Progress Software Corporation. All rights reserved.6
Architecture
© 2013 Progress Software Corporation. All rights reserved.7
Architecture of Data Provider
 Architecture
• Managed vs. Unmanaged
• How well you manage the resources
– Database Capabilities
– Network Bandwidth
– Disk I/O
– CPU
– Memory
© 2013 Progress Software Corporation. All rights reserved.8
Connection
Improvements
© 2013 Progress Software Corporation. All rights reserved.9
Connection Improvements
 Avoid XA (Distributed Transaction) Enabled Connections (Enlist)
 Use Connection Pooling
• Benefit
• Pooling strategies
• When to avoid
 Use Bigger Protocol Packet Sizes
 Avoid Distributed Transactions
 Choose Extended Security Wisely
© 2013 Progress Software Corporation. All rights reserved.10
Use Connection Pooling
1. Application Server Started;
Connection Pool is populated
2. Application Makes a Connection
Request
3. A pooled Connection is given to
application.
4. Application is Connected to
database.
5. When the connection is closed, it
is placed back into the pool.
Application Server
Application
© 2013 Progress Software Corporation. All rights reserved.11
When to avoid Connection Pooling
 Frequently Restarting Applications
They pay upfront cost of populating the pool and hold up resources, which all gets lost
when application restarts.
 Single User Applications (e.g. Report Writers)
If the application needs to establish connection to database once in a while, for single
use, resources held by pool hamper the performance more than the pooling could
help.
 Single User Batch Jobs
Pooling offers no advantage to such applications, as they just need one connection.
Especially as these batch jobs are executed off ours when there is no real load on
server.
© 2013 Progress Software Corporation. All rights reserved.12
Use Bigger Protocol Packet Size
 Communication packet size is limited to Servers max packet size limit.
 Typically, larger the packet size, the better the performance
© 2013 Progress Software Corporation. All rights reserved.13
Avoid Distributed Transactions
 Distributed Transactions are used to execute atomic operations across multiple
connections. These are needed to keep data consistent.
 Requires communication between multiple servers, Hence are very slow compared
to local transactions.
 This co-ordination could be between several types of database servers e.g. SQL
Server, Oracle, DB2, Sybase, MySQL etc. or, multiple instances of same database
types.
 Be very cautious while designing applications; multiple databases architecture
would most likely require distributed transactions.
© 2013 Progress Software Corporation. All rights reserved.14
Choose Extended Security Wisely
 Performance Penalties are side effects of extended security. Let’s see if its possible
to limit them…
 There are 2 types to the extended security
• Network Authentications
• Data Encryption over Network
© 2013 Progress Software Corporation. All rights reserved.15
Improve Kerberos Authentication Performance
 Bottle Neck: As for each connection, client need to get a ticket from Kerberos server,
it can quickly become a bottle neck if it’s a shared server with lots of network heavy
services running on it.
 Place Kerberos Server on Dedicated machine
 Reduce Networking services run on this machine to bare minimum
 Make sure you have fast, reliable network connection to the machine
© 2013 Progress Software Corporation. All rights reserved.16
Avoid Unnecessary Data Encryption
 For secure transition of data another layer is added over TCP/IP i.e. SSL or any
proprietary Encryption of database vendor.
 Performance Intensive steps
• Initial Handshake
• Encryption and Decryption
 Usually longer the Cipher Key means more the security but lesser the performance.
 Use encrypted connections for sensitive data and unencrypted for non-sensitive data.
Though, not all databases supports this functionality.
© 2013 Progress Software Corporation. All rights reserved.17
Query Execution
Improvement
© 2013 Progress Software Corporation. All rights reserved.18
Query Execution Improvements
 Use Transactions (Auto-Commit)
 Use Prepared Queries
 Use Statement Caching/Pooling
 Use Parameterized Batching
 Use Bulk Protocols
© 2013 Progress Software Corporation. All rights reserved.19
Use Transactions (Auto-Commit=FALSE)
 In ADO.NET Default Auto Commit Mode is TRUE.
 DB2 do not support Auto-Commit mode, Data Provider by default send commit request
after every successful operation.
 Application has no control on when the Commit is fired. Mostly it gets fired even when
there is nothing to commit.
 Every commit and Rollback operation is performance Intensive
• Requires Disk I/O and sometimes network roundtrips.
Cont.…
© 2013 Progress Software Corporation. All rights reserved.20
Use Transactions (Auto-Commit=FALSE)
 In most cases you will want to turn off Auto-Commit mode. Start BeginTransaction()
to start local transaction in your application.
 Leaving transactions active can reduce throughput by holding locks for longer than
necessary.
Committing transactions in intervals gives best
performance with acceptable concurrency.
© 2013 Progress Software Corporation. All rights reserved.21
Use Prepared Queries
 Calling Command.Prepare() usually compiles the SQL statement into query plan for
efficiency.
 Available until the connection is closed.
 Though initial execution overhead of prepare is high, advantage is realised in
subsequent executions.
 Some databases like DB2 and Oracle supports Prepare and execute together, which has
multiple benefits.
© 2013 Progress Software Corporation. All rights reserved.22
Use Statement Caching/Pooling
 Statement Pool is group of prepared statements that an application can reuse.
 Its not a feature of database systems but, is a feature of drivers.
 Statement Cache or Pool is associated with a Connection.
 Not all drivers/providers in market support statement caching. To make use of this
feature, make sure you deploy a driver/provider with your database application
which does.
© 2013 Progress Software Corporation. All rights reserved.23
Use Statement Caching/Pooling
 Use statement caching if 90% or more of your statements are executed
multiple times.
 Use Parameterized queries to make best use of Prepared Queries and
statement caching.
 Statement pool max size should not exceed server’s limit for maximum
number of active statements per connection.
 Statement pool max size should be equal or greater than the number of
different statements executed by your application multiple times.
© 2013 Progress Software Corporation. All rights reserved.24
Using Parameter Array Binding/Batches
 To Reduce the number of network roundtrips when updating large amounts of data,
you can bind arrays to parameter value or execute Batches of SQL Statements.
 You can have similar effect while using disconnected Datasets to update the data if
your data provider supports parameter Array binding. To enable this, you can set
DataAdapter.UpdateBatchSize=<No of items in your Array>
 Not all Data Providers and databases supports this feature, make sure you are using a
driver/data provider which does with you database application.
© 2013 Progress Software Corporation. All rights reserved.25
Using Bulk Load
 If your data provider support bulk load (aka BulkCopy), inserting large amount of data
into database server will be even faster than using Array Binding.
 You can use BulkLoad functionality through xxxBulkCopy class which many data
Providers support.
 In Bulk Load, rows are sent as continuous stream, without making extra network
roundtrips. In addition, during Bulk Copy database can also optimize the way the rows
are inserted.
 Bulk Load can have negative impact, as data inserted with bulk load may ignore
referential integrity, causing consistency problems with data in database.
© 2013 Progress Software Corporation. All rights reserved.26
Result Fetching
Improvements
© 2013 Progress Software Corporation. All rights reserved.27
Fetching the Results
Delay Retrieving long data
 Most of the applications do not need
long data by default, but fetching them
is a costly operation.
 Avoid long data columns such as XML,
BLOB, CLOB, NLONGVARCHAR,
LONGVARCHAR, LONGVARBINARY in
the select list.
 Avoid “Select *” queries on tables
which contain long data columns.
Limiting Amount of Data Retrieved
 Use MaxRows or RowSetSize to limit
maximum numbers of rows returned by
the server to Data Provider.
 This will reduce the number of network
round trips.
 Limit the row size, by requesting limited
data of the long columns when
requested. E.g. First 1MB of 10MB long
log entry.
© 2013 Progress Software Corporation. All rights reserved.28
Use Get<Specific-Type> Method to Fetch Data
 Avoid using generic GetValue() to fetch Data From DataReader. It requires extra
processing to convert the value data type to a reference datatype. This process is called
boxing.
 One can avoid boxing by calling Specific Get<Specific-Type>() APIs. E.g. GetInt32()
© 2013 Progress Software Corporation. All rights reserved.29
Choose Right Data Types
Data Type Processing
Binary Transfer of raw bytes from database to application buffers.
int, smallint, float Transfer of fixed formats
Decimal Transfer of proprietary data, Driver must decode which uses CPU.
Usually Convert To String.
Timestamp Transfer of proprietary data, Driver must decode which uses CPU.
Usually Convert To Multipart structure or string.
char Typically transfer of large volume of data which needs code page
translation. Code page translation is usually CPU intensive intensive
and proportional to size of data.
© 2013 Progress Software Corporation. All rights reserved.30
Coding Guidelines
© 2013 Progress Software Corporation. All rights reserved.31
Coding Guidelines
 Executing SQL Statements
• ExecuteNonQuery() – returns number of Rows Affected but does not return actual rows.
– Use this for DML Operations like Insert, Update and Delete.
• ExecuteReader() – Returns DataReader object containing one or more rows of data.
– Use this for Select queries which returns complete Result Set
• ExecuteScalar() – Returns first column of first row of the result set.
– Use this for selects which returns single value is result set (or when application is just
interested in single value first column of first row).
 Though any API can be used for any type of query execution, they are usually
optimized for their specific purpose and contribute to a better performance.
© 2013 Progress Software Corporation. All rights reserved.32
Coding Guidelines
 100% Managed Providers
• Using unmanaged code can significantly impact the performance.
• If managed provider needs unmanaged database clients or other unmanaged pieces
then they are not true managed providers.
• Only few vendors produce true managed providers that work as 100% managed
component.
 Selecting .NET Objects
• Avoid CommandBuilder
• Choosing between DataReader and Datasets
© 2013 Progress Software Corporation. All rights reserved.33
References
THE DATA ACCESS HANDBOOK
Achieving optimal database application Performance and scalability
John Goodson
&
Robert A. Steward
Published By : PRENTICE HALL in 2009
Optimize Data Connectivity in .NET Applications

Contenu connexe

Tendances

OOW15 - Oracle E-Business Suite Integration Best Practices
OOW15 - Oracle E-Business Suite Integration Best PracticesOOW15 - Oracle E-Business Suite Integration Best Practices
OOW15 - Oracle E-Business Suite Integration Best Practicesvasuballa
 
The Value of Postgres to IT and Finance
The Value of Postgres to IT and FinanceThe Value of Postgres to IT and Finance
The Value of Postgres to IT and FinanceEDB
 
Zaptz Legacy App to Cloud
Zaptz Legacy App to CloudZaptz Legacy App to Cloud
Zaptz Legacy App to CloudStephen Burke
 
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...AppDynamics
 
Learn About the Top Oracle E-Business Suite Security Vulnerabilities
Learn About the Top Oracle E-Business Suite Security VulnerabilitiesLearn About the Top Oracle E-Business Suite Security Vulnerabilities
Learn About the Top Oracle E-Business Suite Security VulnerabilitiesOAUGNJ
 
Steelhead DX for Datacenter-to-Datacenter optimization
Steelhead DX for Datacenter-to-Datacenter optimizationSteelhead DX for Datacenter-to-Datacenter optimization
Steelhead DX for Datacenter-to-Datacenter optimizationRiverbed Technology
 
How to downscope your EBS upgrade project
How to downscope your EBS upgrade projectHow to downscope your EBS upgrade project
How to downscope your EBS upgrade projectpanayaofficial
 
Oracle EBS R12.2 - The Upgrade Know-How Factory
Oracle EBS R12.2 - The Upgrade Know-How FactoryOracle EBS R12.2 - The Upgrade Know-How Factory
Oracle EBS R12.2 - The Upgrade Know-How Factorypanayaofficial
 
OOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and securityOOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and securityvasuballa
 
Data center insights summit 2015 disruptive force of clouds
Data center insights summit 2015   disruptive force of cloudsData center insights summit 2015   disruptive force of clouds
Data center insights summit 2015 disruptive force of cloudscrbraun
 
SAP goes Cloud - Plans, strategies and investment plans of German companies
SAP goes Cloud - Plans, strategies and investment plans of German companiesSAP goes Cloud - Plans, strategies and investment plans of German companies
SAP goes Cloud - Plans, strategies and investment plans of German companiesPierre Audoin Consultants
 
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...Lucas Jellema
 
OOW15 - Advanced Architectures for Oracle E-Business Suite
OOW15 - Advanced Architectures for Oracle E-Business SuiteOOW15 - Advanced Architectures for Oracle E-Business Suite
OOW15 - Advanced Architectures for Oracle E-Business Suitevasuballa
 
Cisco UCS with NetApp Storage for SAP HANA Solution
Cisco UCS with NetApp Storage for SAP HANA Solution Cisco UCS with NetApp Storage for SAP HANA Solution
Cisco UCS with NetApp Storage for SAP HANA Solution NetApp
 
First steps in implementing Corticon for OE insurance application - PUG Balti...
First steps in implementing Corticon for OE insurance application - PUG Balti...First steps in implementing Corticon for OE insurance application - PUG Balti...
First steps in implementing Corticon for OE insurance application - PUG Balti...Alen Leit
 
API Management - ProcessForum Nordic, Nov.14 2013
API Management - ProcessForum Nordic, Nov.14 2013API Management - ProcessForum Nordic, Nov.14 2013
API Management - ProcessForum Nordic, Nov.14 2013Software AG
 
Hands-On Lab: From Zero to Compliance Using CA Software Asset Management
Hands-On Lab: From Zero to Compliance Using CA Software Asset ManagementHands-On Lab: From Zero to Compliance Using CA Software Asset Management
Hands-On Lab: From Zero to Compliance Using CA Software Asset ManagementCA Technologies
 
My Oracle Support
My Oracle SupportMy Oracle Support
My Oracle Supportvasuballa
 
Accelerate your Upgrades and Migrations
Accelerate your Upgrades and MigrationsAccelerate your Upgrades and Migrations
Accelerate your Upgrades and MigrationsWiiisdom
 
Architecture performance and tips and tricks for instantis enterprise track 8...
Architecture performance and tips and tricks for instantis enterprise track 8...Architecture performance and tips and tricks for instantis enterprise track 8...
Architecture performance and tips and tricks for instantis enterprise track 8...p6academy
 

Tendances (20)

OOW15 - Oracle E-Business Suite Integration Best Practices
OOW15 - Oracle E-Business Suite Integration Best PracticesOOW15 - Oracle E-Business Suite Integration Best Practices
OOW15 - Oracle E-Business Suite Integration Best Practices
 
The Value of Postgres to IT and Finance
The Value of Postgres to IT and FinanceThe Value of Postgres to IT and Finance
The Value of Postgres to IT and Finance
 
Zaptz Legacy App to Cloud
Zaptz Legacy App to CloudZaptz Legacy App to Cloud
Zaptz Legacy App to Cloud
 
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
Thousands of JVMs, Hundreds of Applications, and Two People: How Cerner Learn...
 
Learn About the Top Oracle E-Business Suite Security Vulnerabilities
Learn About the Top Oracle E-Business Suite Security VulnerabilitiesLearn About the Top Oracle E-Business Suite Security Vulnerabilities
Learn About the Top Oracle E-Business Suite Security Vulnerabilities
 
Steelhead DX for Datacenter-to-Datacenter optimization
Steelhead DX for Datacenter-to-Datacenter optimizationSteelhead DX for Datacenter-to-Datacenter optimization
Steelhead DX for Datacenter-to-Datacenter optimization
 
How to downscope your EBS upgrade project
How to downscope your EBS upgrade projectHow to downscope your EBS upgrade project
How to downscope your EBS upgrade project
 
Oracle EBS R12.2 - The Upgrade Know-How Factory
Oracle EBS R12.2 - The Upgrade Know-How FactoryOracle EBS R12.2 - The Upgrade Know-How Factory
Oracle EBS R12.2 - The Upgrade Know-How Factory
 
OOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and securityOOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and security
 
Data center insights summit 2015 disruptive force of clouds
Data center insights summit 2015   disruptive force of cloudsData center insights summit 2015   disruptive force of clouds
Data center insights summit 2015 disruptive force of clouds
 
SAP goes Cloud - Plans, strategies and investment plans of German companies
SAP goes Cloud - Plans, strategies and investment plans of German companiesSAP goes Cloud - Plans, strategies and investment plans of German companies
SAP goes Cloud - Plans, strategies and investment plans of German companies
 
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
 
OOW15 - Advanced Architectures for Oracle E-Business Suite
OOW15 - Advanced Architectures for Oracle E-Business SuiteOOW15 - Advanced Architectures for Oracle E-Business Suite
OOW15 - Advanced Architectures for Oracle E-Business Suite
 
Cisco UCS with NetApp Storage for SAP HANA Solution
Cisco UCS with NetApp Storage for SAP HANA Solution Cisco UCS with NetApp Storage for SAP HANA Solution
Cisco UCS with NetApp Storage for SAP HANA Solution
 
First steps in implementing Corticon for OE insurance application - PUG Balti...
First steps in implementing Corticon for OE insurance application - PUG Balti...First steps in implementing Corticon for OE insurance application - PUG Balti...
First steps in implementing Corticon for OE insurance application - PUG Balti...
 
API Management - ProcessForum Nordic, Nov.14 2013
API Management - ProcessForum Nordic, Nov.14 2013API Management - ProcessForum Nordic, Nov.14 2013
API Management - ProcessForum Nordic, Nov.14 2013
 
Hands-On Lab: From Zero to Compliance Using CA Software Asset Management
Hands-On Lab: From Zero to Compliance Using CA Software Asset ManagementHands-On Lab: From Zero to Compliance Using CA Software Asset Management
Hands-On Lab: From Zero to Compliance Using CA Software Asset Management
 
My Oracle Support
My Oracle SupportMy Oracle Support
My Oracle Support
 
Accelerate your Upgrades and Migrations
Accelerate your Upgrades and MigrationsAccelerate your Upgrades and Migrations
Accelerate your Upgrades and Migrations
 
Architecture performance and tips and tricks for instantis enterprise track 8...
Architecture performance and tips and tricks for instantis enterprise track 8...Architecture performance and tips and tricks for instantis enterprise track 8...
Architecture performance and tips and tricks for instantis enterprise track 8...
 

En vedette

Extend your CMS Investment to Video Content
Extend your CMS Investment to Video ContentExtend your CMS Investment to Video Content
Extend your CMS Investment to Video ContentBrightcove
 
New not lost south africa timeline
New not lost south africa timelineNew not lost south africa timeline
New not lost south africa timelinepsahlman
 
Hello. By Oriol
Hello. By OriolHello. By Oriol
Hello. By Orioljavivela
 
Cb presentation-march2013
Cb presentation-march2013Cb presentation-march2013
Cb presentation-march2013Bill Blevins
 
[Streamroot] Whitepaper peer assisted adaptive streaming
[Streamroot] Whitepaper peer assisted adaptive streaming[Streamroot] Whitepaper peer assisted adaptive streaming
[Streamroot] Whitepaper peer assisted adaptive streamingVu Nguyen
 
Management & scrum: some comments
Management & scrum: some commentsManagement & scrum: some comments
Management & scrum: some commentsJasper Verdooren
 
A Portrait of Louisiana
A Portrait of LouisianaA Portrait of Louisiana
A Portrait of LouisianaHumantific
 
LastMinute.com Campaign
LastMinute.com CampaignLastMinute.com Campaign
LastMinute.com Campaignmbrasile
 
Omnia | arrangeren stercollecties
Omnia | arrangeren stercollecties Omnia | arrangeren stercollecties
Omnia | arrangeren stercollecties Henk Orsel
 
Intersection of Creativity and Sports
Intersection of Creativity and SportsIntersection of Creativity and Sports
Intersection of Creativity and SportsAnuj Magazine
 
CV Tomas Senne ppt
CV Tomas Senne pptCV Tomas Senne ppt
CV Tomas Senne pptTomas Senne
 
Easy database migrations with C# and FluentMigrator
Easy database migrations with C# and FluentMigratorEasy database migrations with C# and FluentMigrator
Easy database migrations with C# and FluentMigratorSafal Mahat
 
Unify OpenScape
Unify OpenScapeUnify OpenScape
Unify OpenScapeHenk Orsel
 
Taking Ideas to Business using MVPs
Taking Ideas to Business using MVPsTaking Ideas to Business using MVPs
Taking Ideas to Business using MVPsManish Singhal
 
Top 10 linux administrator interview questions and answers
Top 10 linux administrator interview questions and answersTop 10 linux administrator interview questions and answers
Top 10 linux administrator interview questions and answersjomrida
 
Emulation of Dynamic Adaptive Streaming over HTTP with Mininet
Emulation of Dynamic Adaptive Streaming over HTTP with MininetEmulation of Dynamic Adaptive Streaming over HTTP with Mininet
Emulation of Dynamic Adaptive Streaming over HTTP with MininetAnatoliy Zabrovskiy
 
Trasnlation shift
Trasnlation shiftTrasnlation shift
Trasnlation shiftBuhsra
 
GTU Asp.net Project Training Guidelines
GTU Asp.net Project Training GuidelinesGTU Asp.net Project Training Guidelines
GTU Asp.net Project Training GuidelinesTOPS Technologies
 

En vedette (20)

Extend your CMS Investment to Video Content
Extend your CMS Investment to Video ContentExtend your CMS Investment to Video Content
Extend your CMS Investment to Video Content
 
New not lost south africa timeline
New not lost south africa timelineNew not lost south africa timeline
New not lost south africa timeline
 
Hello. By Oriol
Hello. By OriolHello. By Oriol
Hello. By Oriol
 
Cb presentation-march2013
Cb presentation-march2013Cb presentation-march2013
Cb presentation-march2013
 
[Streamroot] Whitepaper peer assisted adaptive streaming
[Streamroot] Whitepaper peer assisted adaptive streaming[Streamroot] Whitepaper peer assisted adaptive streaming
[Streamroot] Whitepaper peer assisted adaptive streaming
 
Management & scrum: some comments
Management & scrum: some commentsManagement & scrum: some comments
Management & scrum: some comments
 
A Portrait of Louisiana
A Portrait of LouisianaA Portrait of Louisiana
A Portrait of Louisiana
 
LastMinute.com Campaign
LastMinute.com CampaignLastMinute.com Campaign
LastMinute.com Campaign
 
Omnia | arrangeren stercollecties
Omnia | arrangeren stercollecties Omnia | arrangeren stercollecties
Omnia | arrangeren stercollecties
 
Intersection of Creativity and Sports
Intersection of Creativity and SportsIntersection of Creativity and Sports
Intersection of Creativity and Sports
 
CV Tomas Senne ppt
CV Tomas Senne pptCV Tomas Senne ppt
CV Tomas Senne ppt
 
Easy database migrations with C# and FluentMigrator
Easy database migrations with C# and FluentMigratorEasy database migrations with C# and FluentMigrator
Easy database migrations with C# and FluentMigrator
 
Unify OpenScape
Unify OpenScapeUnify OpenScape
Unify OpenScape
 
Gardener mentor
Gardener mentor Gardener mentor
Gardener mentor
 
Taking Ideas to Business using MVPs
Taking Ideas to Business using MVPsTaking Ideas to Business using MVPs
Taking Ideas to Business using MVPs
 
ASP.NET- database connectivity
ASP.NET- database connectivityASP.NET- database connectivity
ASP.NET- database connectivity
 
Top 10 linux administrator interview questions and answers
Top 10 linux administrator interview questions and answersTop 10 linux administrator interview questions and answers
Top 10 linux administrator interview questions and answers
 
Emulation of Dynamic Adaptive Streaming over HTTP with Mininet
Emulation of Dynamic Adaptive Streaming over HTTP with MininetEmulation of Dynamic Adaptive Streaming over HTTP with Mininet
Emulation of Dynamic Adaptive Streaming over HTTP with Mininet
 
Trasnlation shift
Trasnlation shiftTrasnlation shift
Trasnlation shift
 
GTU Asp.net Project Training Guidelines
GTU Asp.net Project Training GuidelinesGTU Asp.net Project Training Guidelines
GTU Asp.net Project Training Guidelines
 

Similaire à Optimize Data Connectivity in .NET Applications

Bilbao oracle12c keynote
Bilbao  oracle12c keynoteBilbao  oracle12c keynote
Bilbao oracle12c keynoteAitor Ibañez
 
Security for Effective Data Storage in Multi Clouds
Security for Effective Data Storage in Multi CloudsSecurity for Effective Data Storage in Multi Clouds
Security for Effective Data Storage in Multi CloudsEditor IJCATR
 
Multi-Tenancy: Da Teoria à Prática, do DB ao Middleware
Multi-Tenancy: Da Teoria à Prática, do DB ao MiddlewareMulti-Tenancy: Da Teoria à Prática, do DB ao Middleware
Multi-Tenancy: Da Teoria à Prática, do DB ao MiddlewareBruno Borges
 
C4 delivering database as a service within your organization
C4   delivering database as a service within your organizationC4   delivering database as a service within your organization
C4 delivering database as a service within your organizationDr. Wilfred Lin (Ph.D.)
 
Enabling Integrity for the Compressed Files in Cloud Server
Enabling Integrity for the Compressed Files in Cloud ServerEnabling Integrity for the Compressed Files in Cloud Server
Enabling Integrity for the Compressed Files in Cloud ServerIOSR Journals
 
The Foundations of Cloud Data Storage
The Foundations of Cloud Data StorageThe Foundations of Cloud Data Storage
The Foundations of Cloud Data StorageJan-Erik Finlander
 
Data Back-Up and Recovery Techniques for Cloud Server Using Seed Block Algorithm
Data Back-Up and Recovery Techniques for Cloud Server Using Seed Block AlgorithmData Back-Up and Recovery Techniques for Cloud Server Using Seed Block Algorithm
Data Back-Up and Recovery Techniques for Cloud Server Using Seed Block AlgorithmIJERA Editor
 
Oracle GoldenGate Cloud Service Overview
Oracle GoldenGate Cloud Service OverviewOracle GoldenGate Cloud Service Overview
Oracle GoldenGate Cloud Service OverviewJinyu Wang
 
[TDC 2013] Integre um grid de dados em memória na sua Arquitetura
[TDC 2013] Integre um grid de dados em memória na sua Arquitetura[TDC 2013] Integre um grid de dados em memória na sua Arquitetura
[TDC 2013] Integre um grid de dados em memória na sua ArquiteturaFernando Galdino
 
2020 Cloud Data Lake Platforms Buyers Guide - White paper | Qubole
2020 Cloud Data Lake Platforms Buyers Guide - White paper | Qubole2020 Cloud Data Lake Platforms Buyers Guide - White paper | Qubole
2020 Cloud Data Lake Platforms Buyers Guide - White paper | QuboleVasu S
 
Oracle database 12c new features
Oracle database 12c new featuresOracle database 12c new features
Oracle database 12c new featuresJakkrapat S.
 
IRJET- A Survey on Remote Data Possession Verification Protocol in Cloud Storage
IRJET- A Survey on Remote Data Possession Verification Protocol in Cloud StorageIRJET- A Survey on Remote Data Possession Verification Protocol in Cloud Storage
IRJET- A Survey on Remote Data Possession Verification Protocol in Cloud StorageIRJET Journal
 
Part 2: Cloudera’s Operational Database: Unlocking New Benefits in the Cloud
Part 2: Cloudera’s Operational Database: Unlocking New Benefits in the CloudPart 2: Cloudera’s Operational Database: Unlocking New Benefits in the Cloud
Part 2: Cloudera’s Operational Database: Unlocking New Benefits in the CloudCloudera, Inc.
 
Geting cloud architecture right the first time linthicum interop fall 2013
Geting cloud architecture right the first time linthicum interop fall 2013Geting cloud architecture right the first time linthicum interop fall 2013
Geting cloud architecture right the first time linthicum interop fall 2013David Linthicum
 
Cloud computing for java and dotnet
Cloud computing for java and dotnetCloud computing for java and dotnet
Cloud computing for java and dotnetredpel dot com
 
Best practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationBest practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationesebeus
 
Provable multicopy dynamic data possession in cloud computing systems
Provable multicopy dynamic data possession in cloud computing systemsProvable multicopy dynamic data possession in cloud computing systems
Provable multicopy dynamic data possession in cloud computing systemsPvrtechnologies Nellore
 
Cloud computing(Basic).pptx
Cloud computing(Basic).pptxCloud computing(Basic).pptx
Cloud computing(Basic).pptxnischal52
 

Similaire à Optimize Data Connectivity in .NET Applications (20)

Bilbao oracle12c keynote
Bilbao  oracle12c keynoteBilbao  oracle12c keynote
Bilbao oracle12c keynote
 
Security for Effective Data Storage in Multi Clouds
Security for Effective Data Storage in Multi CloudsSecurity for Effective Data Storage in Multi Clouds
Security for Effective Data Storage in Multi Clouds
 
Multi-Tenancy: Da Teoria à Prática, do DB ao Middleware
Multi-Tenancy: Da Teoria à Prática, do DB ao MiddlewareMulti-Tenancy: Da Teoria à Prática, do DB ao Middleware
Multi-Tenancy: Da Teoria à Prática, do DB ao Middleware
 
C4 delivering database as a service within your organization
C4   delivering database as a service within your organizationC4   delivering database as a service within your organization
C4 delivering database as a service within your organization
 
Enabling Integrity for the Compressed Files in Cloud Server
Enabling Integrity for the Compressed Files in Cloud ServerEnabling Integrity for the Compressed Files in Cloud Server
Enabling Integrity for the Compressed Files in Cloud Server
 
The Foundations of Cloud Data Storage
The Foundations of Cloud Data StorageThe Foundations of Cloud Data Storage
The Foundations of Cloud Data Storage
 
Data Back-Up and Recovery Techniques for Cloud Server Using Seed Block Algorithm
Data Back-Up and Recovery Techniques for Cloud Server Using Seed Block AlgorithmData Back-Up and Recovery Techniques for Cloud Server Using Seed Block Algorithm
Data Back-Up and Recovery Techniques for Cloud Server Using Seed Block Algorithm
 
Oracle GoldenGate Cloud Service Overview
Oracle GoldenGate Cloud Service OverviewOracle GoldenGate Cloud Service Overview
Oracle GoldenGate Cloud Service Overview
 
[TDC 2013] Integre um grid de dados em memória na sua Arquitetura
[TDC 2013] Integre um grid de dados em memória na sua Arquitetura[TDC 2013] Integre um grid de dados em memória na sua Arquitetura
[TDC 2013] Integre um grid de dados em memória na sua Arquitetura
 
2020 Cloud Data Lake Platforms Buyers Guide - White paper | Qubole
2020 Cloud Data Lake Platforms Buyers Guide - White paper | Qubole2020 Cloud Data Lake Platforms Buyers Guide - White paper | Qubole
2020 Cloud Data Lake Platforms Buyers Guide - White paper | Qubole
 
Oracle database 12c new features
Oracle database 12c new featuresOracle database 12c new features
Oracle database 12c new features
 
IRJET- A Survey on Remote Data Possession Verification Protocol in Cloud Storage
IRJET- A Survey on Remote Data Possession Verification Protocol in Cloud StorageIRJET- A Survey on Remote Data Possession Verification Protocol in Cloud Storage
IRJET- A Survey on Remote Data Possession Verification Protocol in Cloud Storage
 
Sdn in big data
Sdn in big dataSdn in big data
Sdn in big data
 
Part 2: Cloudera’s Operational Database: Unlocking New Benefits in the Cloud
Part 2: Cloudera’s Operational Database: Unlocking New Benefits in the CloudPart 2: Cloudera’s Operational Database: Unlocking New Benefits in the Cloud
Part 2: Cloudera’s Operational Database: Unlocking New Benefits in the Cloud
 
Geting cloud architecture right the first time linthicum interop fall 2013
Geting cloud architecture right the first time linthicum interop fall 2013Geting cloud architecture right the first time linthicum interop fall 2013
Geting cloud architecture right the first time linthicum interop fall 2013
 
Cloud computing for java and dotnet
Cloud computing for java and dotnetCloud computing for java and dotnet
Cloud computing for java and dotnet
 
Best practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentationBest practices for application migration to public clouds interop presentation
Best practices for application migration to public clouds interop presentation
 
Provable multicopy dynamic data possession in cloud computing systems
Provable multicopy dynamic data possession in cloud computing systemsProvable multicopy dynamic data possession in cloud computing systems
Provable multicopy dynamic data possession in cloud computing systems
 
Maximize Availability With Oracle Database 12c
Maximize Availability With Oracle Database 12cMaximize Availability With Oracle Database 12c
Maximize Availability With Oracle Database 12c
 
Cloud computing(Basic).pptx
Cloud computing(Basic).pptxCloud computing(Basic).pptx
Cloud computing(Basic).pptx
 

Plus de Abhishek Kant

Omni-Channel Marketing in the Cloud
Omni-Channel Marketing in the CloudOmni-Channel Marketing in the Cloud
Omni-Channel Marketing in the CloudAbhishek Kant
 
From Data To Insights
From Data To InsightsFrom Data To Insights
From Data To InsightsAbhishek Kant
 
New Age User Interfaces
New Age User InterfacesNew Age User Interfaces
New Age User InterfacesAbhishek Kant
 
Digital Transformation
Digital TransformationDigital Transformation
Digital TransformationAbhishek Kant
 
Swiss Army Knife for Automation Testing
Swiss Army Knife for Automation TestingSwiss Army Knife for Automation Testing
Swiss Army Knife for Automation TestingAbhishek Kant
 
Building Native Android Apps with JavaScript
Building Native Android Apps with JavaScriptBuilding Native Android Apps with JavaScript
Building Native Android Apps with JavaScriptAbhishek Kant
 
Beginning IoT for Developers
Beginning IoT for DevelopersBeginning IoT for Developers
Beginning IoT for DevelopersAbhishek Kant
 
Drag and Drop Application Development with Progress Rollbase
Drag and Drop Application Development with Progress RollbaseDrag and Drop Application Development with Progress Rollbase
Drag and Drop Application Development with Progress RollbaseAbhishek Kant
 
Using SignalR with Kendo UI
Using SignalR with Kendo UIUsing SignalR with Kendo UI
Using SignalR with Kendo UIAbhishek Kant
 
Leverage Progress Technologies for Telerik Developers
Leverage Progress Technologies for Telerik DevelopersLeverage Progress Technologies for Telerik Developers
Leverage Progress Technologies for Telerik DevelopersAbhishek Kant
 
Develop Hybrid Mobile Application with Azure Mobile Services and Telerik Plat...
Develop Hybrid Mobile Application with Azure Mobile Services and Telerik Plat...Develop Hybrid Mobile Application with Azure Mobile Services and Telerik Plat...
Develop Hybrid Mobile Application with Azure Mobile Services and Telerik Plat...Abhishek Kant
 
Gathering App Intelligence for your Web, Desktop and Mobile apps
Gathering App Intelligence for your Web, Desktop and Mobile appsGathering App Intelligence for your Web, Desktop and Mobile apps
Gathering App Intelligence for your Web, Desktop and Mobile appsAbhishek Kant
 
Solving Agile Project Management Challenges with TeamPulse
Solving Agile Project Management Challenges with TeamPulseSolving Agile Project Management Challenges with TeamPulse
Solving Agile Project Management Challenges with TeamPulseAbhishek Kant
 
Collaborative Agile Development with TeamPulse
Collaborative Agile Development with TeamPulseCollaborative Agile Development with TeamPulse
Collaborative Agile Development with TeamPulseAbhishek Kant
 
Introduction to New Age Applications with Kendo UI
Introduction to New Age Applications with Kendo UIIntroduction to New Age Applications with Kendo UI
Introduction to New Age Applications with Kendo UIAbhishek Kant
 
New Age Applications with Kendo UI
New Age Applications with Kendo UINew Age Applications with Kendo UI
New Age Applications with Kendo UIAbhishek Kant
 
Building Enterprise Apps for windows Phone 7
Building Enterprise Apps for windows Phone 7Building Enterprise Apps for windows Phone 7
Building Enterprise Apps for windows Phone 7Abhishek Kant
 
Getting Started with Microsoft Office 365
Getting Started with Microsoft Office 365Getting Started with Microsoft Office 365
Getting Started with Microsoft Office 365Abhishek Kant
 
Social Media for Social Causes - Climate
Social Media for Social Causes - ClimateSocial Media for Social Causes - Climate
Social Media for Social Causes - ClimateAbhishek Kant
 

Plus de Abhishek Kant (20)

Omni-Channel Marketing in the Cloud
Omni-Channel Marketing in the CloudOmni-Channel Marketing in the Cloud
Omni-Channel Marketing in the Cloud
 
From Data To Insights
From Data To InsightsFrom Data To Insights
From Data To Insights
 
New Age User Interfaces
New Age User InterfacesNew Age User Interfaces
New Age User Interfaces
 
Digital Transformation
Digital TransformationDigital Transformation
Digital Transformation
 
Swiss Army Knife for Automation Testing
Swiss Army Knife for Automation TestingSwiss Army Knife for Automation Testing
Swiss Army Knife for Automation Testing
 
Building Native Android Apps with JavaScript
Building Native Android Apps with JavaScriptBuilding Native Android Apps with JavaScript
Building Native Android Apps with JavaScript
 
Beginning IoT for Developers
Beginning IoT for DevelopersBeginning IoT for Developers
Beginning IoT for Developers
 
Drag and Drop Application Development with Progress Rollbase
Drag and Drop Application Development with Progress RollbaseDrag and Drop Application Development with Progress Rollbase
Drag and Drop Application Development with Progress Rollbase
 
Using SignalR with Kendo UI
Using SignalR with Kendo UIUsing SignalR with Kendo UI
Using SignalR with Kendo UI
 
Leverage Progress Technologies for Telerik Developers
Leverage Progress Technologies for Telerik DevelopersLeverage Progress Technologies for Telerik Developers
Leverage Progress Technologies for Telerik Developers
 
Develop Hybrid Mobile Application with Azure Mobile Services and Telerik Plat...
Develop Hybrid Mobile Application with Azure Mobile Services and Telerik Plat...Develop Hybrid Mobile Application with Azure Mobile Services and Telerik Plat...
Develop Hybrid Mobile Application with Azure Mobile Services and Telerik Plat...
 
Gathering App Intelligence for your Web, Desktop and Mobile apps
Gathering App Intelligence for your Web, Desktop and Mobile appsGathering App Intelligence for your Web, Desktop and Mobile apps
Gathering App Intelligence for your Web, Desktop and Mobile apps
 
Solving Agile Project Management Challenges with TeamPulse
Solving Agile Project Management Challenges with TeamPulseSolving Agile Project Management Challenges with TeamPulse
Solving Agile Project Management Challenges with TeamPulse
 
Collaborative Agile Development with TeamPulse
Collaborative Agile Development with TeamPulseCollaborative Agile Development with TeamPulse
Collaborative Agile Development with TeamPulse
 
Introduction to New Age Applications with Kendo UI
Introduction to New Age Applications with Kendo UIIntroduction to New Age Applications with Kendo UI
Introduction to New Age Applications with Kendo UI
 
New Age Applications with Kendo UI
New Age Applications with Kendo UINew Age Applications with Kendo UI
New Age Applications with Kendo UI
 
Building Enterprise Apps for windows Phone 7
Building Enterprise Apps for windows Phone 7Building Enterprise Apps for windows Phone 7
Building Enterprise Apps for windows Phone 7
 
Getting Started with Microsoft Office 365
Getting Started with Microsoft Office 365Getting Started with Microsoft Office 365
Getting Started with Microsoft Office 365
 
Windows 7 Features
Windows 7 FeaturesWindows 7 Features
Windows 7 Features
 
Social Media for Social Causes - Climate
Social Media for Social Causes - ClimateSocial Media for Social Causes - Climate
Social Media for Social Causes - Climate
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
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 ApplicationsAlberto González Trastoy
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
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.pdfryanfarris8
 
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-...Steffen Staab
 
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.pdfkalichargn70th171
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
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-learnAmarnathKambale
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
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 WorkerThousandEyes
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
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 2024Mind IT Systems
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
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.pdfVishalKumarJha10
 

Dernier (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
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
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
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
 
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-...
 
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
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
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
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
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
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
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
 

Optimize Data Connectivity in .NET Applications

  • 1. Optimize Database Connectivity in .NET Applications March 17, 2016 Avadhoot Kulkarni
  • 2. © 2013 Progress Software Corporation. All rights reserved.2 INTRODUCTION Avadhoot Kulkarni Product Owner ODBC, JDBC & ADO.NET Drivers, Progress DataDirect https://www.progress.com/net Avadhoot.Kulkarni@progress.com
  • 3. © 2013 Progress Software Corporation. All rights reserved.3 AGENDA Components of Performance Performance Strategy ADO.NET Data Provider  Architecture of Data Provider  Connection Improvements  Query Execution Improvement  Result Fetching Improvements  Coding Guidelines
  • 4. © 2013 Progress Software Corporation. All rights reserved.4 Components of Performance Database Network Data Provider Data Access Code Client Infrastructure
  • 5. © 2013 Progress Software Corporation. All rights reserved.5 Do not fix your applications for better performance, Design it to perform better. PERFORMANCE STRATEGY
  • 6. © 2013 Progress Software Corporation. All rights reserved.6 Architecture
  • 7. © 2013 Progress Software Corporation. All rights reserved.7 Architecture of Data Provider  Architecture • Managed vs. Unmanaged • How well you manage the resources – Database Capabilities – Network Bandwidth – Disk I/O – CPU – Memory
  • 8. © 2013 Progress Software Corporation. All rights reserved.8 Connection Improvements
  • 9. © 2013 Progress Software Corporation. All rights reserved.9 Connection Improvements  Avoid XA (Distributed Transaction) Enabled Connections (Enlist)  Use Connection Pooling • Benefit • Pooling strategies • When to avoid  Use Bigger Protocol Packet Sizes  Avoid Distributed Transactions  Choose Extended Security Wisely
  • 10. © 2013 Progress Software Corporation. All rights reserved.10 Use Connection Pooling 1. Application Server Started; Connection Pool is populated 2. Application Makes a Connection Request 3. A pooled Connection is given to application. 4. Application is Connected to database. 5. When the connection is closed, it is placed back into the pool. Application Server Application
  • 11. © 2013 Progress Software Corporation. All rights reserved.11 When to avoid Connection Pooling  Frequently Restarting Applications They pay upfront cost of populating the pool and hold up resources, which all gets lost when application restarts.  Single User Applications (e.g. Report Writers) If the application needs to establish connection to database once in a while, for single use, resources held by pool hamper the performance more than the pooling could help.  Single User Batch Jobs Pooling offers no advantage to such applications, as they just need one connection. Especially as these batch jobs are executed off ours when there is no real load on server.
  • 12. © 2013 Progress Software Corporation. All rights reserved.12 Use Bigger Protocol Packet Size  Communication packet size is limited to Servers max packet size limit.  Typically, larger the packet size, the better the performance
  • 13. © 2013 Progress Software Corporation. All rights reserved.13 Avoid Distributed Transactions  Distributed Transactions are used to execute atomic operations across multiple connections. These are needed to keep data consistent.  Requires communication between multiple servers, Hence are very slow compared to local transactions.  This co-ordination could be between several types of database servers e.g. SQL Server, Oracle, DB2, Sybase, MySQL etc. or, multiple instances of same database types.  Be very cautious while designing applications; multiple databases architecture would most likely require distributed transactions.
  • 14. © 2013 Progress Software Corporation. All rights reserved.14 Choose Extended Security Wisely  Performance Penalties are side effects of extended security. Let’s see if its possible to limit them…  There are 2 types to the extended security • Network Authentications • Data Encryption over Network
  • 15. © 2013 Progress Software Corporation. All rights reserved.15 Improve Kerberos Authentication Performance  Bottle Neck: As for each connection, client need to get a ticket from Kerberos server, it can quickly become a bottle neck if it’s a shared server with lots of network heavy services running on it.  Place Kerberos Server on Dedicated machine  Reduce Networking services run on this machine to bare minimum  Make sure you have fast, reliable network connection to the machine
  • 16. © 2013 Progress Software Corporation. All rights reserved.16 Avoid Unnecessary Data Encryption  For secure transition of data another layer is added over TCP/IP i.e. SSL or any proprietary Encryption of database vendor.  Performance Intensive steps • Initial Handshake • Encryption and Decryption  Usually longer the Cipher Key means more the security but lesser the performance.  Use encrypted connections for sensitive data and unencrypted for non-sensitive data. Though, not all databases supports this functionality.
  • 17. © 2013 Progress Software Corporation. All rights reserved.17 Query Execution Improvement
  • 18. © 2013 Progress Software Corporation. All rights reserved.18 Query Execution Improvements  Use Transactions (Auto-Commit)  Use Prepared Queries  Use Statement Caching/Pooling  Use Parameterized Batching  Use Bulk Protocols
  • 19. © 2013 Progress Software Corporation. All rights reserved.19 Use Transactions (Auto-Commit=FALSE)  In ADO.NET Default Auto Commit Mode is TRUE.  DB2 do not support Auto-Commit mode, Data Provider by default send commit request after every successful operation.  Application has no control on when the Commit is fired. Mostly it gets fired even when there is nothing to commit.  Every commit and Rollback operation is performance Intensive • Requires Disk I/O and sometimes network roundtrips. Cont.…
  • 20. © 2013 Progress Software Corporation. All rights reserved.20 Use Transactions (Auto-Commit=FALSE)  In most cases you will want to turn off Auto-Commit mode. Start BeginTransaction() to start local transaction in your application.  Leaving transactions active can reduce throughput by holding locks for longer than necessary. Committing transactions in intervals gives best performance with acceptable concurrency.
  • 21. © 2013 Progress Software Corporation. All rights reserved.21 Use Prepared Queries  Calling Command.Prepare() usually compiles the SQL statement into query plan for efficiency.  Available until the connection is closed.  Though initial execution overhead of prepare is high, advantage is realised in subsequent executions.  Some databases like DB2 and Oracle supports Prepare and execute together, which has multiple benefits.
  • 22. © 2013 Progress Software Corporation. All rights reserved.22 Use Statement Caching/Pooling  Statement Pool is group of prepared statements that an application can reuse.  Its not a feature of database systems but, is a feature of drivers.  Statement Cache or Pool is associated with a Connection.  Not all drivers/providers in market support statement caching. To make use of this feature, make sure you deploy a driver/provider with your database application which does.
  • 23. © 2013 Progress Software Corporation. All rights reserved.23 Use Statement Caching/Pooling  Use statement caching if 90% or more of your statements are executed multiple times.  Use Parameterized queries to make best use of Prepared Queries and statement caching.  Statement pool max size should not exceed server’s limit for maximum number of active statements per connection.  Statement pool max size should be equal or greater than the number of different statements executed by your application multiple times.
  • 24. © 2013 Progress Software Corporation. All rights reserved.24 Using Parameter Array Binding/Batches  To Reduce the number of network roundtrips when updating large amounts of data, you can bind arrays to parameter value or execute Batches of SQL Statements.  You can have similar effect while using disconnected Datasets to update the data if your data provider supports parameter Array binding. To enable this, you can set DataAdapter.UpdateBatchSize=<No of items in your Array>  Not all Data Providers and databases supports this feature, make sure you are using a driver/data provider which does with you database application.
  • 25. © 2013 Progress Software Corporation. All rights reserved.25 Using Bulk Load  If your data provider support bulk load (aka BulkCopy), inserting large amount of data into database server will be even faster than using Array Binding.  You can use BulkLoad functionality through xxxBulkCopy class which many data Providers support.  In Bulk Load, rows are sent as continuous stream, without making extra network roundtrips. In addition, during Bulk Copy database can also optimize the way the rows are inserted.  Bulk Load can have negative impact, as data inserted with bulk load may ignore referential integrity, causing consistency problems with data in database.
  • 26. © 2013 Progress Software Corporation. All rights reserved.26 Result Fetching Improvements
  • 27. © 2013 Progress Software Corporation. All rights reserved.27 Fetching the Results Delay Retrieving long data  Most of the applications do not need long data by default, but fetching them is a costly operation.  Avoid long data columns such as XML, BLOB, CLOB, NLONGVARCHAR, LONGVARCHAR, LONGVARBINARY in the select list.  Avoid “Select *” queries on tables which contain long data columns. Limiting Amount of Data Retrieved  Use MaxRows or RowSetSize to limit maximum numbers of rows returned by the server to Data Provider.  This will reduce the number of network round trips.  Limit the row size, by requesting limited data of the long columns when requested. E.g. First 1MB of 10MB long log entry.
  • 28. © 2013 Progress Software Corporation. All rights reserved.28 Use Get<Specific-Type> Method to Fetch Data  Avoid using generic GetValue() to fetch Data From DataReader. It requires extra processing to convert the value data type to a reference datatype. This process is called boxing.  One can avoid boxing by calling Specific Get<Specific-Type>() APIs. E.g. GetInt32()
  • 29. © 2013 Progress Software Corporation. All rights reserved.29 Choose Right Data Types Data Type Processing Binary Transfer of raw bytes from database to application buffers. int, smallint, float Transfer of fixed formats Decimal Transfer of proprietary data, Driver must decode which uses CPU. Usually Convert To String. Timestamp Transfer of proprietary data, Driver must decode which uses CPU. Usually Convert To Multipart structure or string. char Typically transfer of large volume of data which needs code page translation. Code page translation is usually CPU intensive intensive and proportional to size of data.
  • 30. © 2013 Progress Software Corporation. All rights reserved.30 Coding Guidelines
  • 31. © 2013 Progress Software Corporation. All rights reserved.31 Coding Guidelines  Executing SQL Statements • ExecuteNonQuery() – returns number of Rows Affected but does not return actual rows. – Use this for DML Operations like Insert, Update and Delete. • ExecuteReader() – Returns DataReader object containing one or more rows of data. – Use this for Select queries which returns complete Result Set • ExecuteScalar() – Returns first column of first row of the result set. – Use this for selects which returns single value is result set (or when application is just interested in single value first column of first row).  Though any API can be used for any type of query execution, they are usually optimized for their specific purpose and contribute to a better performance.
  • 32. © 2013 Progress Software Corporation. All rights reserved.32 Coding Guidelines  100% Managed Providers • Using unmanaged code can significantly impact the performance. • If managed provider needs unmanaged database clients or other unmanaged pieces then they are not true managed providers. • Only few vendors produce true managed providers that work as 100% managed component.  Selecting .NET Objects • Avoid CommandBuilder • Choosing between DataReader and Datasets
  • 33. © 2013 Progress Software Corporation. All rights reserved.33 References THE DATA ACCESS HANDBOOK Achieving optimal database application Performance and scalability John Goodson & Robert A. Steward Published By : PRENTICE HALL in 2009

Notes de l'éditeur

  1. Introduction of Presenter 10 Years of Experience in Database driver development Product Owner of ODBC, JDBC and ADO.NET Drivers. Owning ADO.NET Products for last 3 Years ADO.NET Product lines currently supports Connectivity to Oracle, DB2, Microsoft SQL Server and Sybase ASE. Entity Framework 6.0 Support for Oracle and DB2 for i.
  2. What we are going to cover Not Covering Entity Framework in this session, if interested pleas get back to us and we would try to schedule something. Will stay focused on the core ADO.NET Connectivity to Relation Databases for this session.
  3. Different components of Performance and How does it impacts. Database – Database tuning, indexing, normalizations are still important part of performance improvements. CPU, Memory, Network bandwidth, sharing of resources all becomes imp. Network – This is one of the critical resource which impacts the performance. Fewer the network round trips better the performance. Example Data provider – Provider architecture, Configurations and how it handles the system resources are key factors Data Access Code – A well written Data Access Code helps Data provider to optimize the executions and improve performance, we will touch on this Client Infrastructure – Not only Database server, but resources available on client are also play important part in overall performance of the application
  4. Performance Strategy : Usually we build an application to meet a business requirement; and then once we notice a performance issue; we reactively try and fix the performance problems. This is very costly as appose to designing the application proactively with performance as an important design criteria. Here are some design guidelines on how to make best use of your data Adaptor in your application...
  5. Managed vs Un-Managed Managed Architecture provides a lot more than just performance, Garbage Collector, Type Safetly, Code Access Security are just few advantages to mention. Unmanaged calls P/Invokes requires security context switching which has high cost. The Data provider should be smart to utilize the resources on both server and client wisely to improve performance, each of these sub-items can impact the performance of your application.
  6. Distributed Transaction Enabled Connections take more time and Resources on server to create on few backend e.g. DB2 We will discuss each of them in coming slides
  7. Connections – Opening a Connection is very expensive Sets up Environment on both client and Server side with required memory buffers Opens Sockets/communication channel, Certificate/Key Validations in case of SSL/Encryptions. Connection Pooling is a mechanism to reuse the existing sets of Connections and avoid the multiple open and close calls for better performance Fix Size of Pool Strategy 1: Fill up the pool with connections at the start of application. Drawback, slow start Strategy 2: Open the connection only once needed, if matching connection found in pool, loaded from there, else create new one. Close as soon as the work is done, so that it will be available for next request. More complex strategies like FIFO, LIFO etc.
  8. Protocol Packet Size defines numbers of bytes can be transferred in single network round trip. All database instances and Data Providers can be configured to a max value for this packet size. This max Packet size is used by database server and data providers to initialize the internal arrays/structures required for communication. Actual Communication Packet size is Minimum of Server’s Max Packet Size and Clients Max Packet Size. More the Packet Size, less are the network roundtrips to transfer the same data across, Hence better the performance
  9. Distributed Transaction: Transaction spanning multiple connection for same database or across multiple databases. Suppose a company has different databases for their payroll and accounting. Employee Salary operations needs to update both of these as an atomic operation.
  10. Initial Handshake Multiple round trips Certificate or Key Validation Cipher Negotiations Usual Connection stuff
  11. Auto Commit TRUE means Commit is performed after every SQL statement that servers as request to server i.e. Insert, Update, Delete and Select.
  12. Because the database objects/rows/pages are locked by transactions they have negative impact on the throughput. The choice of Isolation Levels also determines this impact.
  13. Server can use this cached query plans for multiple executions of same statement without any overhead. Benefit 1: It reduced extra round trip of prepare and execute separate. Benefit 2: You don’t have to keep track of which statements you have prepared for multiple executions and which you have not. Dynamic queries (which uses Parameters) are better than static (which use literals) for performance, as dynamic queries can be prepared once and executed multiple time with different parameter values.
  14. If your application has same statements executed multiple times, then statement caching/pooling can help a lot in the performance improvement.
  15. In ArrayBinding, all the parameters Values are passed to the server in single go. It reduces the network round trips, compared to one row at a time approach. If you set DataAdapter.UpdateBatchSize property; Data Providers will internally use ArrayBinding Mechanism to speed up the execution.
  16. Bulk Load is done through the Specialized protocols exposed by database vendor to fast uploading of data. Not all database vendors or data providers support this functionality. Microsoft Tools like SSIS also can benefit from BulkLoad functionality to insert large amount of data.
  17. Writing SQL Statements to Fetch limited LOB data Facebook –Read More… Oracle - LOB Pre-fetch This helps in prefetching the LOB contents, chunk size and actual size along with the statement execution, without doing additional round trips. This will be beneficial especially if LOB sizes are small.
  18. Boxing and Unboxing is a performance hit compared to the normal assignment operations. If you are fetching high volume of data in your application, the performance hit because of this can quickly become considerable.
  19. The DataTypes are listed in the order of the post-processing needed by data providers, after fetching them from the server. If your application is fetching huge amount of data from the server, choosing the right datatypes can save you very important CPU cycles.
  20. ExecuteNonQuery - Do not fetch resultset description, which saves valuable network roundtrips. Do not allocate/deallocate buffers to store the resultset descriptions on client/application server side. ExecuteScalar - As it needs just first Column of first row; it can limit the amount of data retrieved.
  21. CommandBuilder You can manually write a lot better (performant) update, insert or delete queries than CommandBuilder can possibly generate. Though it is exciting to use CommandBuilder, as it provides speed of development, it hampers the application performance. DataReader vs DataSets If your application is fetching huge amount of read only data, DataReader is a better choice, which is memory efficient. If you application needs to be used in disconnected environment, with non-sequential updates, then DataSet it a better choice.
  22. Thank You. Questions?