<?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>T-SQL</title><link>http://sqlserver.ro/forums/15/ShowForum.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: querry execution plan for nested if in sp</title><link>http://sqlserver.ro/forums/thread/9191.aspx</link><pubDate>Mon, 02 Apr 2012 06:44:14 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9191</guid><dc:creator>tebbaerty</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9191.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9191</wfw:commentRss><description>stiu ca execution planul nu se compileaza in functie de valoarea parametrilor, dar totusi cred ca nu are o penalitate de performanta imensa (atat timp cat ai grija si la parameter sniffing). &lt;br /&gt;&lt;br /&gt;Recompilarea procedurii la fiecare apel ar fi o solutie, dar nu o consider viabila pentru ca din cate imi aduc aminte compilarea si caching-ul procedurii se face in mod serializat, iar mai multe threaduri care vor apela aceeasi procedura vor trebui sa fie sincronizate intr ele.</description></item><item><title>Re: querry execution plan for nested if in sp</title><link>http://sqlserver.ro/forums/thread/9189.aspx</link><pubDate>Sun, 01 Apr 2012 17:11:39 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9189</guid><dc:creator>ovc</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9189.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9189</wfw:commentRss><description>tocmai saptamana asta citeam o carte in legatura cu performanta in sql server. execution planurile a sp-urilor nu sunt recompilate in functie de parametrii. Ai putea eventual sa incerci sa fortezi sa se compileze de fiecare data execution plan-ul la fiecare apel al sp-ului.&lt;br&gt;prin modificare de la nvarchar la varchar ai redus doar numarul de readuri (nvarchar ocupa dublu cat varchar-ul)&lt;br&gt;</description></item><item><title>Re: querry execution plan for nested if in sp</title><link>http://sqlserver.ro/forums/thread/9132.aspx</link><pubDate>Fri, 24 Feb 2012 10:43:17 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9132</guid><dc:creator>tebbaerty</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9132.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9132</wfw:commentRss><description>cea pe care am creat-o eu de test ? sau pe cea reala. Din pacate pe cea reala nu o pot trimite din motive de securitate :(.&lt;br /&gt;&lt;br /&gt;Se pare ca de fapt problema mea nu este  acel nested if cum am crezut initial, ci faptul ca pe unele if-uri se facea un select dintr-o tabela pe care existau coloane ntext. Acestea generau un numar foarte mare de lob logical reads (~30k-60k).&lt;br /&gt;&lt;br /&gt;In cazul in care mai are cineva aceasta problema aici e rezolvarea mea : &lt;br /&gt;Am convertit coloana la nvarchar(max) / varchar(max) si am facut un update de genul "update table set col = col" pe coloanele care erau ntext inainte. Update-ul este necesar pentru a muta datele din lob in page file-uri (se vor muta doar cele care au dimensiunea sub 4k sau 8k nu mai stiu sigur).&lt;br /&gt;&lt;br /&gt;Acum ca am rezolvat problema cred de fapt ca nested-if-urile nu influenteaza in mod negativ execution planul :).&lt;br /&gt;&lt;br /&gt;Mersi&lt;br /&gt;</description></item><item><title>Re: querry execution plan for nested if in sp</title><link>http://sqlserver.ro/forums/thread/9131.aspx</link><pubDate>Thu, 23 Feb 2012 20:24:31 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9131</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9131.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9131</wfw:commentRss><description>Trimite procedura, structura tabelelor si date de test.</description></item><item><title>querry execution plan for nested if in sp</title><link>http://sqlserver.ro/forums/thread/9128.aspx</link><pubDate>Thu, 23 Feb 2012 13:50:03 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:9128</guid><dc:creator>tebbaerty</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/9128.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=9128</wfw:commentRss><description>Salut,&lt;br /&gt;&lt;br /&gt;Cateodata o procedura cu foarte multe nested if-uri (~40) da timeout. Cumva execution plan-ul se recompileaza de fiecare data cand o ia pe alta ramura de if ? Nu am gasit ceva concludent, unii spuneau ca da, altii ca nu.&lt;br /&gt;&lt;br /&gt;Am facut o procedura cu mai multe nested if-uri, am pus un profiler si am observat ca nu se recompileaza procedura. De asemenea m-am uitat pe planul de executie si am vazut ca sunt prinse if-urile in plan. Deci nu vad nici o explicatie logica pentru care execution planul se va recompila de fiecare data cand se duce pe o alta ramura de if. Mai ales ca msdn spune clar care sunt conditiile pentru a se recompila (http://msdn.microsoft.com/en-us/library/ms181055.aspx sectiunea Recompiling Execution Plans ).&lt;br /&gt;&lt;br /&gt;As dori sa stiu si parerea voastra ? &lt;br /&gt;&lt;br /&gt;PS: desigur ca daca fac un querry dinamic, sau sparg procedura in mai multe proceduri simple, sau mut logica de if-uri in cod si pe partea de sql raman doar cele ~40 de proc as rezolva problema, insa sunt curios ce se intampla exact pentru a stii clar ce problema rezolv.&lt;br /&gt;</description></item></channel></rss>