<?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/5/ShowForum.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: Problema cu ultimele inregistrari</title><link>http://sqlserver.ro/forums/thread/4668.aspx</link><pubDate>Wed, 16 Apr 2008 18:12:29 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:4668</guid><dc:creator>csm75</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/4668.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=5&amp;PostID=4668</wfw:commentRss><description>&lt;P&gt;Incearca sa pui nolock la tabele.&lt;/P&gt;
&lt;P&gt;Incearca sa scapi de conditia where .... pk_key =(SELECT MAX(pk_key) as pk_key FROM tabel t2 WHERE t1.cod = t2.cod AND t2.data &amp;lt;= data) printr-un join intre t1 si t2&lt;/P&gt;
&lt;P&gt;ceva de genul:&lt;/P&gt;
&lt;P&gt;SELECT t1.cod, t1.sold, SUBSTRING(t1.cod,3,4) as grupa FROM tabel t1 (nolock) &lt;/P&gt;
&lt;P&gt;join (SELECT MAX(pk_key) as pk_key FROM tabel t2(nolock) WHERE t1.cod = t2.cod AND t2.data &amp;lt;= data) xt on t1.pk_key = xt.pk_key&lt;/P&gt;
&lt;P&gt;Nu am testat join-ul asta, dar stiu sigur ca ajuta la performnta.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Re: Problema cu ultimele inregistrari</title><link>http://sqlserver.ro/forums/thread/4666.aspx</link><pubDate>Wed, 16 Apr 2008 17:03:53 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:4666</guid><dc:creator>ggciubuc</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/4666.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=5&amp;PostID=4666</wfw:commentRss><description>&lt;P&gt;Ati incercat ceva de genul &amp;nbsp;" select TOP(1)&amp;nbsp; ... where ... ORDER BY pk_key DESC"?&lt;/P&gt;
&lt;P&gt;Asa ceva va returna&amp;nbsp;o inregistrare (de fapt ultima pt ca ordinea este descrescatoare) care respecta conditiile impuse.&lt;/P&gt;</description></item><item><title>Problema cu ultimele inregistrari</title><link>http://sqlserver.ro/forums/thread/4653.aspx</link><pubDate>Wed, 16 Apr 2008 09:42:38 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:4653</guid><dc:creator>ssandu</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/4653.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=5&amp;PostID=4653</wfw:commentRss><description>Salut&lt;br&gt;Am o tabela pk_key(int), cod(char),sold(numeric), data(smalldatetime) din care sa extrag ultimele inregistrari la o anumita data la care soldul sa fie diferit de 0.&lt;br&gt;Selectul pe care il am acum este&lt;br&gt;SELECT cod, sold, SUBSTRING(cod,3,4) as grupa FROM tabel t1&lt;br&gt;WHERE sold &amp;lt;&amp;gt; 0 and SUBSTRING(cod,1,2) = @comp and pk_key = &lt;br&gt;(SELECT MAX(pk_key) as pk_key FROM tabel t2 WHERE t1.cod = t2.cod AND t2.data &amp;lt;= data)&lt;br&gt;ORDER by cod&lt;br&gt;Problema este ca la un numar mare de inregistrari returnate selectul dureaza cam 16 secunde.&lt;br&gt;Pot face ceva sa mearga mai repede ?&lt;br&gt;Am indecsi pe cod, data, cod+data, pk_key(clustered).&lt;br&gt;Multumesc.&lt;br&gt;</description></item></channel></rss>