What Kimberly said.
If you want to get a quick speed increase, switch to using stored proc's instead of straight sql calls.
Also, you could look at implementing views in your database as well. A view is a pre-determined compilation of data. For example:
A real estate database contains information on who previously owned a given house:
tblHouse information about the house
tblOwners information about owners of houses
tblPrevOwners association table holding information about previous owners of various homes
(Since tblHouse and tblOwners have a many to many relationship, tblPrevOwners is set up to handle the various combinations)
Now, to get a list of all owner names for a specific house, in sql/stored proc you'd have to write something like:
Select tblOwners.OwnerName From tblOwners Where tblOwners.OwnerID = tblPrevOwners.OwnerID
And tblPrevOwners.HouseID = [HouseID value]
Now lets create a view thats based on that sql query. You now have that snapshot of data available to you all the time, so if you wanted a listing of previous owners for a given house, you'd merely have to use:
Select OwnerName From viewOwners Where HouseID = [houseID]
Not only is your sql statement reduced, but your sql server doesn't have to go through all the processing the first statement requires because the view has already taken care of that.
Anyway, just another way you can help increase performance.
hth
D'Arcy