<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.infosupport.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>Mark Streutker - All Comments</title><link>http://blogs.infosupport.com/blogs/marks/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>re: Handling EAV-data</title><link>http://blogs.infosupport.com/blogs/marks/archive/2009/06/01/handling-eav-data.aspx#35037</link><pubDate>Sat, 31 Oct 2009 22:10:30 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:35037</guid><dc:creator>ensecoz</dc:creator><description>&lt;p&gt;Very good information here.&lt;/p&gt;
&lt;p&gt;Thanks for sharing.&lt;/p&gt;
&lt;p&gt;Anyway i have some more questions.&lt;/p&gt;
&lt;p&gt;1. Any performance issue using this technique. (if you can provide some matrix like data size, time, should be very good)&lt;/p&gt;
&lt;p&gt;2. What if I don&amp;#39;t use EAV-modeled but using xml to keep data instead, how can you generate report from xml?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=35037" width="1" height="1"&gt;</description></item><item><title>re: Handling EAV-data</title><link>http://blogs.infosupport.com/blogs/marks/archive/2009/06/01/handling-eav-data.aspx#16632</link><pubDate>Thu, 13 Aug 2009 06:34:28 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16632</guid><dc:creator>marks</dc:creator><description>&lt;p&gt;Thats a legitimate question, it&amp;#39;s a common practice to use views.&lt;br /&gt;In the examples I&amp;#39;ve shown, I took one important dimension out of scope : time.&lt;br /&gt;Mostly when you run a report, you want data between two specific points in time.&lt;br /&gt;When you use a view, you usually realize this by adding a JOIN/WHERE clause on the BeginDate and EndDate columns.&lt;br /&gt;This method is efficient way of selecting data, since selecting through a view supports the usage of indexes.&lt;/p&gt;
&lt;p&gt;However, when you use the PIVOT construction I described above, adding a JOIN/WHERE clause _after_ the PIVOT won&amp;#39;t be as efficient. The PIVOT statement will pivot all records before applying the filters, which makes it a very expensive operation. To make a PIVOT efficient, you want to delimited as much records as possible _before_ you pivot. The only way to achieve this, is by making use of variables; i.e. a startdate and enddate.&lt;br /&gt;Since views don&amp;#39;t support the usage of variables, we were bound to use functions instead. &lt;/p&gt;
&lt;p&gt;The downside is, of course, that the resultset of a tablebased function is a table variable; so filtering the resultset of a tablebased function won&amp;#39;t use any indexes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16632" width="1" height="1"&gt;</description></item><item><title>re: Handling EAV-data</title><link>http://blogs.infosupport.com/blogs/marks/archive/2009/06/01/handling-eav-data.aspx#16619</link><pubDate>Tue, 11 Aug 2009 06:46:18 GMT</pubDate><guid isPermaLink="false">56f6167b-0c51-4839-ab2d-34653eeb5c9c:16619</guid><dc:creator>Robert te Kaat</dc:creator><description>&lt;p&gt;Why not create views for easy reporting? I used it previously to easily query XML-data, which is a similar problem.&lt;/p&gt;
&lt;p&gt;With views, it&amp;#39;s the resposibility of the original designer/developer to create them and ofcourse he knows best how the underlying model works.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.infosupport.com/aggbug.aspx?PostID=16619" width="1" height="1"&gt;</description></item></channel></rss>