<?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: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7280.aspx</link><pubDate>Mon, 08 Jun 2009 21:44:33 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7280</guid><dc:creator>B_gd_n[ ]Sahlean</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7280.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7280</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://sqlserver.ro/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;silviu:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Multumesc pentru lamuririle privind tipul uniqueidentifier. Nu sunt foarte experimentat  pe SQL Server si nu l-am mai vazut folosit, undeva. Voi discuta cu colegii si voi incerca sa schimb varchar-ul cu uniqueidentifier, urmand ca ulterior sa fac teste de performanta.

Dupa cum Remus a intuit, privind folosirea uneia din functiile Uuid standard, avem un wrapper ce foloseste UuidCreate(), si nu un algoritm propriu.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;200.000 înregistrări nu sunt multe.&lt;br&gt;Recomandarea &lt;a href="http://sqlserver.ro/forums/permalink/7280/7256/ShowThread.aspx#7256"&gt;7252&lt;/a&gt; a fost ca înainte de a încerca diverse &lt;font color="#ff0000"&gt;[non]soluţii&lt;/font&gt; &lt;br&gt;să rulezi o interogare (care are timpi de execuţie mari) în SQL Server Management Studio cu opţiunea Query &amp;gt; Include actual execution plan.&lt;br&gt;Vei putea să identifici care etape din execuţia interogării (operatori) sunt "costisitoare"(costuri mari care de obicei se traduc prin timpi mari).&lt;br&gt;&lt;br&gt;Eventual, poţi publica aici (dacă e posibil) interogarea şi planul de execuţie.&lt;br&gt;</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7279.aspx</link><pubDate>Mon, 08 Jun 2009 21:22:09 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7279</guid><dc:creator>silviu</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7279.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7279</wfw:commentRss><description>Multumesc pentru lamuririle privind tipul uniqueidentifier. Nu sunt foarte experimentat  pe SQL Server si nu l-am mai vazut folosit, undeva. Voi discuta cu colegii si voi incerca sa schimb varchar-ul cu uniqueidentifier, urmand ca ulterior sa fac teste de performanta.&lt;br /&gt;&lt;br /&gt;Dupa cum Remus a intuit, privind folosirea uneia din functiile Uuid standard, avem un wrapper ce foloseste UuidCreate(), si nu un algoritm propriu.</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7278.aspx</link><pubDate>Mon, 08 Jun 2009 15:01:15 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7278</guid><dc:creator>rremus</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7278.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7278</wfw:commentRss><description>Dupa cum tzi-a zis si Bogdan, exista tipul de date specializat uniqueidentifier, care are 16 bytes. Tu ai les sa stochezi in formatul character, care este mai mult decit dublu ca lungime. Si nu numai atit, ai ales &lt;font color="#ff0000"&gt;var&lt;/font&gt;char(36) ca sa mai adaugi inca citiva biti la stocare, desi lungimea unui GUID reprezentat ca string este fixa. Si ca sa pui cireasa in virf ne atragi atentia ca este 'un identifier generat intr-un algoritm scris in C++' ! Un raspuns mirobolant. Sincer sper ca aplicatia ta nu genereaza UUID-uri intr-un algoritm propriu, ci le genereaza corect apelind fie &lt;a href="http://msdn.microsoft.com/en-us/library/aa379205%28VS.85%29.aspx"&gt;UuidCreate&lt;/a&gt; fie &lt;a href="http://msdn.microsoft.com/en-us/library/aa379322%28VS.85%29.aspx"&gt;UuidCreateSequential,&lt;/a&gt; sau una din functiile wrapper gen &lt;a href="http://msdn.microsoft.com/en-us/library/ms688568%28VS.85%29.aspx"&gt;CoCreateGuid&lt;/a&gt;.&lt;br&gt;</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7277.aspx</link><pubDate>Mon, 08 Jun 2009 12:08:48 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7277</guid><dc:creator>B_gd_n[ ]Sahlean</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7277.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7277</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://sqlserver.ro/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;silviu:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://sqlserver.ro/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;rremus:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Deci e varchar(36), asa ca wtf se aplica&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;

&lt;a href="http://msdn.microsoft.com/en-us/library/ms187942.aspx" target="_blank" title="http://msdn.microsoft.com/en-us/library/ms187942.aspx"&gt;Citat din MSDN &lt;/a&gt;

"By converting from a string constant in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, in which each x is a hexadecimal digit in the range 0-9 or a-f. For example, 6F9619FF-8B86-D011-B42D-00C04FC964FF is a valid uniqueidentifier value."

Un astfel de string sub ce format de coloana le stochezi, altul decat varchar(36)? Daca nu exista altul mai potrivit, atunci nu e nici un wtf.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;În antetul paginii web indicate de tine scrie:&lt;br&gt;"&lt;div class="title"&gt;uniqueidentifier (Transact-SQL)&lt;/div&gt;
      
        
         &lt;p&gt;&lt;/p&gt; 
        &lt;span id="changeHistory"&gt;
        &lt;/span&gt;
    &lt;p&gt;Is a &lt;b&gt;&lt;font color="#ff0000"&gt;16-byte&lt;/font&gt;&lt;/b&gt; GUID. &lt;/p&gt;
  
			&lt;div id="ctl00_MTContentSelector1_mainContentContainer_cpe154252_h" class="CollapseRegionLink"&gt;
				&lt;img id="ctl00_MTContentSelector1_mainContentContainer_cpe154252_i" class="LibC_o" src="http://i.msdn.microsoft.com/Global/Images/clear.gif" style="border-width:0px;vertical-align:middle;"&gt;&amp;nbsp;Remarks
			&lt;/div&gt;
				&lt;a id="remarksToggle"&gt;&lt;/a&gt;
    
      A column or local variable of &lt;font color="#ff0000"&gt;&lt;b&gt;uniqueidentifier data type&lt;/b&gt;&lt;/font&gt;"&lt;br&gt;</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7276.aspx</link><pubDate>Mon, 08 Jun 2009 11:27:34 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7276</guid><dc:creator>silviu</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7276.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7276</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://sqlserver.ro/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;rremus:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Deci e varchar(36), asa ca wtf se aplica&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187942.aspx" target="_blank" title="http://msdn.microsoft.com/en-us/library/ms187942.aspx"&gt;Citat din MSDN &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"By converting from a string constant in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, in which each x is a hexadecimal digit in the range 0-9 or a-f. For example, 6F9619FF-8B86-D011-B42D-00C04FC964FF is a valid uniqueidentifier value."&lt;br /&gt;&lt;br /&gt;Un astfel de string sub ce format de coloana le stochezi, altul decat varchar(36)? Daca nu exista altul mai potrivit, atunci nu e nici un wtf.</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7260.aspx</link><pubDate>Fri, 05 Jun 2009 17:31:22 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7260</guid><dc:creator>rremus</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7260.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7260</wfw:commentRss><description>Deci e varchar(36), asa ca wtf se aplica&lt;br&gt;</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7259.aspx</link><pubDate>Fri, 05 Jun 2009 11:00:56 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7259</guid><dc:creator>silviu</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7259.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7259</wfw:commentRss><description>E tot un unique identifier generat printr-un algoritm scris in C++ (are loc conversia unui string constant in unique identifier - cazul doi din link-ul tau). Aplicatia ce utilizeaza baza de date este scrisa in C++, iar la nivel de baze de date e tinut ca si varchar (36).</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7258.aspx</link><pubDate>Fri, 05 Jun 2009 09:20:44 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7258</guid><dc:creator>rremus</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7258.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7258</wfw:commentRss><description>Deci e uniqueidentifier sau varchar(36) ?&lt;br&gt;</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7256.aspx</link><pubDate>Thu, 04 Jun 2009 21:42:29 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7256</guid><dc:creator>silviu</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7256.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7256</wfw:commentRss><description>In primul rand, multumesc pentru sfaturi. Sfaturile tale m-au determinat sa ma gandesc serios teste suplimentare de eficientitate, inainte de a trece la modificari in aplicatia propriu-zisa ce utilizeaza baza de date avuta in discutie voi efectua teste cu interogarile respective.&lt;br /&gt;&lt;br /&gt;In alta ordine de idei, acel guid despre care vorbesc eu este exact unique identifier la care faci tu referire... Deci nu e nici un wtf. :)&lt;br /&gt;&lt;br /&gt;Numai bine!</description></item><item><title>Re: Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7252.aspx</link><pubDate>Wed, 03 Jun 2009 16:31:37 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7252</guid><dc:creator>rremus</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7252.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7252</wfw:commentRss><description>Exista o singura idee si un singur sfat: masoara, nu ghicii. De unde stii ca dimensiunea cheii este problema? Masoara, masoara si iar masoara.&lt;br&gt;Ia un query din cele de zeci de secunde si ruleaza-l din SSMS. Seteaza SET STATISTICS IO ON si vezi ce logical reads are, pe ce rowset. Sint zeci sau sute? De la mii in sus in mod sigur faci scan nu seek. Poate ca un rowset este scana in intregime? Poate mai multe sint scanate? Paote chiar de mai multe ori? Afiseaza planul actual de executie (nu cel estimat, ala e BS). Planul arata ce operator consuma cel mai mult timp si de unde vin cele mai multe date. Ce operator e?&lt;br&gt;&lt;br&gt;GUID nu e intradevar o alegere fericita, mai ales daca este tzinut ca varchar(36) (wtf!!!!) si nu ca &lt;a href="http://msdn.microsoft.com/en-us/library/ms187942.aspx"&gt;uniqueidentifier&lt;/a&gt;. Dar daca problema este de query design atunci convertirea in numeric a cheilor va fi doar o operatie extrem de dureroasa si fara nici un rezultat.&lt;br&gt;&lt;br&gt;Masoara, Masoara, Masora. Apoi taie.&lt;br&gt;</description></item><item><title>Optimizare si redesign tabele</title><link>http://sqlserver.ro/forums/thread/7251.aspx</link><pubDate>Wed, 03 Jun 2009 14:05:04 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:7251</guid><dc:creator>silviu</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/7251.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=16&amp;PostID=7251</wfw:commentRss><description>Am o baza de date SQL Server 2005 iar cheile de indexare si legaturile dintre tabele sunt retinute prin GUID-uri unice (varchar(36)). &lt;br /&gt;Problema e ca am mai multe join-uri intre tabele,  tabele care ajung sa aibe foarte multe inregistrari (200.000 de inregistrari) si se ajunge ca unele queries sa dureze foarte mult (zeci de secunde, uneori chiar minute).&lt;br /&gt;Incerc sa gasesc solutii pentru a reduce acesti timpi.&lt;br /&gt;&lt;br /&gt;Una din idei ar fi inlocuirea guid-urilor cu id-uri de tip integer si  adaugarea unor tabele de guid-uri care sa faca legatura dintre id-ul nou creeat si guid. Am inteles ca interogarile dupa chei numerice ar rula mult mai repede.&lt;br /&gt;&lt;br /&gt;O alta idee ar fi impartirea unei astfel de tabele cu multe inregistrari in mai multe tabele, in functie de tipul inregistrarilor (inregistrarile sunt de mai multe tipuri generale). Astfel, voi avea interogari mai rapide, pe un numar mult mai limitat de inregistrari. Totusi, e f. greu de impartit pe astfel de categorii caci majoritatea inregistrarilor sunt doar de un anumit tip.&lt;br /&gt;&lt;br /&gt;Orice idee si sfat sunt bine-venite.</description></item></channel></rss>