<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlserver.ro/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>Intrebari generale</title><link>http://sqlserver.ro/forums/16/ShowForum.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: Baza de date cu structura necunoscuta</title><link>http://sqlserver.ro/forums/thread/7743.aspx</link><pubDate>Sun, 25 Oct 2009 01:06:48 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7743</guid><dc:creator>B_gd_n[ ]Sahlean</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7743.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7743</wfw:commentRss><description>[1] Dacă este vorba de SQL2008 atunci &lt;a href="http://msdn.microsoft.com/en-us/library/cc280604.aspx"&gt;sparse columns&lt;/a&gt; (dupa cum a recomandat si Andrei).&lt;br&gt;Uite o comparatie &lt;u&gt;sparse columns&lt;/u&gt; vs. &lt;u&gt;XML netipizat &lt;/u&gt;vs. &lt;u&gt;XML tipizat&lt;/u&gt;.&lt;br&gt;La mine scorul a fost următorul:&lt;br&gt;&lt;font face="Courier New"&gt;sparse columns&amp;nbsp; 80.922 MB&lt;br&gt;XML netipizat&amp;nbsp; 140.484 MB&lt;br&gt;XML tipizat&amp;nbsp;&amp;nbsp;&amp;nbsp; 181.703 MB&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CREATE&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;TABLE&lt;/span&gt; Persoana1&lt;br&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp;IDPersoana &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IDENTITY&lt;/span&gt;(1,1) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;KEY&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;Nume &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(50) &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;DataNasterii &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DATETIME&lt;/span&gt; SPARSE &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;Greutate &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DECIMAL&lt;/span&gt; SPARSE &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;Nevasta &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(50) SPARSE &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;Copii &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt; SPARSE &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;&lt;br&gt;);&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CREATE&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;TABLE&lt;/span&gt; Persoana2&lt;br&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp;IDPersoana &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;KEY&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;Nume &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(50) &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;Alte XML &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;&lt;br&gt;);&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CREATE&lt;/span&gt; XML &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SCHEMA&lt;/span&gt; COLLECTION XMLAlte &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt;&lt;br&gt;&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br&gt;&amp;lt;xs:schema blockDefault="" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"&amp;gt;&lt;br&gt;  &amp;lt;xs:complexType name="TipAlteInformatii"&amp;gt;&lt;br&gt;    &amp;lt;xs:choice&amp;gt;&lt;br&gt;      &amp;lt;xs:element name="DataNasterii" type="xs:string" /&amp;gt;&lt;br&gt;      &amp;lt;xs:element name="Greutate" type="xs:decimal" /&amp;gt;&lt;br&gt;      &amp;lt;xs:sequence&amp;gt;&lt;br&gt;        &amp;lt;xs:element name="Nevasta" type="xs:string" /&amp;gt;&lt;br&gt;        &amp;lt;xs:element name="Copii" type="xs:integer" /&amp;gt;&lt;br&gt;      &amp;lt;/xs:sequence&amp;gt;&lt;br&gt;    &amp;lt;/xs:choice&amp;gt;&lt;br&gt;  &amp;lt;/xs:complexType&amp;gt;&lt;br&gt;  &amp;lt;xs:element name="Alte" type="TipAlteInformatii" /&amp;gt;&lt;br&gt;&amp;lt;/xs:schema&amp;gt;'&lt;/span&gt;;&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CREATE&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;TABLE&lt;/span&gt; Persoana3&lt;br&gt;(&lt;br&gt;&amp;nbsp;&amp;nbsp;IDPersoana &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;PRIMARY&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;KEY&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;Nume &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(50) &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;Alte XML (XMLAlte) &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt;&lt;br&gt;);&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DECLARE&lt;/span&gt; @i &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SET&lt;/span&gt; @i=1&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;WHILE&lt;/span&gt; @i &amp;lt;= 1000000&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;BEGIN&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DECLARE&lt;/span&gt; @tipPersoana &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SET&lt;/span&gt; @tipPersoana = &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ABS&lt;/span&gt;( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NEWID&lt;/span&gt;() &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARBINARY&lt;/span&gt; ) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt;) )&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IF&lt;/span&gt; @tipPersoana % 3 = 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INSERT&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INTO&lt;/span&gt; Persoana1 ( Nume, DataNasterii ) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VALUES&lt;/span&gt; ( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NEWID&lt;/span&gt;(), &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NEWID&lt;/span&gt;() &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARBINARY&lt;/span&gt; ) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SMALLINT&lt;/span&gt; ) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;DATETIME&lt;/span&gt; ) )&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ELSE&lt;/span&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IF&lt;/span&gt; @tipPersoana % 3 = 1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INSERT&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INTO&lt;/span&gt; Persoana1 ( Nume, Greutate ) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VALUES&lt;/span&gt; ( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NEWID&lt;/span&gt;(), &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;RAND&lt;/span&gt;()*1000000 &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt; )%100 )&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ELSE&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IF&lt;/span&gt; @tipPersoana % 3 = 2&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INSERT&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INTO&lt;/span&gt; Persoana1 ( Nume, Nevasta, Copii ) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VALUES&lt;/span&gt; ( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NEWID&lt;/span&gt;() , &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NEWID&lt;/span&gt;() , &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;( &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;RAND&lt;/span&gt;()*1000000 &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INT&lt;/span&gt; )%10 )&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SET&lt;/span&gt; @i = @i + 1&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;END&lt;/span&gt;&lt;br&gt;GO&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;COUNT&lt;/span&gt;(*) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; NrTabelaPersoana1 &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;FROM&lt;/span&gt; Persoana1&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INSERT&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INTO&lt;/span&gt; Persoana2&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SELECT&lt;/span&gt; IDPersoana, &lt;br&gt;&amp;nbsp;&amp;nbsp;Nume, &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;Alte&amp;gt;'&lt;/span&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CASE&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;WHEN&lt;/span&gt; DataNasterii &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IS&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;THEN&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;DataNasterii&amp;gt;'&lt;/span&gt;+&lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;(DataNasterii &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(25))+&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/DataNasterii&amp;gt;'&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;WHEN&lt;/span&gt; Greutate &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IS&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;THEN&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;Greutate&amp;gt;'&lt;/span&gt;+&lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;(Greutate &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(25))+&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/Greutate&amp;gt;'&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;WHEN&lt;/span&gt; Nevasta &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IS&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;THEN&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;Nevasta&amp;gt;'&lt;/span&gt;+Nevasta&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;/span&gt;+&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/Nevasta&amp;gt; &amp;lt;Copii&amp;gt;'&lt;/span&gt;+&lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;(Copii &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(2))+&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/Copii&amp;gt;'&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;END&lt;/span&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/Alte&amp;gt;'&lt;/span&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;FROM&lt;/span&gt; Persoana1&lt;br&gt;GO&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;COUNT&lt;/span&gt;(*) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; NrTabelaPersoana2 &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;FROM&lt;/span&gt; Persoana2&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INSERT&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;INTO&lt;/span&gt; Persoana3 (IDPersoana,Nume,Alte)&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SELECT&lt;/span&gt; IDPersoana, &lt;br&gt;&amp;nbsp;&amp;nbsp;Nume, &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;Alte&amp;gt;'&lt;/span&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CASE&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;WHEN&lt;/span&gt; DataNasterii &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IS&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;THEN&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;DataNasterii&amp;gt;'&lt;/span&gt;+&lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;(DataNasterii &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(25))+&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/DataNasterii&amp;gt;'&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;WHEN&lt;/span&gt; Greutate &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IS&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;THEN&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;Greutate&amp;gt;'&lt;/span&gt;+&lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;(Greutate &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(25))+&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/Greutate&amp;gt;'&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;WHEN&lt;/span&gt; Nevasta &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;IS&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NOT&lt;/span&gt; &lt;span style="color:Silver;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;NULL&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;THEN&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;Nevasta&amp;gt;'&lt;/span&gt;+Nevasta&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;/span&gt;+&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/Nevasta&amp;gt; &amp;lt;Copii&amp;gt;'&lt;/span&gt;+&lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;CAST&lt;/span&gt;(Copii &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;VARCHAR&lt;/span&gt;(2))+&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/Copii&amp;gt;'&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;END&lt;/span&gt;+&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&amp;lt;/Alte&amp;gt;'&lt;/span&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;FROM&lt;/span&gt; Persoana1&lt;br&gt;GO&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;SELECT&lt;/span&gt; &lt;span style="color:Fuchsia;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;COUNT&lt;/span&gt;(*) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;AS&lt;/span&gt; NrTabelaPersoana3 &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;FROM&lt;/span&gt; Persoana3&lt;br&gt;GO&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;EXEC&lt;/span&gt; sp_spaceused &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'dbo.Persoana1'&lt;/span&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;EXEC&lt;/span&gt; sp_spaceused &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'dbo.Persoana2'&lt;/span&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;EXEC&lt;/span&gt; sp_spaceused &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'dbo.Persoana3'&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;[2] Pentru SQL &amp;lt; 2008 : partitionare pe orizantala &amp;gt; trei tabele separate + view cu union all + &lt;u&gt;eventual&lt;/u&gt; triger-e INSTEAD OF INSERT/ DELETE/ UPDATE&lt;br&gt;</description></item><item><title>Re: Baza de date cu structura necunoscuta</title><link>http://sqlserver.ro/forums/thread/7742.aspx</link><pubDate>Fri, 23 Oct 2009 17:00:09 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7742</guid><dc:creator>rremus</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7742.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7742</wfw:commentRss><description>Dute la http://sqlcat.com/whitepapers/archive/2008/09/03/best-practices-for-semantic-data-modeling-for-performance-and-scalability.aspx si citeste documentul de acolo, care explica destul de detaliat cum se abordeaza si rezolva o astfel de problema.</description></item><item><title>Re: Baza de date cu structura necunoscuta</title><link>http://sqlserver.ro/forums/thread/7740.aspx</link><pubDate>Fri, 23 Oct 2009 12:01:11 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7740</guid><dc:creator>sageata2002</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7740.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7740</wfw:commentRss><description>&lt;P&gt;Salut.&lt;/P&gt;
&lt;P&gt;Da, cred si eu ca XML ar fi solutia, deoarece vorbim de date semi-structurate.&lt;/P&gt;
&lt;P&gt;toate cele bune,&lt;BR&gt;calin&lt;/P&gt;</description></item><item><title>Re: Baza de date cu structura necunoscuta</title><link>http://sqlserver.ro/forums/thread/7725.aspx</link><pubDate>Thu, 22 Oct 2009 07:26:51 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7725</guid><dc:creator>crestinul</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7725.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7725</wfw:commentRss><description>Alta varianta ar fi sa stochezi partea variabila intr-un camp de tip xml,ma rog e mai complicat pentru a trebuie sa stii xquery pentru a manipula datele din acel camp ...</description></item><item><title>Re: Baza de date cu structura necunoscuta</title><link>http://sqlserver.ro/forums/thread/7724.aspx</link><pubDate>Thu, 22 Oct 2009 07:02:08 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7724</guid><dc:creator>ignatandrei</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7724.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7724</wfw:commentRss><description>Alta abordare ar fi sa faci adaugi la tabela initiala de clienti( cu acele cimpuri comune) inca 100(?) de cimpuri, si inca o tabela Denumiri in care sa tii denumirile acelor 100(?) de cimpuri.&lt;br&gt;Cauti in ea direct - doar afisezi pe interfata numele cimpurilor din tabela Denumiri...&lt;br&gt;Vezi si sparse columns de la SqlServer 2008&lt;br&gt;</description></item><item><title>Baza de date cu structura necunoscuta</title><link>http://sqlserver.ro/forums/thread/7723.aspx</link><pubDate>Thu, 22 Oct 2009 06:29:35 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7723</guid><dc:creator>Syberye</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7723.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7723</wfw:commentRss><description>&lt;P&gt;Buna ziua&lt;/P&gt;
&lt;P&gt;Daca ma imi puteti sugera un mod de abordare asupra urmatoarei probleme&lt;/P&gt;
&lt;P&gt;Am de creat o baza de date care sa contina inregistrari de la mai multi clienti doar ca inregistrarile au o parte comuna (adica la fel pentru toti) si o parte care variaza de la un client la altu (fara sa stiu dinainte acele cimpuri). Problema este la cautarea inregistrarilor unde in functie de client trebe sa caut si dupa partea variabila&lt;BR&gt;ex. &lt;BR&gt;&amp;nbsp;client1 (nume - varchar, datanasteri - datetime)&lt;BR&gt;&amp;nbsp;client2 (nume - varchar, greutate - decimal)&lt;BR&gt;&amp;nbsp;client2 (nume - varchar, nevasta - varchar, copii - int)&lt;/P&gt;
&lt;P&gt;As avea doua moduri de abordare a acestor rezolari&lt;/P&gt;
&lt;P&gt;1. cite o tabela customizata pentru fiecare client in parte care sa contina inregistrarile specifice clientului si o tabela care sa contina inregistrarile comune&lt;/P&gt;
&lt;P&gt;2. o tabela cu propietati (nume, tip) si pentru fiecare inregistrare din tabela principala sa fac un map "propietatea x" - "valoarea x" - "inregistrarea tabela comuna x"&lt;/P&gt;
&lt;P&gt;Ma omoara ideia de a cauta si complexitatea solutiei:&lt;BR&gt;prima varianta ar functiona dupa mine cel mai bine ma refer din punct de vedere al cautari - dar nu stiu cit de eficace este din punct de vedere al administratiei (o groaza de tabele pentru fiecare client)&lt;BR&gt;a doua varianta ar merge insa groaznic pentru cautare &lt;/P&gt;
&lt;P&gt;Ce metoda imi sugerati sa abordez - sau daca aveti o abordare mai inteligenta ...&lt;BR&gt;Va multumesc &lt;BR&gt;Petre&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>