title: Weird timeout issues with Dapper.net
body: <p>I started to use dapper.net a while ago for performance reasons and that i really like the named parameters feature compared to just run "ExecuteQuery" in LINQ To SQL.</p>
  
  <p>It works great for most queries but i get some really weird timeouts from time to time. The strangest thing is that this timeout only happens when the SQL is executed via dapper. If i take the executed query copied from the profiler and just run it in Management Studio its fast and works perfect. And it's not just a temporary issues. The query consistently timeout via dapper and consistently works fine in Management Studio.</p>
  
  <pre><code>exec sp_executesql N'SELECT Item.Name,dbo.PlatformTextAndUrlName(Item.ItemId) As PlatformString,dbo.MetaString(Item.ItemId) As MetaTagString, Item.StartPageRank,Item.ItemRecentViewCount
                      NAME_SRCH.RANK as NameRank,
                      DESC_SRCH.RANK As DescRank, 
                      ALIAS_SRCH.RANK as AliasRank, 
                      Item.itemrecentviewcount,
                      (COALESCE(ALIAS_SRCH.RANK, 0)) + (COALESCE(NAME_SRCH.RANK, 0)) + (COALESCE(DESC_SRCH.RANK, 0) / 20) + Item.itemrecentviewcount / 4 + ((CASE WHEN altrank &gt; 60 THEN 60 ELSE altrank END) * 4) As SuperRank
                      FROM dbo.Item
                      INNER JOIN dbo.License on Item.LicenseId = License.LicenseId
  
                      LEFT JOIN dbo.Icon on Item.ItemId = Icon.ItemId
                      LEFT OUTER JOIN FREETEXTTABLE(dbo.Item, name, @SearchString) NAME_SRCH ON
                      Item.ItemId = NAME_SRCH.[KEY] 
                      LEFT OUTER JOIN FREETEXTTABLE(dbo.Item, namealiases, @SearchString) ALIAS_SRCH ON
                      Item.ItemId = ALIAS_SRCH.[KEY] 
                      INNER JOIN FREETEXTTABLE(dbo.Item, *, @SearchString) DESC_SRCH ON
                      Item.ItemId = DESC_SRCH.[KEY]
                      ORDER BY SuperRank DESC OFFSET @Skip ROWS FETCH NEXT @Count ROWS ONLY',N'@Count int,@SearchString nvarchar(4000),@Skip int',@Count=12,@SearchString=N'box,com',@Skip=0
  </code></pre>
  
  <p>That is the query that i copy pasted from SQL Profiler. I execute it like this in my code.</p>
  
  <pre><code>            using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Conn"].ToString())) {
              connection.Open();
              var items = connection.Query&lt;MainItemForList&gt;(query, new { SearchString = searchString, PlatformId = platformId, _LicenseFilter = licenseFilter, Skip = skip, Count = count }, buffered: false);
              return items.ToList();
          }
  </code></pre>
  
  <p>I have no idea where to start here. I suppose there must be something that is going on with dapper since it works fine when i just execute the code.</p>
  
  <p>As you can see in this screenshot. This is the same query executed via code first and then via Management Studio.</p>
  
  <p><img src="https://i.stack.imgur.com/Ijnzb.png" alt="enter image description here"></p>
  
  <p>I can also add that this only (i think) happens when i have two or more word or when i have a "stop" char in the search string. So it may have something todo with the full text search but i cant figure out how to debug it since it works perfectly from Management Studio.</p>
  
  <p>And to make matters even worse, it works fine on my localhost with a almost identical database both from code and from Management Studio.</p>