<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/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>SQL Server (και άλλες databases)</title><link>https://www.dotnetzone.gr:443/cs/forums/28/ShowForum.aspx</link><description>Θέματα που αφορούν τον SQL Server (7.0, 2000, 2005) αλλά και Oracle, Access, DB2, MySQL, κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3385.aspx</link><pubDate>Fri, 08 Jul 2005 18:58:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3385</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3385.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3385</wfw:commentRss><description>&lt;font style="BACKGROUND-COLOR: #efefef"&gt; &lt;p&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;Συμφωνώ απόλυτα, αυτό άλλωστε είπα κι εγώ αμέσως μετά το post του Γιώργου... Αλλά αφού σας είδα αποφασισμένους &lt;img src="/forums//emoticons/emotion-2.gif" alt="Big Smile" /&gt; και αρχίσατε να δείχνετε κώδικα, είπα να προσθέσω κι εγώ τον οβολό μου ως προς το optimization... &lt;br /&gt;Εξάλλου αυτό το performance hint εφαρμόζεται σε πολλές περιπτώσεις που οι developers έχουν συνηθίσει να χρησιμοποιούν temporary πίνακες... &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3384.aspx</link><pubDate>Fri, 08 Jul 2005 18:48:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3384</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3384.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3384</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Το πνεύμα των posts μου ήταν το ότι &lt;em&gt;χρησιμοποιούμε το κατάλληλο εργαλείο για κάθε δουλειά&lt;/em&gt; (και, στην περίπτωσή μας, δεν "στραμπουλάμε" την T-SQL για να κάνουμε πράγματα για τα οποία δεν είναι φτιαγμένη..).&lt;br /&gt;&lt;br /&gt;Στο post με το συννημένο&lt;strong&gt;&lt;u&gt;&lt;font size="6"&gt;t&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;, θα βρείς ένα script (σε Perl) και το ισοδύναμο σε T-SQL. Η σύγκριση της απόδοσης (σαν τάξη μεγέθους) έχει την μεγαλύτερη σημασία, όχι οι πιθανές βελτιστοποιήσεις του κώδικα.&lt;br /&gt;&lt;br /&gt;Άρης&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3378.aspx</link><pubDate>Fri, 08 Jul 2005 04:16:20 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3378</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3378.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3378</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Μου φαίνεται περίεργος ο αλγόριθμος γιατί το κόσκινο δουλεύει ως εξής:&lt;br /&gt;Γεμίζουμε έναν πίνακα Χ με τους αριθμούς 2 ως Ν (πχ 2 ως 100). Παίρνουμε τον πρώτο, τον ρίχνουμε σε ένα δεύτερο πίνακα Υ που θα περιέχει τους πρώτους&amp;nbsp;και διαγράφουμε από τον Χ όλες τις τιμές όπου το υπόλοιπο της διαίρεσης με τον προηγούμενο αριθμό είναι 0. Συνεχίζουμε με τη σειρά όλους τους αριθμούς του Χ και σταματάμε όταν φτάσουμε στον αριθμό SQR(N). Τότε, ό,τι έχει μείνει μέσα στον X το ρίχνουμε στον Y. Πλεόν ο Y έχει όλους τους πρώτους αριθμούς από το 2 ως το Ν.&lt;br /&gt;Γι αυτό είπα ότι δεν μου θυμίζει Κόσκινο του Ερατοσθένη, μιας και δεν είδα πουθενά τετραγωνική ρίζα...&lt;br /&gt;Πάντως Άρη, νομίζω ότι το SP σου μπορεί να βελτιωθεί αν αντί για temporary πίνακα χρησιμοποιήσεις table variable...&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3376.aspx</link><pubDate>Fri, 08 Jul 2005 02:51:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3376</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3376.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3376</wfw:commentRss><description>Ήταν από το &lt;a target="_blank" title="http://www.amazon.com/exec/obidos/tg/detail/-/0201510596/qid%3D1120755033/sr%3D11-1/ref%3Dsr%5F11%5F1/102-2029123-1775338?v=glance&amp;amp;s=books" href="http://www.amazon.com/exec/obidos/tg/detail/-/0201510596/qid%3D1120755033/sr%3D11-1/ref%3Dsr%5F11%5F1/102-2029123-1775338?v=glance&amp;amp;s=books"&gt;Algorithms in C++&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Πάντως, και αυτός που βρήκες δείχνει καλός &lt;img src="/forums//emoticons/emotion-1.gif" alt="Smile" /&gt;. Πρέπει να ρωτήσουμε τον Ερατοσθένη...&lt;br /&gt;&lt;br /&gt;Άρης</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3364.aspx</link><pubDate>Thu, 07 Jul 2005 16:16:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3364</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3364.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3364</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Παίδες, νομίζω ότι ο αλγόριθμος για το κόσκινο του Ερατοσθένη&amp;nbsp;πού έχετε γράψει παραπάνω δεν είναι σωστός... &lt;a target="_blank" title="http://primes.utm.edu/glossary/page.php?sort=SieveOfEratosthenes" href="http://primes.utm.edu/glossary/page.php?sort=SieveOfEratosthenes"&gt;Εδώ&lt;/a&gt; θα βρείτε τον σωστό...&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3361.aspx</link><pubDate>Thu, 07 Jul 2005 05:40:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3361</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3361.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3361</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/forums/Themes/MistBlue/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;gcapnias wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td width="100%" valign="top" class="txt4"&gt; &lt;p&gt;&lt;font face="Georgia" size="2"&gt;Αν το stored procedure ήταν στο SQL 2005 και σε μια .NET γλώσσα, θα ήταν άραγε πιο γρήγορο; &lt;img alt="Big Smile" src="/forums//emoticons/emotion-2.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;George J.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;br /&gt;Θα το φροντίσω, το ΠΣΚ &lt;img src="/forums//emoticons/emotion-11.gif" alt="Cool" /&gt;&lt;br /&gt;&lt;br /&gt;Άρης</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3355.aspx</link><pubDate>Thu, 07 Jul 2005 03:00:10 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3355</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3355.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3355</wfw:commentRss><description>&lt;p&gt;&lt;font face="Georgia" size="2"&gt;Αν το stored procedure ήταν στο SQL 2005 και σε μια .NET γλώσσα, θα ήταν άραγε πιο γρήγορο; &lt;img src="/forums//emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;George J.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3351.aspx</link><pubDate>Thu, 07 Jul 2005 02:10:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3351</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3351.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3351</wfw:commentRss><description>&lt;p&gt;Σε (νέα&lt;img src="/forums//emoticons/emotion-2.gif" alt="Big Smile" /&gt;) συνέχεια, το τυπικό κόσκινο του Ερατοσθένους είναι (σε sproc):&lt;br /&gt;&lt;font face="Courier New" color="#006400"&gt;CREATE PROCEDURE sieve &lt;br /&gt;&amp;nbsp;@maxInt int&lt;br /&gt;AS&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#006400"&gt;-- fill temp table&lt;br /&gt;create table #tmpPrimes (prime int primary key)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#006400"&gt;declare @num int&lt;br /&gt;select @num=1&lt;br /&gt;while (@num&amp;lt;&lt;/font&gt;&lt;a target="_blank" title="mailto:=@maxInt" href="mailto:=@maxInt"&gt;&lt;font face="Courier New" color="#006400"&gt;=@maxInt&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New" color="#006400"&gt;)&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;insert into #tmpPrimes values (@num);&lt;br /&gt;&amp;nbsp;select @num = @num + 1&lt;br /&gt;END&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#006400"&gt;-- sieve&lt;br /&gt;declare @i int, @j int&lt;br /&gt;select @i = 2&lt;br /&gt;while (@i &amp;lt;= @maxInt/2)&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;select @j = 2&lt;br /&gt;&amp;nbsp;while (@j &amp;lt;= @maxInt/@i)&lt;br /&gt;&amp;nbsp;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;update #tmpPrimes set prime = (-1) * prime where prime = @i * @j&lt;br /&gt;&amp;nbsp;&amp;nbsp;select @j = @j + 1&lt;br /&gt;&amp;nbsp;END&lt;br /&gt;&amp;nbsp;select @i = @i + 1&lt;br /&gt;END&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New" color="#006400"&gt;insert into Primes1&lt;br /&gt;&amp;nbsp;select prime from #tmpPrimes where prime &amp;gt; 0&lt;br /&gt;drop table #tmpPrimes&lt;br /&gt;GO&lt;/font&gt;&lt;br /&gt;όπου η παράμετρος είναι ο μέγιστος ακέραιος που θα εξετασθεί.&lt;br /&gt;&lt;br /&gt;Χρειάζεται 6' 30" περίπου για να ψάξει μέχρι το 100k, δίνοντας περίπου 10k πρώτους.&lt;br /&gt;&lt;br /&gt;Άρης&lt;/p&gt;</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3337.aspx</link><pubDate>Wed, 06 Jul 2005 04:29:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3337</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3337.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3337</wfw:commentRss><description>Σε συνέχεια των προηγουμένων, δεν νομίζω ότι η T-SQL είναι για τέτοιες δουλειές..&lt;br /&gt;&lt;br /&gt;Εάν συγκρίνουμε ένα σκριπτάκι που να υπολογίζει πρώτους (σε Perl) και μία αντίστοιχης λογικής stored procedure (T-SQL, σε SQL2k) θα κλάψουμε...&lt;br /&gt;&lt;br /&gt;Το σκριπτάκι υπολόγισε 25000 πρώτους σε 1' 31" και η stored procedure 5000 πρώτους σε 9' 21". Σημειωτέον ότι οι χρόνοι &lt;strong&gt;δεν&lt;/strong&gt; είναι γραμμικοί (σαφές από τον αλγόριθμο).&lt;br /&gt;&lt;br /&gt;Το συννημένο περιέχει ότι χρειάζεται για να πειραματιστείτε (εκτός από την Perl που θα βρείτε &lt;a target="_blank" title="http://www.activeperl.com/Products/ActivePerl/" href="http://www.activeperl.com/Products/ActivePerl/"&gt;εδώ&lt;/a&gt;). Θα χρειαστεί να "σκαλίσετε" λίγο το script που φτιάχνει την βάση (ένας πίνακας και δύο sprocs - η μία είναι αυτή που σχολιάζω σε παραπάνω post)&lt;br /&gt;&lt;br /&gt;Άρης</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3316.aspx</link><pubDate>Tue, 05 Jul 2005 15:37:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3316</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3316.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3316</wfw:commentRss><description>Με μια πρώτη ματιά, το 81 σίγουρα δεν είναι πρώτος...δεν ξέρω για άλλους.Είναι πολύ πρωί &lt;img src="/forums//emoticons/emotion-10.gif" alt="Embarrassed" /&gt;&lt;img src="/forums//emoticons/emotion-20.gif" alt="[|-)]" /&gt;&lt;br /&gt;</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3311.aspx</link><pubDate>Tue, 05 Jul 2005 04:56:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3311</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3311.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3311</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Κρατώντας κάποιες επιφυλάξεις, έχω την αίσθηση ότι κάτι δεν πάει καλά...&lt;br /&gt;&lt;u&gt;Επιφυλάξεις:&lt;br /&gt;&lt;/u&gt;1. Έκανα λάθη copy-paste&lt;br /&gt;2. Οι αλλαγές στον κώδικα (χρήση μονίμου πίνακα για γράψιμο των πρώτων) τον αλλοίωσαν&lt;br /&gt;&lt;br /&gt;Έτρεξα τον τροποποιημένο κώδικα που ακολουθεί σε SQL 2000 (PIV/3.0GHz, 1.5GB) και πήρε 17:50.593 να τρέξει (έγραφε...)&lt;br /&gt;Ο κώδικας:&lt;br /&gt;&lt;font face="Courier New" color="#006400"&gt;set nocount on &lt;br /&gt;--declare @prime table (prime int not null primary key) &lt;br /&gt;--insert into @prime values (2) &lt;br /&gt;--insert into @prime values (3) &lt;br /&gt;--insert into @prime values (5) &lt;br /&gt;--insert into @prime values (7) &lt;br /&gt;--insert into @prime values (11) &lt;br /&gt;declare @number int, @pc int &lt;br /&gt;set @number = 13 &lt;br /&gt;set @pc = 1 &lt;br /&gt;while @pc &amp;lt; 1000000 &lt;br /&gt;begin &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font face="Courier New"&gt;&lt;font color="#006400"&gt;&amp;nbsp;&amp;nbsp; if not exists (select 1 from Primes1 where @number % prime = 0 and prime &amp;lt; sqrt(@number) ) &lt;br /&gt;&amp;nbsp;&amp;nbsp; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert into Primes1 select @number &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @pc = @pc +1 &lt;br /&gt;&amp;nbsp;&amp;nbsp; end &lt;br /&gt;&amp;nbsp;&amp;nbsp; set @number = @number &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + case when @number %2 = 1 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when @number %3 = 2 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when @number %5 = 4 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when @number %7 = 6 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when @number %11 = 10 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else 1 end &lt;br /&gt;&amp;nbsp;&amp;nbsp; end &lt;br /&gt;select @pc&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face="Verdana"&gt;Κληθηκε με το&lt;/font&gt;&lt;br /&gt;&lt;font color="#006400"&gt;use Primes&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font face="Courier New" color="#006400"&gt;declare @start datetime&lt;br /&gt;declare @end datetime&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font face="Courier New" color="#006400"&gt;select @start = getdate()&lt;br /&gt;exec dotNetZone1&lt;br /&gt;select @end = getdate()&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font face="Courier New"&gt;&lt;font color="#006400"&gt;select @end-@start&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;όπου:&lt;br /&gt;- Primes = το database&lt;br /&gt;- dotNetZone1 = ο παραπάνω κώδικας σε sproc&lt;br /&gt;- Primes1 = ο πίνακας που έγραφα (όμοιος με τον &lt;font face="Courier New" color="#006400"&gt;@prime&lt;/font&gt; του αρχικού κώδικα)&lt;br /&gt;&lt;br /&gt;Τρέχοντας μετά ένα &lt;font face="Courier New" color="#006400"&gt;select top 100 prime from Primes1&lt;/font&gt;, πήρα τα εξής (μάλλον λανθασμένα&lt;img src="/forums//emoticons/emotion-1.gif" alt="Smile" /&gt;) αποτελέσματα:&lt;br /&gt;&lt;font face="Courier New" color="#ff1493"&gt;prime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;----------- &lt;br /&gt;13&lt;br /&gt;15&lt;br /&gt;17&lt;br /&gt;19&lt;br /&gt;21&lt;br /&gt;23&lt;br /&gt;25&lt;br /&gt;27&lt;br /&gt;29&lt;br /&gt;31&lt;br /&gt;33&lt;br /&gt;35&lt;br /&gt;37&lt;br /&gt;39&lt;br /&gt;41&lt;br /&gt;43&lt;br /&gt;45&lt;br /&gt;47&lt;br /&gt;49&lt;br /&gt;51&lt;br /&gt;53&lt;br /&gt;55&lt;br /&gt;57&lt;br /&gt;59&lt;br /&gt;61&lt;br /&gt;63&lt;br /&gt;65&lt;br /&gt;67&lt;br /&gt;69&lt;br /&gt;71&lt;br /&gt;73&lt;br /&gt;75&lt;br /&gt;77&lt;br /&gt;79&lt;br /&gt;81&lt;br /&gt;83&lt;br /&gt;85&lt;br /&gt;87&lt;br /&gt;89&lt;br /&gt;91&lt;br /&gt;93&lt;br /&gt;95&lt;br /&gt;97&lt;br /&gt;99&lt;br /&gt;101&lt;br /&gt;103&lt;br /&gt;105&lt;br /&gt;107&lt;br /&gt;109&lt;br /&gt;111&lt;br /&gt;113&lt;br /&gt;115&lt;br /&gt;117&lt;br /&gt;119&lt;br /&gt;121&lt;br /&gt;123&lt;br /&gt;125&lt;br /&gt;127&lt;br /&gt;129&lt;br /&gt;131&lt;br /&gt;133&lt;br /&gt;135&lt;br /&gt;137&lt;br /&gt;139&lt;br /&gt;141&lt;br /&gt;143&lt;br /&gt;145&lt;br /&gt;147&lt;br /&gt;149&lt;br /&gt;151&lt;br /&gt;153&lt;br /&gt;155&lt;br /&gt;157&lt;br /&gt;159&lt;br /&gt;161&lt;br /&gt;163&lt;br /&gt;165&lt;br /&gt;167&lt;br /&gt;169&lt;br /&gt;171&lt;br /&gt;173&lt;br /&gt;175&lt;br /&gt;177&lt;br /&gt;179&lt;br /&gt;181&lt;br /&gt;183&lt;br /&gt;185&lt;br /&gt;187&lt;br /&gt;189&lt;br /&gt;191&lt;br /&gt;193&lt;br /&gt;197&lt;br /&gt;199&lt;br /&gt;201&lt;br /&gt;203&lt;br /&gt;205&lt;br /&gt;207&lt;br /&gt;209&lt;br /&gt;211&lt;br /&gt;213&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font face="Courier New" color="#ff1493"&gt;(100 row(s) affected)&lt;br /&gt;&lt;br /&gt;&lt;font face="Verdana" color="#000000"&gt;Μήπως κάτι δεν πάει καλά;&lt;br /&gt;&lt;br /&gt;Άρης&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3286.aspx</link><pubDate>Mon, 04 Jul 2005 06:54:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3286</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3286.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3286</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Σε T-SQL? Να φτιάξει κανείς κάτι καλύτερο από το κόσκινο του Ερατοσθένη; Χλωμό το βλέπω... Όποιος πάντως το κάνει, έχει σίγουρη θέση στην βιομηχανία της κρυπτογράφισης...&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Calculate prime numbers in SQL Server 2005</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3282.aspx</link><pubDate>Sun, 03 Jul 2005 08:25:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3282</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3282.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3282</wfw:commentRss><description>&lt;font face="Georgia" size="2"&gt;Για να δούμε τι έχουμε εδώ...&lt;br /&gt;&lt;br /&gt; &lt;table style="BORDER-RIGHT: 2px ridge; BORDER-TOP: 2px ridge; BORDER-LEFT: 2px ridge; BORDER-BOTTOM: 2px ridge" bordercolor="#cccccc" cellspacing="0" cellpadding="0" width="90%" align="center" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;table cellspacing="0" cellpadding="5" width="100%" bgcolor="#eeeeee" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="BORDER-RIGHT: #003399 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #003399 1px solid; PADDING-LEFT: 1px; FONT-SIZE: 8pt; PADDING-BOTTOM: 1px; BORDER-LEFT: #003399 1px solid; COLOR: #ffffff; PADDING-TOP: 1px; BORDER-BOTTOM: #003399 1px solid; FONT-FAMILY: Marlett; BACKGROUND-COLOR: #003399" align="middle" width="25"&gt;1&lt;/td&gt; &lt;td style="BORDER-RIGHT: #003399 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #003399 1px solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: 10pt; PADDING-BOTTOM: 2px; BORDER-LEFT: #003399 1px solid; COLOR: #ffffff; PADDING-TOP: 2px; BORDER-BOTTOM: #003399 1px solid; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #003399" width="100%"&gt;Calculate prime numbers in SQL Server 2005&lt;/td&gt; &lt;td style="BORDER-RIGHT: #003399 2px solid; PADDING-RIGHT: 1px; BORDER-TOP: #003399 2px solid; PADDING-LEFT: 1px; FONT-WEIGHT: bold; FONT-SIZE: 10pt; PADDING-BOTTOM: 1px; BORDER-LEFT: #003399 2px solid; COLOR: #ffffff; PADDING-TOP: 1px; BORDER-BOTTOM: #003399 2px solid; FONT-FAMILY: Marlett; BACKGROUND-COLOR: #ff0000" width="25"&gt;r&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="BORDER-RIGHT: 2px groove; BORDER-TOP: 2px groove; FONT-SIZE: 10pt; BORDER-LEFT: 2px groove; BORDER-BOTTOM: 2px groove; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #ffffff" colspan="3"&gt; &lt;p&gt;Thought I would start a challenge.&lt;/p&gt; &lt;p&gt;Who can come up with the best way of calculating prime numbers in SQL server. with all the progamability changes in 2005 there must be a really good way of doing it, or is there.&lt;/p&gt; &lt;p&gt;I've had a few stabs using a CTE and some TSQL put not that impressive, the CTE has limitations, the TSQL produced 1 million prime numbers in 7 minutes.&lt;/p&gt; &lt;p&gt;Can you do better&lt;/p&gt; &lt;p&gt;Heres the some code,&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;set nocount on &lt;br /&gt;declare @prime table (prime int not null primary key) &lt;br /&gt;--insert into @prime values (2) &lt;br /&gt;--insert into @prime values (3) &lt;br /&gt;--insert into @prime values (5) &lt;br /&gt;--insert into @prime values (7) &lt;br /&gt;--insert into @prime values (11) &lt;br /&gt;declare @number int, @pc int &lt;br /&gt;set @number = 13 &lt;br /&gt;set @pc = 1 &lt;br /&gt;while @pc &amp;lt; 1000000 &lt;br /&gt;begin &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp; if not exists (select 1 from @prime where @number % prime = 0 and prime &amp;lt; sqrt(@number) ) &lt;br /&gt;&amp;nbsp;&amp;nbsp; begin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert into @prime select @number &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set @pc = @pc +1 &lt;br /&gt;&amp;nbsp;&amp;nbsp; end &lt;br /&gt;&amp;nbsp;&amp;nbsp; set @number = @number &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + case when @number %2 = 1 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when @number %3 = 2 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when @number %5 = 4 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when @number %7 = 6 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when @number %11 = 10 then 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else 1 end &lt;br /&gt;&amp;nbsp;&amp;nbsp; end &lt;br /&gt;select @pc&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;AND&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;with seq &lt;br /&gt;as( select 13 number &lt;br /&gt;union all &lt;br /&gt;select s.number &lt;br /&gt;+ case when s.number %2 = 1 then 2 &lt;br /&gt;when s.number %3 = 2 then 2 &lt;br /&gt;when s.number %5 = 4 then 2 &lt;br /&gt;when s.number %7 = 6 then 2 &lt;br /&gt;when s.number %11 = 10 then 2 &lt;br /&gt;else 1 end &lt;br /&gt;from seq s &lt;br /&gt;where number &amp;lt; 32767 &lt;br /&gt;) &lt;br /&gt;, prime as ( &lt;br /&gt;select s.number &lt;br /&gt;from seq s &lt;br /&gt;where not exists ( select 1 from seq s2 where s2.number &amp;lt; s.number and (s.number) % s2.number = 0) &lt;br /&gt;) &lt;br /&gt;select * &lt;br /&gt;from prime &lt;br /&gt;option (MAXRECURSION 32767)&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;img height="1" src="http://sqljunkies.com/WebLog/aggbug.aspx?PostID=15934" width="1" /&gt; &lt;p&gt;&lt;a target="_blank" title="http://sqljunkies.com/WebLog/simons/archive/2005/06/28/15934.aspx" href="http://sqljunkies.com/WebLog/simons/archive/2005/06/28/15934.aspx"&gt;&lt;u&gt;&lt;font color="#0002ca"&gt;Original Link&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt; &lt;div class="newsitemfooter"&gt;Tuesday 23:18 | SimonSabin &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Ποιος μπορεί να φτιάξει κάτι καλύτερο; &lt;img src="/forums//emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;George J.&lt;br /&gt;&lt;/font&gt;</description></item></channel></rss>