Query for a single unique record takes about 1.5 seconds I have a simple table with a 13 byte unique key (indexed unique, non-clustered) and about 6 other small fields of no more than 10 bytes each. The table has about 8 million records. I have rebuilt the index. No fragmentation of the index or the file on disk. I am doing a query to retrieve one of these rows. I am doing a loop say 1000 of these queries for records I know exist in the database and it takes about 25 minutes.  The code is in a c# program. It has the same response time whether I do it across our 1GB network or directly on the machine with the MS SQL server.  I have tried suggestions with (index) and nolock - nothing changes.  It wont let me do a forceseek, I get an error.
If I do the same query within the sql management express (or whatever it is called) it returns immediately, no perceptible delay. 

So why would my c# program take soooo long.  Seems like it is the c# program more than the query itself.  Nothing fancy or unusual.  

I know someone will want to see the code, and I can get that. For now I wondered if there is something known about the mssql c# libraries that is known to cause such slowness.  I have tried doing it a number of different ways. I do not open and close the connection with each query.  Is there something I missed about how I should build the connection string? 

Basically I am at a loss.
I've seen some options in .NET be different than the default SSMS options. Specifically, ARITHABORT was ON in SSMS, but in .NET it was OFF (the default value in the DB was off, where I assume .NET was pulling this from). This caused SQL Server to choose a vastly different (and terrible) plan in the .NET code.

Can you verify the options (ANSI_NULLS, QUOTE_IDENTIFIER, ARITHABORT, etc.) are consistent? My guess is that they are not.

See Slow in the Application, Fast in SSMS? by Erland Sommarskog for more information.