|
Prev: How to implement Audit/Alert for Row level access?
Next: Read HTML File though Network for Email.
From: dsdevonsomer on 5 May 2008 21:47 Hello all, I am new to managing indexes on large tables and need some help. Hopefully, I am not repeating question here. I searched as much as I can, but not finding relatively best answer.. Here is my scenario. I have 2 tables with more than 4 mil rows (1 - 2.8 Mil, 2 2.1 mil). Of these tables, there are about 25 ( select ) queries run to help generate reports every week. Also, every week, there will be some new data in both tables (about 25k in each tables). To improve select performance, based on few columns that are frequently used in those queries, I added Non- Clustered Indexes on these columns ( about 4 in each table ) on both tables. Now, for the first time, the performance was great.. And I am now on 2nd week, where I have to import new weekly data. I am debating as to disable and rebuild all index or just drop and recreate. I have tried drop & recreate, it takes about 1.5 hr to finish, which then defeats the performance improvement argument. Can someone please share their expert knowledge/experience about the best way to use indexes in this scenario? Many thanks, JB
From: Erland Sommarskog on 6 May 2008 17:43 (dsdevonsomer(a)gmail.com) writes: > Here is my scenario. > I have 2 tables with more than 4 mil rows (1 - 2.8 Mil, 2 2.1 mil). Of > these tables, there are about 25 ( select ) queries run to help > generate reports every week. > > Also, every week, there will be some new data in both tables (about > 25k in each tables). To improve select performance, based on few > columns that are frequently used in those queries, I added Non- > Clustered Indexes on these columns ( about 4 in each table ) on both > tables. > > Now, for the first time, the performance was great.. And I am now on > 2nd week, where I have to import new weekly data. I am debating as to > disable and rebuild all index or just drop and recreate. > > I have tried drop & recreate, it takes about 1.5 hr to finish, which > then defeats the performance improvement argument. Did you try importing the new rows with the index present? I would tend think that if you only import 25000 rows, that the penalty you will get from having the indexes in place will not be that severe. Then again, I would not really expect it to take 1� hour to drop and rebuild four non-clustered indexes on a four-million rows table. -- Erland Sommarskog, SQL Server MVP, esquel(a)sommarskog.se Books Online for SQL Server 2005 at http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx Books Online for SQL Server 2000 at http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
|
Pages: 1 Prev: How to implement Audit/Alert for Row level access? Next: Read HTML File though Network for Email. |