Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Save to My Library
Look up keyword or section
Like this

Table Of Contents

CHAPTER 1 Introduction to Performance and Tuning
CHAPTER 2 Locking Overview
How locking affects performance
Overview of locking
Granularity of locks and locking schemes
Allpages locking
Datapages locking
Datarows locking
Types of locks in Adaptive Server
Page and row locks
Table locks
Demand locks
Range locking for serializable reads
Lock compatibility and lock sufficiency
How isolation levels affect locking
Isolation Level 0, read uncommitted
Isolation Level 1, read committed
Isolation Level 2, repeatable read
Isolation Level 3, serializable reads
Adaptive Server default isolation level
Lock types and duration during query processing
Lock types during create index commands
Locking for select queries at isolation Level 1
Table scans and isolation Levels 2 and 3
Isolation Level 2 and Allpages-Locked tables
When update locks are not required
Locking during or processing
Skipping uncommitted inserts during selects
Using alternative predicates to skip nonqualifying rows
Pseudo column-level locking
Select queries that do not reference the updated column
Qualifying old and new values for uncommitted updates
Suggestions to reduce contention
CHAPTER 3 Locking Configuration and Tuning
Locking and performance
Locking and performance 39
Using sp_sysmon and sp_object_stats
Reducing lock contention
Additional locking guidelines
Configuring locks and lock promotion thresholds
Configuring Adaptive Server’s lock limit
Estimating number of locks for data-only-locked tables
Setting lock promotion thresholds
Choosing the locking scheme for a table
Analyzing existing applications
Choosing a locking scheme based on contention statistics
Monitoring and managing tables after conversion
Applications not likely to benefit from data-only locking
Tables where clustered index performance must remain high
Optimistic index locking
Understanding optimistic index locking
Using optimistic index locking
Cautions and issues
CHAPTER 4 Using Locking Commands
Specifying the locking scheme for a table
Specifying a server-wide locking scheme
Specifying the locking scheme for a table 61
Specifying a locking scheme with create table
Changing a locking scheme with alter table
Before and after changing locking schemes
Expense of switching to or from allpages locking
Sort performance during alter table
Specifying a locking scheme with select into
Controlling isolation levels
Setting isolation levels for a session
Syntax for query-level and table-level locking options
Using holdlock, noholdlock, or shared
Using the at isolation clause
Making locks more restrictive
Making locks less restrictive
Readpast locking
Cursors and locking
Using the shared keyword
Additional locking commands
lock table Command
Lock timeouts
CHAPTER 5 Locking Reports
Locking tools
Getting information about blocked processes
Viewing locks
Intrafamily blocking during network buffer merges
Deadlocks and concurrency
Server-side versus application-side deadlocks
Server task deadlocks
Printing deadlock information to the error log
Avoiding deadlocks
Delaying deadlock checking
Identifying tables where concurrency is a problem
Lock management reporting
CHAPTER 6 Indexing for Performance
How indexes affect performance
How indexes affect performance 91
Symptoms of poor indexing
Fixing corrupted indexes
Repairing the system table index
Index limits and requirements
Choosing indexes
Index keys and logical keys
Guidelines for clustered indexes
Choosing clustered indexes
Candidates for nonclustered indexes
Index Selection
Other indexing guidelines
Choosing nonclustered indexes
Choosing composite indexes
Key order and performance in composite indexes
Advantages and disadvantages of composite indexes
The disadvantages of composite indexes are:
Techniques for choosing indexes
Choosing an index for a range query
Adding a point query with different indexing requirements
Index and statistics maintenance
Dropping indexes that hurt performance
Choosing space management properties for indexes
Additional indexing tips
Creating artificial columns
Keeping index entries short and avoiding overhead
Dropping and rebuilding indexes
Configure enough sort buffers
Create the clustered index first
Configure large buffer pools
Asynchronous log service
Understanding the user log cache (ULC) architecture
When to use ALS
Using the ALS
CHAPTER 7 How Indexes Work
Types of indexes
Index pages
Intermediate level
Index Size
Clustered indexes on allpages-locked tables
Clustered indexes and select operations
Clustered indexes and insert operations
Page splitting on full data pages
See “Exceptions to page splitting” on page 126
Page splitting on index pages
Performance impacts of page splitting
Overflow pages
Clustered indexes and delete operations
Nonclustered indexes
Leaf pages revisited
Nonclustered index structure
Nonclustered indexes and select operations
Nonclustered index performance
Nonclustered indexes and insert operations
Nonclustered indexes and delete operations
Clustered indexes on data-only-locked tables
Index covering
Covering matching index scans
Covering nonmatching index scans
Indexes and caching
Using separate caches for data and index pages
Index trips through the cache
0 of .
Results for:
No results containing your search query
P. 1


Ratings: (0)|Views: 2,682|Likes:
Published by Manoj

More info:

Published by: Manoj on Sep 18, 2010
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





You're Reading a Free Preview
Pages 4 to 8 are not shown in this preview.
You're Reading a Free Preview
Pages 12 to 60 are not shown in this preview.
You're Reading a Free Preview
Pages 64 to 96 are not shown in this preview.
You're Reading a Free Preview
Pages 100 to 105 are not shown in this preview.
You're Reading a Free Preview
Pages 109 to 166 are not shown in this preview.

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->