Я считаю, что SQL Server кеширует запрос, и это нормально. Теперь, если исходные 10 секунд - это слишком много, вам нужно захватить SQL-запрос (я бы предложил профилировщик) и затем просмотреть его. В прошлом я запускал sql в консоли управления с выбранным показом фактического плана выполнения. В Интернете есть ресурсы, объясняющие, как это читать, но это должно помочь вам найти узкое место. НТН
Редактировать
Я имею в виду, что для долго выполняющихся запросов нормально ускоряться после их однократного запуска, поскольку SQL Server кэширует запрос (я считаю, что план выполнения точен) для последующего использования.
Wade