I am facing problems with concurrent access in SQL Server 2000,The scenario is that the DB contains one huge de-normalized table containing 40 million records.
The application frequently queries this table to populate other derived tables,the sql queries take a long time to return results.
So if one query is in execution the other user's query goes into a wait mode.Please suggest how I can better this.
IDentify the long running queries. Identify the columns in the WHERE condition of those queries. Do you have indexes on all/most of those columns? Also, do you have regular maintenance jobs re-indexing/updating stats for that table.
is this large table written to often, or only read from? if you only read from it, you can add appropriate indexes without penalty to improve the selects. use profiler to find out which queries are slow, then have a look at the query plan of those selects to see what indexes would improve them.
alternatively you can try the index tuning wizard, see what it suggests.