Summary


This chapter looked at several ways to improve the performance of a SQL-NS application. Some of the strategies described in this chapter can be applied during the design and prototype phase, and others are typically implemented after the basic functionality of the application has been built.

SQL-NS applications are driven by the flow of data, so improving the data flow efficiency within an application can bring about significant performance improvements. In the music store application, we used normalization to reduce the amount of event data that flows in. Similar techniques can be used to normalize the subscription and notification data. These techniques do improve data flow, but often require trade-offs in the complexity of the match rules and content formatters.

Prefiltering events is another strategy that can be used to improve data flow efficiency. Event providers may be able to easily filter out parts of an event stream that won't match any subscriptions. Doing this prevents the generator from unnecessarily evaluating subscriptions against those events and thereby improves the application's notification generation performance. Prefiltering is often done by performing simple checks against the subscription data, which can be queried through views that SQL-NS provides. When prefiltering events, you must make sure that chronicles in the application are updated correctly. Chronicle rules may need to run against event data, even if that data does not match any subscriptions. In such cases, the event data cannot be prefiltered.

To improve notification generation performance, you should optimize the chronicle and match rules that the generator runs. These rules are just SQL queries, and the standard SQL query optimization techniques can be used. This chapter explains how to obtain the SQL query plans for a SQL-NS application's rules with Management Studio and use them to identify performance problems. This chapter also covers the ADF elements that can be used to create indexes on the event and subscription tables.

In addition to tuning the application's rules, you can also improve notification generation performance by choosing an optimal quantum duration and setting appropriate quantum limits. This chapter describes how these settings can affect performance, explains the trade-offs involved, and illustrates the ADF elements used to specify them.

A number of settings can affect notification distribution performance. You can adjust the notification batch size to allow for more parallelism in the distributor, tune the distributor quantum duration to provide an optimal polling interval, set the distributor's thread pool size, and refine the distributor's logging behavior. In this chapter, we looked at the effects of all these settings, as well as the ADF elements used to specify them. In addition, this chapter described how the use of multicast delivery and asynchronous delivery protocols can boost the performance of the distributor.

Every application has unique characteristics and performance requirements that drive performance-tuning decisions. It is difficult to provide sound recommendations that apply to all applications, but the information in this chapter provides the background you can use to make the appropriate choices for your applications. When in doubt, take performance measurements to understand the performance characteristics of your applications and how you might best improve them. Chapter 13 builds on the material in this chapter by looking at ways to improve an application's performance by designing an optimal deployment environment.




Microsoft SQL Server 2005 Notification Services
Microsoft SQL Server 2005 Notification Services
ISBN: 0672327791
EAN: 2147483647
Year: 2006
Pages: 166
Authors: Shyam Pather

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net