<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQLBI - Marco Russo</title><link>http://sqlblog.com/blogs/marco_russo/default.aspx</link><description>SQLBI is a blog dedicated to building Business Intelligence solutions with SQL Server</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Classification of BI solutions</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/classification-of-bi-solutions.aspx</link><pubDate>Fri, 05 Sep 2008 07:54:20 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8753</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8753.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8753</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8753</wfw:comment><description>&lt;p&gt;&lt;em&gt;This post is part of a &lt;a href="http://sqlblog.com/blogs/marco_russo/archive/tags/Methodology/default.aspx"&gt;Methodology&lt;/a&gt; discussion - other posts will follows. I will be happy to get your feedback!&lt;/em&gt; &lt;p&gt;One interesting question is “How do you measure the complexity of a BI solution?” If we need to decide whether a specific technique is suitable for a solution or not, it is very important to be able to classify that solution. &lt;p&gt;We want to define a classification of solutions based on their size and complexity. It is clear that size leads to complexity: even a simple solution made up of a few dimensions will become complex if it will handle several billions rows in the fact table. &lt;p&gt;Because the processing of data warehouses normally happens during the night, we propose a classification of BI solutions based on the time required for both the ETL execution and the cubes process to finish. &lt;ul&gt; &lt;li&gt;&lt;b&gt;Small BI solution&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;We can rebuild a small BI solution each time because the entire ETL phase will consume a few hours of computation and does not need to keep complex history of changes in the dimensions. &lt;p&gt;If you are developing a small BI solution, you normally will recreate the whole relational database each time the ETL phase starts, producing a fresh database each night. This simple method of creating the data warehouse is very convenient, when applicable, because it highly reduces the complexity of handling the database. We can apply any change without worrying about the old data, just because there is no old data (where old data means data already processed and imported in the BI solution). &lt;p&gt;Even if this approach might seem strange, we find that many small or medium size companies have data warehouses whose elaboration will last no more than six, seven hours of computation. Using this pattern leads to simple solutions that are very easy to handle and with a very high return of investment. &lt;p&gt;We like to call a Small BI solution as a “one shot solution”, because it can be built with “one shot” of ETL computation.&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;&lt;b&gt;Medium BI solutions&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;If we need to trace history of changes in the dimensions (i.e. we have some SCDs in the solution), the one shot solution seems to be no more a viable way. This is partially true. &lt;p&gt;If the complete solution can be rebuilt nighttime, we will always try to keep it as a one shot solution, computing it each night. If, for some reason, we need to maintain the history of changes of some specific dimensions, we think that it is easier to store the different versions of members of those dimensions in a persistent database, reloading all the facts and dimensions each night. &lt;p&gt;Doing this, we maintain the advantages of the one shot solution adding a slight complexity for the storage of different versions of the members of changing dimensions. Nevertheless, we still have full control on any database change, because we can rebuild the database during one pass of computation.&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;&lt;b&gt;Large BI solutions&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;When the size of the fact tables becomes so big that the “one shot solution” is not a viable one, then the only choice is that of loading it incrementally each night, applying changes to the dimensions and adding new facts to it. &lt;p&gt;When a solution is very large, the overall complexity raises of some levels. We cannot rebuild the database easily, nor add attributes smoothly to the solution. Any change will require a high level of attention, because all operations will consume CPU and disk resources to a high degree.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Our experience is that the majority of solutions in the market are made of small or medium sized solutions. Whenever we start a new BI solution, we always need to understand in which scenario we are, because the architectural choices will highly depend on the size of the BI solution.&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Classification of BI solutions&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Classification of BI solutions%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/09/05/classification-of-bi-solutions.aspx" target="_blank" title = "Email Classification of BI solutions"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/classification-of-bi-solutions.aspx&amp;amp;title=Classification+of+BI+solutions" target="_blank" title = "Submit Classification of BI solutions to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/classification-of-bi-solutions.aspx&amp;amp;phase=2" target="_blank" title = "Submit Classification of BI solutions to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/classification-of-bi-solutions.aspx&amp;amp;title=Classification+of+BI+solutions" target="_blank" title = "Submit Classification of BI solutions to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/classification-of-bi-solutions.aspx&amp;amp;title=Classification+of+BI+solutions" target="_blank" title = "Submit Classification of BI solutions to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/classification-of-bi-solutions.aspx&amp;amp;title=Classification+of+BI+solutions&amp;amp;;top=1" target="_blank" title = "Add Classification of BI solutions to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8753" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/marco_russo/archive/tags/Methodology/default.aspx">Methodology</category></item><item><title>Methodologies to build BI Solutions</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/methodologies-to-build-bi-solutions.aspx</link><pubDate>Fri, 05 Sep 2008 07:47:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8752</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8752.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8752</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8752</wfw:comment><description>&lt;P&gt;In the last years I spent most of my time working on BI solutions based on the SQL Server platform. I had experiences with other architectures but I mostly used Kimball's methodology to design relational databases feeding SSAS cubes. However, Kimball only describes the relational side of a BI solution and gives you a basic model (the star schema) that is the pillar of all the SSAS projects I made. The Kimball's model is product-agnostic and leveraging the modeling capabilities of SSAS requires you to make some decisions about how to model data, where to put some definitions and calculations and so on.&lt;/P&gt;
&lt;P&gt;I and &lt;A class="" href="http://sqlblog.com/blogs/alberto_ferrari/"&gt;Alberto Ferrari&lt;/A&gt; worked together on several projects and we realized that today we use a methodology that is the result of years of experience and selection. We want to share our knowledge looking for flaws, comments and suggestions. I will start with some post with "Methodology" tag and very soon we will publish some whitepapers on &lt;A class="" href="http://www.sqlbi.eu/"&gt;SQLBI&lt;/A&gt; site. Please feel free to contact me for any feedback!&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Methodologies to build BI Solutions&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Methodologies to build BI Solutions%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/09/05/methodologies-to-build-bi-solutions.aspx" target="_blank" title = "Email Methodologies to build BI Solutions"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/methodologies-to-build-bi-solutions.aspx&amp;amp;title=Methodologies+to+build+BI+Solutions" target="_blank" title = "Submit Methodologies to build BI Solutions to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/methodologies-to-build-bi-solutions.aspx&amp;amp;phase=2" target="_blank" title = "Submit Methodologies to build BI Solutions to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/methodologies-to-build-bi-solutions.aspx&amp;amp;title=Methodologies+to+build+BI+Solutions" target="_blank" title = "Submit Methodologies to build BI Solutions to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/methodologies-to-build-bi-solutions.aspx&amp;amp;title=Methodologies+to+build+BI+Solutions" target="_blank" title = "Submit Methodologies to build BI Solutions to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/05/methodologies-to-build-bi-solutions.aspx&amp;amp;title=Methodologies+to+build+BI+Solutions&amp;amp;;top=1" target="_blank" title = "Add Methodologies to build BI Solutions to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8752" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/marco_russo/archive/tags/Methodology/default.aspx">Methodology</category></item><item><title>Microsoft Sharepoint Conference in Italy</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/09/02/microsoft-sharepoint-conference-in-italy.aspx</link><pubDate>Tue, 02 Sep 2008 07:11:09 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8717</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8717.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8717</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8717</wfw:comment><description>&lt;p&gt;Ok, this could be partially off topic, but if you work on BI it is not. I will be a speaker at the &lt;a href="http://www.sharepointconference.it/"&gt;Microsoft Sharepoint Conference 2008&lt;/a&gt; in Milan (Italy) on 2 and 3 October 2008. I have one speech about building digital dashboards using SharePoint, Reporting Services and Performance Point Server.&lt;/p&gt; &lt;p&gt;The conference will be in Italian, but there is a track in the second day with &lt;a href="http://www.sharepointconference.it/Speaker/pages/biografia.aspx#PatrickTisseghem"&gt;Patrick Tisseghem&lt;/a&gt; and &lt;a href="http://www.sharepointconference.it/Speaker/pages/biografia.aspx#TedPattison"&gt;Ted Pattison&lt;/a&gt; that will be in English. The web-site does not contain specific information about this, but conference organization told me that some people is coming from other countries just to attend to this track!&lt;/p&gt; &lt;p&gt;The &lt;a href="http://www.sharepointconference.it/agenda/default.aspx"&gt;agenda&lt;/a&gt; has session titles in English, but unfortunately the &lt;a href="http://www.sharepointconference.it/Sessioni/default.aspx"&gt;sessions abstracts&lt;/a&gt; are only in Italian. If you are interested in getting more information (in English, of course) you can contact me or directly the conference organization (write to info [at] sharepointconference.it). If you need a good excuse to come in Italy (October could be still a nice month to visit some cities), this is a very good one!&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Microsoft Sharepoint Conference in Italy&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Microsoft Sharepoint Conference in Italy%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/09/02/microsoft-sharepoint-conference-in-italy.aspx" target="_blank" title = "Email Microsoft Sharepoint Conference in Italy"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/02/microsoft-sharepoint-conference-in-italy.aspx&amp;amp;title=Microsoft+Sharepoint+Conference+in+Italy" target="_blank" title = "Submit Microsoft Sharepoint Conference in Italy to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/02/microsoft-sharepoint-conference-in-italy.aspx&amp;amp;phase=2" target="_blank" title = "Submit Microsoft Sharepoint Conference in Italy to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/02/microsoft-sharepoint-conference-in-italy.aspx&amp;amp;title=Microsoft+Sharepoint+Conference+in+Italy" target="_blank" title = "Submit Microsoft Sharepoint Conference in Italy to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/02/microsoft-sharepoint-conference-in-italy.aspx&amp;amp;title=Microsoft+Sharepoint+Conference+in+Italy" target="_blank" title = "Submit Microsoft Sharepoint Conference in Italy to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/09/02/microsoft-sharepoint-conference-in-italy.aspx&amp;amp;title=Microsoft+Sharepoint+Conference+in+Italy&amp;amp;;top=1" target="_blank" title = "Add Microsoft Sharepoint Conference in Italy to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8717" width="1" height="1"&gt;</description></item><item><title>LINQ to SQL and the procedure cache of SQL Server</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/08/28/linq-to-sql-and-the-procedure-cache-of-sql-server.aspx</link><pubDate>Thu, 28 Aug 2008 00:14:22 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8620</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8620.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8620</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8620</wfw:comment><description>&lt;p&gt;I just received a mail from &lt;a href="http://sqlblog.com/blogs/adam_machanic/"&gt;Adam Machanic&lt;/a&gt; that pointed me to &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=363290"&gt;this bug&lt;/a&gt; (I would call it a performance issue) about the construction of SQL statements generated by the LINQ to SQL engine.&lt;/p&gt; &lt;p&gt;The issue: every string passed as a constant in the query will be auto-parameterized using the length of the passed string, even when you used a string variable into the LINQ query. If you write something like &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; s = &lt;font color="#a31515"&gt;&lt;font color="#a31515"&gt;"Wine"&lt;/font&gt;&lt;/font&gt;;&lt;br&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; query =&lt;br&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;/font&gt;&lt;/font&gt; x &lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;in&lt;/font&gt;&lt;/font&gt; db.Products&lt;br&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/font&gt;&lt;/font&gt; x.ProductName == s&lt;br&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#0000ff"&gt;select&lt;/font&gt;&lt;/font&gt; x;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;you will see that a parameter of type NVARCHAR(4) will be passed to the generated SQL query. The next execution of query might contain a different value in the &lt;em&gt;s&lt;/em&gt; parameter, and for this reason a different parameter type might be used: if the length of the string in the &lt;em&gt;s &lt;/em&gt;variable changes, then the same query will be sent to SQL Server, but using a different type in the &lt;em&gt;sp_executesql &lt;/em&gt;parameters .For example, a NVARCHAR(5) would be used whether &lt;em&gt;s&lt;/em&gt; contains"Bread".&lt;/p&gt; &lt;p&gt;The consequence of this behavior is that you could have a non-optimal performance from SQL Server and, more important, the procedure cache could be filled up with several copies of the same query, differing each other only in the length of the parameter type.&lt;/p&gt; &lt;p&gt;I agree with Adam: this is something to be fixed. But my suspect is that we will get a "by design" answer another time...&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=LINQ to SQL and the procedure cache of SQL Server&amp;amp;body=Seen on SQLblog.com: %0A%0A%09LINQ to SQL and the procedure cache of SQL Server%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/08/28/linq-to-sql-and-the-procedure-cache-of-sql-server.aspx" target="_blank" title = "Email LINQ to SQL and the procedure cache of SQL Server"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/28/linq-to-sql-and-the-procedure-cache-of-sql-server.aspx&amp;amp;title=LINQ+to+SQL+and+the+procedure+cache+of+SQL+Server" target="_blank" title = "Submit LINQ to SQL and the procedure cache of SQL Server to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/28/linq-to-sql-and-the-procedure-cache-of-sql-server.aspx&amp;amp;phase=2" target="_blank" title = "Submit LINQ to SQL and the procedure cache of SQL Server to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/28/linq-to-sql-and-the-procedure-cache-of-sql-server.aspx&amp;amp;title=LINQ+to+SQL+and+the+procedure+cache+of+SQL+Server" target="_blank" title = "Submit LINQ to SQL and the procedure cache of SQL Server to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/28/linq-to-sql-and-the-procedure-cache-of-sql-server.aspx&amp;amp;title=LINQ+to+SQL+and+the+procedure+cache+of+SQL+Server" target="_blank" title = "Submit LINQ to SQL and the procedure cache of SQL Server to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/28/linq-to-sql-and-the-procedure-cache-of-sql-server.aspx&amp;amp;title=LINQ+to+SQL+and+the+procedure+cache+of+SQL+Server&amp;amp;;top=1" target="_blank" title = "Add LINQ to SQL and the procedure cache of SQL Server to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8620" width="1" height="1"&gt;</description></item><item><title>When heap tables don't recover deleted pages</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/08/27/when-heap-tables-don-t-recover-deleted-pages.aspx</link><pubDate>Wed, 27 Aug 2008 13:25:50 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8609</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>5</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8609.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8609</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8609</wfw:comment><description>&lt;p&gt;Today I solved an issue for a customer that was a little bit unexpected, at least for me.&lt;/p&gt; &lt;p&gt;The scenario: a table with a few records is periodically updated: a few records are inserted (with a bulk insert) and a few records are deleted (the older ones). It's a sort of circular buffer. That table hadn't any indexes or primary key. I know, this is not a best practice, but since the table was very small, I didn't realize the impact of the missing clustered index...&lt;/p&gt; &lt;p&gt;The problem: after a few months of this table has being in production, query performance joining this table degraded at an unacceptable level. I was astonished when I discovered that table had only a few rows... but something like 2 millions of pages was used by that table, resulting in a 16Gb of size for a bunch of records!. In this condition, a table scan needed a complete read of the table.&lt;/p&gt; &lt;p&gt;The solution: I created a non-unique clustered index on a field representing the date of the row.&lt;/p&gt; &lt;p&gt;The explanation: SQL Server doesn't release a page of a heap table, and &lt;strong&gt;doesn't use free space in previously used page (this was the very unexpected part)&lt;/strong&gt; unless you use a table-level lock when you delete data. Details are explained in &lt;a href="http://support.microsoft.com/kb/913399"&gt;KB 913399&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Best practice: take care of any heap table you have in a production database if data are deleted and inserted. Standard maintenance plan doesn't work well in this case, because a simple reindex operation doesn't compact the heap table.&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=When heap tables don't recover deleted pages&amp;amp;body=Seen on SQLblog.com: %0A%0A%09When heap tables don't recover deleted pages%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/08/27/when-heap-tables-don-t-recover-deleted-pages.aspx" target="_blank" title = "Email When heap tables don't recover deleted pages"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/27/when-heap-tables-don-t-recover-deleted-pages.aspx&amp;amp;title=When+heap+tables+don%27t+recover+deleted+pages" target="_blank" title = "Submit When heap tables don't recover deleted pages to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/27/when-heap-tables-don-t-recover-deleted-pages.aspx&amp;amp;phase=2" target="_blank" title = "Submit When heap tables don't recover deleted pages to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/27/when-heap-tables-don-t-recover-deleted-pages.aspx&amp;amp;title=When+heap+tables+don%27t+recover+deleted+pages" target="_blank" title = "Submit When heap tables don't recover deleted pages to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/27/when-heap-tables-don-t-recover-deleted-pages.aspx&amp;amp;title=When+heap+tables+don%27t+recover+deleted+pages" target="_blank" title = "Submit When heap tables don't recover deleted pages to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/27/when-heap-tables-don-t-recover-deleted-pages.aspx&amp;amp;title=When+heap+tables+don%27t+recover+deleted+pages&amp;amp;;top=1" target="_blank" title = "Add When heap tables don't recover deleted pages to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8609" width="1" height="1"&gt;</description></item><item><title>Get SQL Server allocation info inside SSMS</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/08/18/get-sql-server-allocation-info-inside-ssms.aspx</link><pubDate>Mon, 18 Aug 2008 11:15:01 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8432</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>5</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8432.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8432</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8432</wfw:comment><description>&lt;p&gt;I just installed the &lt;a href="http://www.codeplex.com/SSMSAllocation"&gt;Allocation Information add-in for SQL Server Management Studio&lt;/a&gt;.&amp;nbsp; It's very cool having this tool integrated into SSMS. It is a free add-in published on CodePlex. Take a look, it does worth the download in my opinion.&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Get SQL Server allocation info inside SSMS&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Get SQL Server allocation info inside SSMS%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/08/18/get-sql-server-allocation-info-inside-ssms.aspx" target="_blank" title = "Email Get SQL Server allocation info inside SSMS"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/18/get-sql-server-allocation-info-inside-ssms.aspx&amp;amp;title=Get+SQL+Server+allocation+info+inside+SSMS" target="_blank" title = "Submit Get SQL Server allocation info inside SSMS to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/18/get-sql-server-allocation-info-inside-ssms.aspx&amp;amp;phase=2" target="_blank" title = "Submit Get SQL Server allocation info inside SSMS to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/18/get-sql-server-allocation-info-inside-ssms.aspx&amp;amp;title=Get+SQL+Server+allocation+info+inside+SSMS" target="_blank" title = "Submit Get SQL Server allocation info inside SSMS to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/18/get-sql-server-allocation-info-inside-ssms.aspx&amp;amp;title=Get+SQL+Server+allocation+info+inside+SSMS" target="_blank" title = "Submit Get SQL Server allocation info inside SSMS to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/18/get-sql-server-allocation-info-inside-ssms.aspx&amp;amp;title=Get+SQL+Server+allocation+info+inside+SSMS&amp;amp;;top=1" target="_blank" title = "Add Get SQL Server allocation info inside SSMS to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8432" width="1" height="1"&gt;</description></item><item><title>IQueryable under the cover</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/08/17/iqueryable-under-the-cover.aspx</link><pubDate>Sun, 17 Aug 2008 09:02:59 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8421</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8421.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8421</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8421</wfw:comment><description>&lt;p&gt;In the &lt;a href="http://www.amazon.com/gp/product/0735624003/?tag=se04-20"&gt;Programming Microsoft LINQ&lt;/a&gt; book we dedicated two whole chapters (76 pages) about the writing of a IQueryable LINQ provider: one is about expression trees and the other covers the several ways to extend LINQ, including the writing of an IQueryable provider. I know that the subject is complex and probably is not necessary to every programmer. However, a good understanding of what happens under the cover of an IQueryable provider is good for everyone using any flavor of LINQ: when you debug your code, it might help you in finding issues faster.&lt;/p&gt; &lt;p&gt;I wrote this introduction just to explain why you should read &lt;a href="http://community.bartdesmet.net/blogs/bart/archive/2008/08/15/the-most-funny-interface-of-the-year-iqueryable-lt-t-gt.aspx"&gt;this post&lt;/a&gt; of &lt;a href="http://community.bartdesmet.net/blogs/bart/about.aspx"&gt;Bart De Smet&lt;/a&gt;, which is undoubtedly shorter than the corresponding chapter of our book and gives you a very good step-by-step introduction of the inner workings of an IQueryable LINQ provider. Then, if you really like this kind of things, you have another good reason to read &lt;a href="http://programminglinq.com/"&gt;the book&lt;/a&gt; :-)&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=IQueryable under the cover&amp;amp;body=Seen on SQLblog.com: %0A%0A%09IQueryable under the cover%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/08/17/iqueryable-under-the-cover.aspx" target="_blank" title = "Email IQueryable under the cover"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/17/iqueryable-under-the-cover.aspx&amp;amp;title=IQueryable+under+the+cover" target="_blank" title = "Submit IQueryable under the cover to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/17/iqueryable-under-the-cover.aspx&amp;amp;phase=2" target="_blank" title = "Submit IQueryable under the cover to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/17/iqueryable-under-the-cover.aspx&amp;amp;title=IQueryable+under+the+cover" target="_blank" title = "Submit IQueryable under the cover to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/17/iqueryable-under-the-cover.aspx&amp;amp;title=IQueryable+under+the+cover" target="_blank" title = "Submit IQueryable under the cover to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/17/iqueryable-under-the-cover.aspx&amp;amp;title=IQueryable+under+the+cover&amp;amp;;top=1" target="_blank" title = "Add IQueryable under the cover to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8421" width="1" height="1"&gt;</description></item><item><title>The use of FOR XML PATH for string concatenation</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/08/13/the-use-of-for-xml-path-for-string-concatenation.aspx</link><pubDate>Wed, 13 Aug 2008 09:09:34 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8347</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>4</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8347.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8347</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8347</wfw:comment><description>&lt;p&gt;I've just read &lt;a href="http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/"&gt;this interesting article&lt;/a&gt; from Anith Sen that lists many different ways to concatenate several row values into a single column (i.e. one row for each category with a field containing a comma separated list of products for that category).&lt;/p&gt; &lt;p&gt;I admit I never thought to use the FOR XML PATH solution to get this kind of result. Not only this is a very elegant way to write the query (you formally are not using other recursive approaches based on CTE), but it seems to be also the better solution from a performance point of view. I didn't compared it with the CLR based one, but the performance seems to be so good with the FOR XML PATH solution that I think I will use that by default unless performances are very very critical - I would consider the CLR based solution only if I already have a CLR assembly deployed, but I wouldn't deploy an assembly just for this feature.&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=The use of FOR XML PATH for string concatenation&amp;amp;body=Seen on SQLblog.com: %0A%0A%09The use of FOR XML PATH for string concatenation%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/08/13/the-use-of-for-xml-path-for-string-concatenation.aspx" target="_blank" title = "Email The use of FOR XML PATH for string concatenation"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/13/the-use-of-for-xml-path-for-string-concatenation.aspx&amp;amp;title=The+use+of+FOR+XML+PATH+for+string+concatenation" target="_blank" title = "Submit The use of FOR XML PATH for string concatenation to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/13/the-use-of-for-xml-path-for-string-concatenation.aspx&amp;amp;phase=2" target="_blank" title = "Submit The use of FOR XML PATH for string concatenation to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/13/the-use-of-for-xml-path-for-string-concatenation.aspx&amp;amp;title=The+use+of+FOR+XML+PATH+for+string+concatenation" target="_blank" title = "Submit The use of FOR XML PATH for string concatenation to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/13/the-use-of-for-xml-path-for-string-concatenation.aspx&amp;amp;title=The+use+of+FOR+XML+PATH+for+string+concatenation" target="_blank" title = "Submit The use of FOR XML PATH for string concatenation to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/13/the-use-of-for-xml-path-for-string-concatenation.aspx&amp;amp;title=The+use+of+FOR+XML+PATH+for+string+concatenation&amp;amp;;top=1" target="_blank" title = "Add The use of FOR XML PATH for string concatenation to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8347" width="1" height="1"&gt;</description></item><item><title>Important LINQ Changes in .NET 3.5 SP1</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/08/12/important-linq-changes-in-net-3-5-sp1.aspx</link><pubDate>Tue, 12 Aug 2008 07:50:40 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8329</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8329.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8329</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8329</wfw:comment><description>&lt;p&gt;Dinesh Kulkarni wrote an &lt;a href="http://blogs.msdn.com/dinesh.kulkarni/archive/2008/08/10/net-fx-3-5-sp1-two-perf-improvements-linq-to-objects-and-linq-to-sql.aspx"&gt;important post about changes&lt;/a&gt; in LINQ introduced by &lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;.NET 3.5 SP1&lt;/a&gt; that has been released yesterday.&lt;/p&gt; &lt;p&gt;One of the interesting changes is in the Cast&amp;lt;T&amp;gt; operator and its behavior is better described in &lt;a href="http://blogs.msdn.com/ed_maurer/archive/2008/02/16/breaking-change-in-linq-queries-using-explicitly-typed-range-variables.aspx"&gt;this post&lt;/a&gt; by Ed Maurer. I think that the side effects of this change should be limited, because the use of explicit type for the range variable in a query expression (i.e. &lt;font color="#0000ff"&gt;from &lt;strong&gt;&lt;font color="#008000"&gt;int&lt;/font&gt;&lt;/strong&gt; n in numbers select...&lt;/font&gt; instead of &lt;font color="#0000ff"&gt;from n in numbers select...&lt;/font&gt;) is not very common. In fact, I don't remember examples of its usage in our &lt;a href="http://programminglinq.com/"&gt;Programming LINQ&lt;/a&gt; book. Take care of this change if you used (or will use) this syntax.&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Important LINQ Changes in .NET 3.5 SP1&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Important LINQ Changes in .NET 3.5 SP1%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/08/12/important-linq-changes-in-net-3-5-sp1.aspx" target="_blank" title = "Email Important LINQ Changes in .NET 3.5 SP1"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/12/important-linq-changes-in-net-3-5-sp1.aspx&amp;amp;title=Important+LINQ+Changes+in+.NET+3.5+SP1" target="_blank" title = "Submit Important LINQ Changes in .NET 3.5 SP1 to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/12/important-linq-changes-in-net-3-5-sp1.aspx&amp;amp;phase=2" target="_blank" title = "Submit Important LINQ Changes in .NET 3.5 SP1 to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/12/important-linq-changes-in-net-3-5-sp1.aspx&amp;amp;title=Important+LINQ+Changes+in+.NET+3.5+SP1" target="_blank" title = "Submit Important LINQ Changes in .NET 3.5 SP1 to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/12/important-linq-changes-in-net-3-5-sp1.aspx&amp;amp;title=Important+LINQ+Changes+in+.NET+3.5+SP1" target="_blank" title = "Submit Important LINQ Changes in .NET 3.5 SP1 to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/12/important-linq-changes-in-net-3-5-sp1.aspx&amp;amp;title=Important+LINQ+Changes+in+.NET+3.5+SP1&amp;amp;;top=1" target="_blank" title = "Add Important LINQ Changes in .NET 3.5 SP1 to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8329" width="1" height="1"&gt;</description></item><item><title>Mark Russinovich at Virtualization Congress (London)</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/08/01/mark-russinovich-at-virtualization-congress-london.aspx</link><pubDate>Fri, 01 Aug 2008 14:28:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8162</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8162.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8162</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8162</wfw:comment><description>&lt;P&gt;A few months ago I talked about &lt;A href="http://sqlblog.com/blogs/marco_russo/archive/2007/11/18/sql-server-virtualization.aspx"&gt;SQL Server Virtualization&lt;/A&gt;. For me, taking a look at virtualization improvements is very important, because I still think that not every database can be virtualized, but many of them probably yes! And the trend is that the number of databases that can be "virtualized" is growing for each new version of the virtualization environments. Hyper-V is an important milestone for Microsoft in that direction.&lt;/P&gt;
&lt;P&gt;That said, I know that a lot of people (like me) have to make a decision about virtualization today, but they also want to get an overview of emerging trends and products in this market. A good news for us is that an international independent congress will be held in London on 15-16 October, 2008: the &lt;A href="http://www.virtualizationcongress.com/"&gt;Virtualization Congress 2008&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Looking at the &lt;A href="http://www.virtualization.info/virtualizationcongress2008/agenda.htm"&gt;agenda&lt;/A&gt;, I discovered that Mark Russinovich will be the &lt;A href="http://www.virtualization.info/virtualizationcongress2008/speakers.htm#microsoft"&gt;speaker&lt;/A&gt; from Microsoft and he also registered a promo &lt;A href="http://www.virtualization.info/virtualizationcongress2008/microsoft.htm#video"&gt;video&lt;/A&gt; for the conference. Other &lt;A href="http://www.virtualization.info/virtualizationcongress2008/speakers.htm"&gt;speakers&lt;/A&gt; are from the most important players in this market. This conference is very different from the technical conference I'm used to attend from Microsoft (in fact, it is not from Microsoft!). However, the presence of people like Mark grants me that it shouldn't be a set of marketing sessions.&lt;/P&gt;
&lt;P&gt;Another good excuse to visit London (if you, like me,&amp;nbsp;are not from UK) after &lt;A href="http://sqlblog.com/blogs/marco_russo/archive/2008/07/24/sqlbits-in-uk.aspx"&gt;SQLBits&lt;/A&gt;.&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Mark Russinovich at Virtualization Congress (London)&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Mark Russinovich at Virtualization Congress (London)%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/08/01/mark-russinovich-at-virtualization-congress-london.aspx" target="_blank" title = "Email Mark Russinovich at Virtualization Congress (London)"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/01/mark-russinovich-at-virtualization-congress-london.aspx&amp;amp;title=Mark+Russinovich+at+Virtualization+Congress+(London)" target="_blank" title = "Submit Mark Russinovich at Virtualization Congress (London) to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/01/mark-russinovich-at-virtualization-congress-london.aspx&amp;amp;phase=2" target="_blank" title = "Submit Mark Russinovich at Virtualization Congress (London) to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/01/mark-russinovich-at-virtualization-congress-london.aspx&amp;amp;title=Mark+Russinovich+at+Virtualization+Congress+(London)" target="_blank" title = "Submit Mark Russinovich at Virtualization Congress (London) to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/01/mark-russinovich-at-virtualization-congress-london.aspx&amp;amp;title=Mark+Russinovich+at+Virtualization+Congress+(London)" target="_blank" title = "Submit Mark Russinovich at Virtualization Congress (London) to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/08/01/mark-russinovich-at-virtualization-congress-london.aspx&amp;amp;title=Mark+Russinovich+at+Virtualization+Congress+(London)&amp;amp;;top=1" target="_blank" title = "Add Mark Russinovich at Virtualization Congress (London) to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8162" width="1" height="1"&gt;</description></item><item><title>It's not a bug, it's by (bad?) design</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/07/28/it-s-not-a-bug-it-s-by-bad-design.aspx</link><pubDate>Mon, 28 Jul 2008 17:27:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8081</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>5</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8081.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8081</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8081</wfw:comment><description>&lt;P&gt;&amp;lt;rant mode="funny"&amp;gt;&lt;/P&gt;
&lt;P&gt;Most of the time I submitted an issue to Microsoft Connect, I got a "it's by design" answer. I've been always irritated by this sentence because they don't admit in this way that they have a bug. Today, I understood I'm wrong. It's a bureaucracy issue.&lt;/P&gt;
&lt;P&gt;If you pretend that something is a bug, you are stating that a developer wrongly coded a program because it does not meet the requirements and the specifications. If the design is wrong, and the program is written "by design", then the program is wrong but you cannot say it has a bug.&lt;/P&gt;
&lt;P&gt;Now, what if the design is wrong? Simple: we don't have a way to submit a design issue. In the &lt;A href="https://connect.microsoft.com/"&gt;Microsoft Connect&lt;/A&gt; site you have only two forms: the bug form and the suggestion form. Please, add a third form: I need the design issue form. May be nobody thought this before. It could be that simple? May be... Now the question is: what is the right form to ask for the add of a new form? I hope somebody can help me with this.&lt;/P&gt;
&lt;P&gt;&amp;lt;/rant&amp;gt;&lt;/P&gt;
&lt;P&gt;For those of you who are asking what has been the issue that exceeded the "enough is enough" limit, take a look at &lt;A href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=286080"&gt;this one&lt;/A&gt;, which has received an answer more than one year (one year!) after its submission. Technically speaking, the behavior of CAST is right. However, it requires that you convert a VARCHAR into a FLOAT and then into a NUMERIC if the initial string contains a number in exponential form. I know that in this case the "by design" answer has solid foundation and don't justify my reaction :-) but you know... I was right &lt;A href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=250881"&gt;several&lt;/A&gt; &lt;A href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=243429"&gt;other&lt;/A&gt; &lt;A href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=262197"&gt;times&lt;/A&gt; and this time the "by design" answer started my post minutes before I realized that design reasons were good... too late, my rant was too funny to be deleted :-)&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=It's not a bug, it's by (bad?) design&amp;amp;body=Seen on SQLblog.com: %0A%0A%09It's not a bug, it's by (bad?) design%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/07/28/it-s-not-a-bug-it-s-by-bad-design.aspx" target="_blank" title = "Email It's not a bug, it's by (bad?) design"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/28/it-s-not-a-bug-it-s-by-bad-design.aspx&amp;amp;title=It%27s+not+a+bug%2c+it%27s+by+(bad%3f)+design" target="_blank" title = "Submit It's not a bug, it's by (bad?) design to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/28/it-s-not-a-bug-it-s-by-bad-design.aspx&amp;amp;phase=2" target="_blank" title = "Submit It's not a bug, it's by (bad?) design to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/28/it-s-not-a-bug-it-s-by-bad-design.aspx&amp;amp;title=It%27s+not+a+bug%2c+it%27s+by+(bad%3f)+design" target="_blank" title = "Submit It's not a bug, it's by (bad?) design to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/28/it-s-not-a-bug-it-s-by-bad-design.aspx&amp;amp;title=It%27s+not+a+bug%2c+it%27s+by+(bad%3f)+design" target="_blank" title = "Submit It's not a bug, it's by (bad?) design to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/28/it-s-not-a-bug-it-s-by-bad-design.aspx&amp;amp;title=It%27s+not+a+bug%2c+it%27s+by+(bad%3f)+design&amp;amp;;top=1" target="_blank" title = "Add It's not a bug, it's by (bad?) design to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8081" width="1" height="1"&gt;</description></item><item><title>Microsoft client and server strategies about BI</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/07/26/microsoft-client-and-server-strategies-about-bi.aspx</link><pubDate>Sat, 26 Jul 2008 09:14:47 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8052</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8052.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8052</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8052</wfw:comment><description>&lt;p&gt;The last news is the &lt;a href="http://www.datallegro.com/pr/7_24_08_microsoft_acquisition.asp"&gt;acquisition of DATAllegro by Microsoft&lt;/a&gt;. From a server point of view, Microsoft is doing well (even if not fast as I'd like). But is on the client side that I (and many other customers) are disappointed.&lt;/p&gt; &lt;p&gt;I totally agree with the &lt;a href="http://www.google.com/reader/view/#stream/user%2F08771139415663004075%2Flabel%2Fbi"&gt;post of Chris Webb about XLCubed&lt;/a&gt;, where he also explains the issues of Microsoft client tools that are on the market today. I know, we have to wait until Office 14 and/or PerformancePoint 2.0 before having a more advanced BI tool. We only have to think what to say to customers that would like to make strategical investment today and don't want to wait other 2 or more years just to get a client tool that is able to leverage on features that (for example) Analysis Services offered since 2005.&lt;/p&gt; &lt;p&gt;The reason for not investing too much on a third party tool is simple. Until three years ago, Panorama and ProClarity were the most important OLAP tools you could use with Analysis Services. Then, Microsoft acquisition of ProClarity stopped most of its development (because of the need to integrate it with PerformancePoint) and Panorama failed to update its client to leverage on new SSAS 2005 attribute-based paradigm. If only someone predicted the inability of Microsoft to deliver a full-featured client OLAP product, updated with fancy graphics, within 2006/2007, a very good move in 2004 would have been developing a ProClarity equivalent product made using .NET and WPF as development platform. Today, it would have been a killer-app, especially if you consider that Silverlight 2 allows you to deliver the fancy animated charts in a simple way. Today, I don't see any "wow" OLAP client on the market that I can plug to SSAS using all the SSAS features and power.&lt;/p&gt; &lt;p&gt;As Chris said, binding the release cycle of OLAP tools to the release cycle of Office hasn't been a good move. The &lt;a href="http://www.msbiconference.com/pages/tracksandsessions.aspx"&gt;sessions announced&lt;/a&gt; for the Microsoft Business Intelligence Conference 2008 don't anticipate much for the near future. Yes, we have to wait for Office 14...&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Microsoft client and server strategies about BI&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Microsoft client and server strategies about BI%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/07/26/microsoft-client-and-server-strategies-about-bi.aspx" target="_blank" title = "Email Microsoft client and server strategies about BI"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/26/microsoft-client-and-server-strategies-about-bi.aspx&amp;amp;title=Microsoft+client+and+server+strategies+about+BI" target="_blank" title = "Submit Microsoft client and server strategies about BI to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/26/microsoft-client-and-server-strategies-about-bi.aspx&amp;amp;phase=2" target="_blank" title = "Submit Microsoft client and server strategies about BI to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/26/microsoft-client-and-server-strategies-about-bi.aspx&amp;amp;title=Microsoft+client+and+server+strategies+about+BI" target="_blank" title = "Submit Microsoft client and server strategies about BI to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/26/microsoft-client-and-server-strategies-about-bi.aspx&amp;amp;title=Microsoft+client+and+server+strategies+about+BI" target="_blank" title = "Submit Microsoft client and server strategies about BI to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/26/microsoft-client-and-server-strategies-about-bi.aspx&amp;amp;title=Microsoft+client+and+server+strategies+about+BI&amp;amp;;top=1" target="_blank" title = "Add Microsoft client and server strategies about BI to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8052" width="1" height="1"&gt;</description></item><item><title>The adoption of LINQ</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/07/25/the-adoption-of-linq.aspx</link><pubDate>Fri, 25 Jul 2008 07:57:39 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8034</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8034.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8034</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8034</wfw:comment><description>&lt;p&gt;Eric White has written an interesting post titled &lt;a href="http://blogs.msdn.com/ericwhite/archive/2008/07/24/are-developers-using-linq.aspx"&gt;"Are developers using LINQ?"&lt;/a&gt; - there are interesting considerations about the adoption of functional programming too, but the most interesting part for me is the list of comment of the post. A lot of people described the adoption of LINQ into their team or company, and there is a spread variety of comments (good and bad).&lt;/p&gt; &lt;p&gt;An interesting comment is about the future adoption of F# when it will be shipped, because of the complete adoption of functional programming (C# 3 is not a complete functional programming like F# is). I suggest you to take a look at this post and its comments, because it gives you an idea of what is going on out there.&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=The adoption of LINQ&amp;amp;body=Seen on SQLblog.com: %0A%0A%09The adoption of LINQ%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/07/25/the-adoption-of-linq.aspx" target="_blank" title = "Email The adoption of LINQ"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/25/the-adoption-of-linq.aspx&amp;amp;title=The+adoption+of+LINQ" target="_blank" title = "Submit The adoption of LINQ to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/25/the-adoption-of-linq.aspx&amp;amp;phase=2" target="_blank" title = "Submit The adoption of LINQ to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/25/the-adoption-of-linq.aspx&amp;amp;title=The+adoption+of+LINQ" target="_blank" title = "Submit The adoption of LINQ to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/25/the-adoption-of-linq.aspx&amp;amp;title=The+adoption+of+LINQ" target="_blank" title = "Submit The adoption of LINQ to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/25/the-adoption-of-linq.aspx&amp;amp;title=The+adoption+of+LINQ&amp;amp;;top=1" target="_blank" title = "Add The adoption of LINQ to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8034" width="1" height="1"&gt;</description></item><item><title>SQLBits in UK</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/07/24/sqlbits-in-uk.aspx</link><pubDate>Wed, 23 Jul 2008 22:12:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:8007</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/8007.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=8007</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=8007</wfw:comment><description>&lt;P&gt;I would like to attend to &lt;A class="" href="http://www.sqlbits.com/"&gt;SQLBits&lt;/A&gt; this year, but my agenda is already overbooked. I hope you have the time to attend because there are a lot of &lt;A class="" href="http://www.sqlbits.com/information/PublicSessions.aspx"&gt;interesting sessions&lt;/A&gt;, it's a good excuse to visit London (the conference is scheduled on September 13, 2008 - it's a Saturday) and there are very good &lt;A class="" href="http://www.sqlbits.com/information/PublicSpeakers.aspx"&gt;speakers&lt;/A&gt;. The conference is free, but registration is required. A training day (with a reasonable fee) is also scheduled the day before. If you live in Europe, save the date!&lt;/P&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=SQLBits in UK&amp;amp;body=Seen on SQLblog.com: %0A%0A%09SQLBits in UK%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/07/24/sqlbits-in-uk.aspx" target="_blank" title = "Email SQLBits in UK"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/24/sqlbits-in-uk.aspx&amp;amp;title=SQLBits+in+UK" target="_blank" title = "Submit SQLBits in UK to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/24/sqlbits-in-uk.aspx&amp;amp;phase=2" target="_blank" title = "Submit SQLBits in UK to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/24/sqlbits-in-uk.aspx&amp;amp;title=SQLBits+in+UK" target="_blank" title = "Submit SQLBits in UK to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/24/sqlbits-in-uk.aspx&amp;amp;title=SQLBits+in+UK" target="_blank" title = "Submit SQLBits in UK to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/24/sqlbits-in-uk.aspx&amp;amp;title=SQLBits+in+UK&amp;amp;;top=1" target="_blank" title = "Add SQLBits in UK to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=8007" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/marco_russo/archive/tags/Conference/default.aspx">Conference</category></item><item><title>MDX best practices analysis using MDX Studio</title><link>http://sqlblog.com/blogs/marco_russo/archive/2008/07/20/mdx-best-practices-analysis-using-mdx-studio.aspx</link><pubDate>Sun, 20 Jul 2008 10:19:05 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:7825</guid><dc:creator>Marco Russo (SQLBI)</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/marco_russo/comments/7825.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/marco_russo/commentrss.aspx?PostID=7825</wfw:commentRss><wfw:comment>http://sqlblog.com/blogs/marco_russo/rsscomments.aspx?PostID=7825</wfw:comment><description>&lt;p&gt;Mosha &lt;a href="http://sqlblog.com/blogs/mosha/archive/2008/07/13/analyze-mdx-with-mdx-studio.aspx"&gt;released&lt;/a&gt; a new version of &lt;a href="http://cid-74f04d1ea28ece4e.skydrive.live.com/browse.aspx/MDXStudio/v0.4.0"&gt;MDX Studio (0.4)&lt;/a&gt;, which offers an "MDX Analysis" function that suggest best practices for a given MDX query.&lt;/p&gt; &lt;p&gt;I tried the tool with some MDX query and it offers very good suggestion (when possible with link to further information about the issue) for both the MDX beginner and the MDX veteran. Sometime, the suggestion cannot be applied because you really want to make a particular "slow" calculation, but in general the approach is pretty good. A further step would the a "pluggable" architecture to extend best practices rules, just as FxCop does. However, chances are that not so many peopla have the time to implement additional rules, so it could be a useless effort and Mosha's time would be better spent on extending existing rules in the future.&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=MDX best practices analysis using MDX Studio&amp;amp;body=Seen on SQLblog.com: %0A%0A%09MDX best practices analysis using MDX Studio%0A%0Ahttp://sqlblog.com/blogs/marco_russo/archive/2008/07/20/mdx-best-practices-analysis-using-mdx-studio.aspx" target="_blank" title = "Email MDX best practices analysis using MDX Studio"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/20/mdx-best-practices-analysis-using-mdx-studio.aspx&amp;amp;title=MDX+best+practices+analysis+using+MDX+Studio" target="_blank" title = "Submit MDX best practices analysis using MDX Studio to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/20/mdx-best-practices-analysis-using-mdx-studio.aspx&amp;amp;phase=2" target="_blank" title = "Submit MDX best practices analysis using MDX Studio to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/20/mdx-best-practices-analysis-using-mdx-studio.aspx&amp;amp;title=MDX+best+practices+analysis+using+MDX+Studio" target="_blank" title = "Submit MDX best practices analysis using MDX Studio to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/20/mdx-best-practices-analysis-using-mdx-studio.aspx&amp;amp;title=MDX+best+practices+analysis+using+MDX+Studio" target="_blank" title = "Submit MDX best practices analysis using MDX Studio to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/marco_russo/archive/2008/07/20/mdx-best-practices-analysis-using-mdx-studio.aspx&amp;amp;title=MDX+best+practices+analysis+using+MDX+Studio&amp;amp;;top=1" target="_blank" title = "Add MDX best practices analysis using MDX Studio to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=7825" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/marco_russo/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://sqlblog.com/blogs/marco_russo/archive/tags/MDX/default.aspx">MDX</category></item></channel></rss>