<?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>Πρώτα Βήματα - Βάσεις δεδομένων</title><link>https://www.dotnetzone.gr:443/cs/forums/73/ShowForum.aspx</link><description>Για όσους κάνουν τα πρώτα τους βήματα στην Microsoft Access ή τον SQL Server, ή γενικότερα στη θεωρία βάσεων δεδομένων.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Ύπαρξη του Inner Join</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48623.aspx</link><pubDate>Mon, 23 Feb 2009 03:15:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48623</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48623.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=48623</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;gspiros:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Έχω τα 2 παρακάτω queries:&lt;BR&gt;&lt;BR&gt;select territories.territoryid, region.regionid from territories inner join region on territories.regionid=region.regionid&lt;BR&gt;select territoryid, (select regionid from region where region.regionid=territories.regionid) as regionid from territories&lt;BR&gt;&lt;BR&gt;Προκύπτουν οι ίδιοι πίνακες!&lt;BR&gt;Γιατί υπάρχει το Inner join, αφου την δουλειά του μπορούμε να την κάνουμε και αλλιώς?&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Η αλήθεια, είναι ότι προκύπτουν οι ίδιοι πίνακες αν ο server που τρέχει το ερώτημα είναι ο SQL Server, που είναι διάσημος για το auto-optimization που διαθέτει.&lt;/P&gt;
&lt;P&gt;Να είσαι σίγουρος ότι τα ερωτήματα μπορούν να επιστρέψουν διαφορετικά αποτελέσματα, αν πχ ο server είναι Oracle ή MySql. Η χρήση του Inner Join θα κάνει πιο γρήγορη αναζήτηση, αν όμως υπάρχουν nulls μέσα στα αποτελέσματα που θα πάρεις, το ένα-προς-ένα "πάει περίπατο" και έχεις cross-table αποτελέσματα.&lt;/P&gt;
&lt;P&gt;Σε αυτή την περίπτωση η χρήση της δεύτερης σύνταξης είναι επιτακτική...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Ύπαρξη του Inner Join</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48614.aspx</link><pubDate>Mon, 23 Feb 2009 00:35:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48614</guid><dc:creator>nikolaosk</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48614.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=48614</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;είναι αιώνιο ερώτημα που λέει και ο σωτήρης....&lt;/P&gt;
&lt;P&gt;από προσωπική εμπειρία λέω ότι γενικά προτίμησε joins σε σχέση με subqueries.&lt;/P&gt;
&lt;P&gt;τα subqueries πρέπει να εκτελούνται πρώτα. και μετά το Outer query. βασικά εκτελείς 2 ερωτήματα αντί για ένα, όπως όταν έχεις Join.&lt;/P&gt;
&lt;P&gt;τα Joins χρησιμοποιούνε και κάνουνε καλύτερο Utilize του Index. αν ο πίνακας σου είναι Indexed στην στήλη-πεδίο που γίνεται το Join, τότε θα έχεις ένα καλό performance.&lt;BR&gt;&lt;BR&gt;Και φυσικά από readiblity point of view, μπορείς να διαβάσεις καλύτερα ένα Join από ένα subquery.&lt;/P&gt;
&lt;P&gt;φυσικά δεν τον παρακάνουμε με τα joins. το να έχεις ενα gridview το οποίο τραβάει data από ένα view που είναι το Join 57 Πινάκων , μάλλον θα έχεις πολλά προβλήματα στο performance, ειδικά αν τα δεδομένα είναι πολλά.&lt;/P&gt;</description></item><item><title>Απ: Ύπαρξη του Inner Join</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48598.aspx</link><pubDate>Sun, 22 Feb 2009 06:26:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48598</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48598.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=48598</wfw:commentRss><description>Το ερώτημά σου έχει ταλαιπωρήσει πολλούς developers σε πολλά συστήματα βάσεων δεδομένων και επί πολλά χρόνια! Ειναι το γνωστό "joins vs subqueries", για το οποίο δεν υπάρχει, δυστυχώς, μια και μόνο μία απάντηση. Εξαρτάται από αρκετές παραμέτρους και απαντάται κατά περίπτωση. &lt;br /&gt;&lt;br /&gt;Ομως, οι απαντήσεις δεν έχουν να κάνουν με το αποτέλεσμα (που φυσικά και είναι ίδιο και στις δύο περιπτώσεις) αλλά με τις επιδόσεις του συστήματος. Ητοι, τελικά ποιό είναι πιό γρήγορο;&lt;br /&gt;&lt;br /&gt;Στην περίπτωση που αναφέρεις, είναι σχετικά εύκολο να υποθέσουμε οτι ένα join θα ήταν πιό γρήγορο από ένα subquery, μια και το join "ενώνει" τους πίνακες σε ένα πέρασμα, ενώ το subquery σου θα τρέξει μια φορά για κάθε γραμμή του πίνακα territories. Ητοι, αν ο πίνακας έχει χιλιάδες γραμμές, το subquery θα τρέξει χιλιάδες φορές. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description></item><item><title>Ύπαρξη του Inner Join</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48596.aspx</link><pubDate>Sun, 22 Feb 2009 04:52:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48596</guid><dc:creator>gspiros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48596.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=48596</wfw:commentRss><description>Έχω τα 2 παρακάτω queries:&lt;br&gt;&lt;br&gt;select territories.territoryid, region.regionid from territories inner join region on territories.regionid=region.regionid&lt;br&gt;select territoryid, (select regionid from region where region.regionid=territories.regionid) as regionid from territories&lt;br&gt;&lt;br&gt;Προκύπτουν οι ίδιοι πίνακες!&lt;br&gt;Γιατί υπάρχει το Inner join, αφου την δουλειά του μπορούμε να την κάνουμε και αλλιώς?&lt;br&gt;</description></item></channel></rss>