Sep
24
2009
Adding Indexes to SQL Server 2005 Tables
I had the opportunity this week to tune a SQL Server 2005 database to improve the performance of a web application. I first created indexes on the temporary tables within a stored procedure that was causing much of the delay and later discovered through the execution plan, there was specific bottle-neck that could be cleared. Here is an illustration of the temp table indexing:
IF OBJECT_ID('#TempTable') IS NOT NULL
CREATE NONCLUSTERED INDEX [#idxTemp_TempTable_Field1_Field2] ON #TempTable
(
[Field1] ASC,
[Field2] ASC,
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = ON,
IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = OFF,
ALLOW_PAGE_LOCKS = OFF) ON [PRIMARY]
But by executing the same stored procedure in a query window and selecting ‘Include Actual Execution Plan’ from the toolbar, I was able to see it individual query’s cost within the stored procedure. Then it is possible to look at the most expense queries, their most expensive operations, and add indexes to the permanent tables that reduce execution time.