Experienced a very strang issue with a query after upgrading to SQL Server 2008 from 2005. A query that took less than one second on SQL 2005 ended up taking 27 seconds on SQL Server 2008.
Query that selects data and one of the columns in the select list belonged to a full text index. If this column is not in the select list, the query runs in under one second.
Removing the full text index did not make a difference
Changing the data type from nvarchar(max) to nvarchar(3000) did not make a difference
adding a where filter of column != '' worked
Not sure why this happened and only in SQL 2008 but not in 2005 but if you are seeing the same issue, I hope this article helps.
Often I find the need to dynamically specify the order by for a LINQ to SQL query. I came across a very nice example of this here.
I needed to use this technique with a CSLA class, so I needed to call it in a sligthly different manner than the way explained in the article. I was grouping information and needed to then dynamically set the order by and finally place the results into a CSLA read only list.
I accomplished this as follows:
- First I specified my LINQ query and selected the results into an annonymous type and placed into a variable (var data = ...)
- Next, called my OrderBy extension method on the LINQ query created in #1
var ordered = data.OrderBy(criteria.OrderByProperty, criteria.OrderByDesc);
The criteria object is the typical pattern used in CSLA to pass data to your data access methods such as fetch.
- Finally, I selected the data elements into my CSLA list item, and add to the parent list object
var selected = ordered.Select(a => MyCslaListItem.GetMyCslaListItem(a.Id, a.Name, a.Email, ...));
I understand I could do this in fewer steps, but am leaving as it to explicitly outline the approach taken.
In an effort to learn the google go programming lanuage, I am keeping track of useful links on the go language.
http://www.youtube.com/watch?v=rKnDgT73v8s&feature=player_embedded - Google Tech Talk on Go
http://golang.org/doc/go_talk-20091030.pdf - PDF for tech talk
If you are using the .NET Rss20FeedFormatter and SyndicationFeed classes to generate an RSS feed, you may run into an issue of needing to include a link attribute to the channel element. If you validate the default RSS generated the validation will fail since the channel element does not contain a link attribute.
You can test this by going to http://beta.feedvalidator.org and entering your feed Url. If you recieve the error
Missing channel element: link
you can modify your code as follows:
SyndicationFeed syndicationFeed = new SyndicationFeed(synicationItems);
syndicationFeed.AttributeExtensions.Add(new XmlQualifiedName("link"), "http://yoursite.com");
This will produce a valid RSS feed with a channel that contains a link attribute.