Here are fifteen tips that you can use to ensure your Application Designs are performing in the most efficient manner possible.
-
Use stored procedures instead of passing ANSI-compliant SQL
to the database.
This can reduce network traffic because your client will send
only the stored procedure name to the server, (perhaps with some parameters), instead of the large
heavy-duty queries text. Stored procedures can also be used to enhance security
and conceal underlying data objects. For example, you can give the
users permission to execute the stored procedure to work with the
restricted set of the columns and data. -
Design the application to run queries asynchronously.
This can improve performance of your application because one query
will not have to wait for the next before it runs. -
Consider using Microsoft Transaction Server (MTS) for object pooling.
This can improve the performance of your application because MTS allows
COM objects to be pooled. -
If most of the users have modern power computers (‘fat’ clients),
consider design application to make client data caching.
By doing so, you can reduce the load of your SQL Server because
when users will need to access the data they will use local
desktop resources, not SQL Server resources. -
Consider designing the application to take advantage of the n-tier
application model.
By using the n-tier application model, you can increase the application’s
performance and scalability. -
Try to restrict the result sets by using the WHERE clause in your
SELECT statements.
This can result in good performance benefits because SQL Server will
return to the client only particular rows, not all rows from the table(s).
This can reduce network traffic and boost the overall performance of
the query. -
Try to restrict the result sets by returning only the particular
columns from the table, not all of the table’s columns.
This can result in good performance benefits because SQL Server will
return to the client only particular columns, rahter than all of the table’s columns. This
can reduce network traffic and boost the overall performance of the query. -
Try to restrict the result sets by using the select statements
with the TOP keyword.
This can improve the performance of your application because a smaller
result set will be returned. This can also reduce the traffic between
the server and the client. -
Use SQL Server cursors to allow your application to fetch a small
subset of rows instead of fetching all of the table’s rows.
SQL Server cursors allow the application to fetch any block of rows
from the result set, including the next n rows, the previous n rows,
or n rows starting at a certain row number in the result set.
Using SQL Server cursors can reduce network traffic because a
smaller result set will be returned. -
Use ADO or OLE DB for accessing data from the applications that
need high performance.
This can improve performance of your application in comparison with
using DAO or ODBC. OLE DB is a low-level COM API for accessing
data and ADO is an application-level interface that uses OLE DB.
Microsoft recommends using OLE DB for developing tools, utilities,
or low-level components that need high performance and using ADO
for general-purpose access programs in business applications
(Accounting, Human Resources, and Customer Management). -
When you connect to SQL Server, use ‘Microsoft OLE DB Provider
for SQL Server’ instead of ‘Microsoft ODBC Driver for SQL Server’.
Because the native OLE DB provider is faster than the ODBC provider, you
should use the OLE DB provider whenever possible. -
Set a lock time-out so that queries used in your application will
not run indefinitely.
You can use the SET LOCK_TIMEOUT command to allow an application to
set a maximum time that a statement waits on a blocked resource.
When the LOCK_TIMEOUT setting is exceeded, the blocked statement
is canceled automatically, and error message 1222 “Lock request
time-out period exceeded” will be returned to the application.
Your application should have an error handler that can trap the error
message 1222. -
Avoid using both OLTP and OLAP transactions within the same database.
Because OLTP transactions are optimal for managing changing data and
OLAP transactions are optimal for data queries that do not change data,
try to relegate OLTP and OLAP transactions to their own databases. -
Try to avoid using the Refresh method when you call stored procedures
from the ADO Command object.
This can improve performance of your application because using the Refresh
method produces extra network traffic. You should explicitly create the
stored procedure parameters using ADO code, instead of using the Refresh
method to identify the parameters of a stored procedure. -
Avoid creating transactions using ADO’s methods.
Try to create transactions inside a stored procedure on the SQL Server.
By doing so, you can reduce network traffic and boost overall
application performance.