<?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>Απ: Πως κάνουμε γρηγορότερη μια εφαρμογη...</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35293.aspx</link><pubDate>Mon, 24 Sep 2007 04:12:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35293</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35293.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=35293</wfw:commentRss><description>&lt;P&gt;Αυτό που ζητάς είναι υπερβολικά γενικό. Τί είδους queries κάνεις? Πόσο συχνά? Τί εννοείς ελαφρύτερη βάση? Καλύτερη τακτική από ποιά? Όσο για τις ζημιές και τα αρχεία, μάλλον πρέπει να εξηγήσεις τί εννοείς. Αν εννοείς ότι φοβάσαι ότι αν πάθουν κάτι τα αρχεία της βάσης, θα χάσεις δεδομένα, τί σε κάνει να πιστεύεις ότι με δικά σου αρχεία θα είσαι πιο ασφαλής? Μία βάση τουλάχιστον κάνει ένα αυτοέλεγχο.&lt;/P&gt;
&lt;P&gt;Το μόνο που μπορεί κανείς να σου προτείνει είναι να φροντίσεις να ακολουθείς κάποιους βασικούς κανόνες.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Να έχεις σωστά indexes. Η απόδοση των queries αυξάνεται κατακόρυφα αν υπάρχουν indexes στις στήλες&amp;nbsp;που χρησιμοποιείς στα where και στα joins.&lt;/LI&gt;
&lt;LI&gt;Να μην χρησιμοποιείς cursor, ή επαναλαμβανόμενα queries μέσα σε loops (είναι σα να χρησιμοποιείς cursors). Έστω ότι διαβάζεις 100 εγγραφές από τη βάση και για κάθε μία από αυτές θέλεις να διαβάσεις κάποια άλλα δεδομένα από τη βάση. Αν κάνεις άλλα 2-3 queries για κάθε εγγραφή που διάβασες από τη βάση, θα καταλήξεις με 200-300 περιττά queries. Καλύτερα να κάνεις εκτελέσεις ένα query που θα επιστρέψει όλα τα δεδομένα που χρειάζεσαι.&lt;/LI&gt;
&lt;LI&gt;Να μην χρησιμοποιείς χύμα sql αλλά το λιγότερο parameterized queries. Όταν υποβάλεις ένα χύμα query σε μορφή string, η βάση πρέπει να το κάνει parse και να υπολογίσει τον καλύτερο τρόπο να το εκτελέσει. Αν αντί για χύμα queries χρησιμοποιήσεις parameterized queries ή ακόμα καλύτερα, stored procedures, η βάση θα κάνει parse το query μόνο την πρώτη φορά που θα το εκτελέσεις.&lt;/LI&gt;
&lt;LI&gt;Μην ανοίγεις παραπανήσια connections. Συνήθως δεν χρειάζεσαι παραπάνω από ένα connection για όλη την εφαρμογή. Μπορείς να πετύχεις να υπάρχει μόνο ένα connection ανοικτό κάθε φορά αν χρησιμοποιείς connection pooling, δημιουργείς ένα connection μόνο όταν χρειάζεται και το κλείνεις όταν δεν το χρειάζεσαι πλέον. Το connection pooling αναλαμβάνει να κρατήσει ανοικτό το connection και να στο επιστρέψει όταν το ξαναζητήσεις. Με τον τρόπο αυτό μπορείς να πετύχεις διπλάσιες επιδόσεις όταν εκτελείς συχνά μικρά queries.&lt;/LI&gt;
&lt;LI&gt;Μην επιστρέφεις παραπανήσια δεδομένα σε ένα query. Μπορεί το SELECT * FROM TABLE να βολεύει, έτσι όμως επιστρέφεις πολύ περισσότερα δεδομένα απ' όσα χρειάζεσαι.&lt;/LI&gt;&lt;/UL&gt;</description></item><item><title>Απ: Πως κάνουμε γρηγορότερη μια εφαρμογη...</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35288.aspx</link><pubDate>Mon, 24 Sep 2007 02:17:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35288</guid><dc:creator>Δημήτρης Γκανάτσιος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35288.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=35288</wfw:commentRss><description>Αν τραβάς από τη βάση συχνά τα ίδια δεδομένα, μπορείς να κατασκευάσεις ένα δικό σου σύστημα caching, προκειμένου να αποθηκεύεις διάφορα δεδομένα στη μνήμη, ώστε να μη χρειάζεται να ξανακάνεις access τη βάση για να τα φέρνεις. Υπάρχει και το Caching Application Block, το οποίο σε βοηθάει σε μεγάλο βαθμό και το οποίο μπορείς να δεις&amp;nbsp;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa480456.aspx"&gt;εδώ&lt;/A&gt;. Βέβαια, πρέπει πάντα να προσέχεις ώστε η μνήμη που καταναλώνει η εφαρμογή σου να μην είναι υπερβολικά μεγάλη σε μέγεθος. Αλλά αυτό εξαρτάται από την εφαρμογή και το σχεδιασμό της.</description></item><item><title>Πως κάνουμε γρηγορότερη μια εφαρμογη...</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35283.aspx</link><pubDate>Mon, 24 Sep 2007 00:08:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35283</guid><dc:creator>jimenez</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35283.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=35283</wfw:commentRss><description>&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Έχω φτιάξει μια εφαρμογή η οποία κάνει συνεχώς διαβάσματα από μια βάση. Πως μπορώ να κάνω ελαφρύτερη ή και ακόμα γρηγοροτερη? Παίζω με Querakia. Υπάρχει κάποια καλύτερη τακτική(Σιγουρα)? Σε περίπτωση που πάθει ζημια η βάση τι πιστεύεται να κάνω?να διαβάζω και γενικά να πζίξω με αρχεία?&lt;br&gt;&lt;br&gt;</description></item></channel></rss>