Database Reference
In-Depth Information
Throttling
SQL Azure runs in a multitenant environment, which implies that your databases share server resources
with databases from other companies. As a result, the SQL Azure platform has implemented a throttling
algorithm that prevents large queries from affecting other users from a performance standpoint. If your
application issues a large query that could potentially affect other databases, your database connection
is terminated.
In addition, to preserve valuable resources and control availability, SQL Azure disconnects idle
sessions automatically. The session timeout is set to 30 minutes. When you're designing for SQL Azure,
your application should account for automatic session recovery. This also means that performance
testing in your development phase becomes more critical.
Note In the context of SQL Azure, throttling means terminating the database connection. Whatever the reason
for being throttled is, the outcome is the same: loss of database connection.
Application Design Considerations
When considering how to design your application to best take advantage of SQL Azure, you need to
evaluate the following items:
Database roundtrips. How many roundtrips are necessary to perform a
specific function in your application? More database roundtrips mean a
slower application, especially when the connection is made over an Internet
link and is SSL encrypted.
Caching. You can improve response time by caching resources on the client
machine or storing temporary data closer to the consumer.
Property lazy loading. In addition to reducing roundtrips, it's critical to load
only the data that's absolutely necessary to perform the required functions.
Lazy loading can help significantly in this area.
Asynchronous user interfaces. When waiting is unavoidable, providing a
responsive user interface can help. Multithreading can assist in providing
more responsive applications.
Shards. A shard is a way of splitting your data across multiple databases in a
manner that is as transparent as possible to your application code, thus
improving performance.
Designing an application for performance becomes much more important for cloud computing
solutions that depend on remote storage. For more information on these topics and more, see Chapter
10.
Search WWH ::




Custom Search