Я использую dapper-dot-net как ORM, и он производит следующий, медленно исполняемый (1700 мс), код SQL.sp_executesql медленный с параметрами
exec sp_executesql N'SELECT TOP 5 SensorValue FROM "Values" WHERE DeviceId IN (@id1,@id2) AND SensorId = @sensor AND SensorValue != -32768 AND SensorValue != -32767',N'@id1 bigint,@id2 bigint,@sensor int',@id1=139,@id2=726,@sensor=178
Когда я изменяю этот код, удаляя параметры, запрос выполняется невероятно быстро (20 мс). Должно ли отсутствие этих параметров на самом деле сделать эту большую разницу и почему?
exec sp_executesql N'SELECT TOP 5 SensorValue FROM "Values" WHERE DeviceId IN (139,726) AND SensorId = 178 AND SensorValue != -32768 AND SensorValue != -32767'
Насколько велика таблица? Какие индексы у него есть? –
Я ответил на аналогичный вопрос [здесь] (http://stackoverflow.com/a/15477956/11808). –