<?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>Web Services</title><link>https://www.dotnetzone.gr:443/cs/forums/21/ShowForum.aspx</link><description>Συζήτηση περί των web services και WSE, την υλοποίησή τους με το .NET Framework, καθώς και θέματα interoperability με άλλα συστήματα</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Re: Smart clients over large db schema</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2702.aspx</link><pubDate>Mon, 13 Jun 2005 01:38:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2702</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2702.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=2702</wfw:commentRss><description>By the way, έκανα δοκιμές σε production περιβάλλον για το θέμα των πολλαπλών reads από πίνακες για να γεμίσει το γαιδουροdataset. Το αποτέλεσμα ήταν ότι από το να γεμίσω ένα view με τις πληροφορίες που θέλω από 15 βαρβάτους πίνακες, συμφέρει απείρως περισσότερο σε performance να ρίξω 15 διαφορετικά selects, ένα σε κάθε πίνακα. Πήρα μέχρι και 75% γρηγορότερα τα αποτελέσματα που ήθελα. (χωρίς να καταργήσω τελείως τα joins στα σπαστά selects, πάντα τo κριτήριο για το select ήταν το ίδιο, τιμή από clustered index στον μπαμπά πίνακα)&lt;br /&gt;&lt;br /&gt;Η μόνη διαφορά με την πραγματική κατάσταση, είναι ότι έφερα μόνο τα δεδομένα που ήθελα να δώ. Στην περίπτωση γαιδουροdataset θα πρέπει οι 15 πίνακες να γεμίζουν και με δεδομένα που δεν θέλεις να δεις, οπότε αυτό ίσως επιβαρύνει ακόμα και το 75% που κερδίζεις από τα σπαστά selects (και λόγω extra φόρτου του SQL και λόγω καθυστέρησης στη μεταφορά των δεδομένων στον client). Θα κάνω μερικά tests και θα σας πω τα αποτελέσματα... (Σε normalized βάσεις ίσως δεν είναι τόσο πρόβλημα, αλλά αν στον σχεδιασμό της βάσης έχει βάλει το χεράκι του δεινόσαυρος-coboλίστας, τότε έχουμε περίπτωση Ζαχαρία.... (Σωτήρη γράψε κάτι))&lt;br /&gt;&lt;br /&gt;Πάντως συνεχίζει να με τρομάζει η κατάσταση... στην ουσία θα έχω ένα dataset με όλο το schema της βάσης; Σίγουρα απλοποιεί πάρα πολλά πράγματα... BUT.... BUT... BUT.... Δεν ξέρω τι έχει μέσα αυτό το BUT, αλλά δεν μου κάθεται καλά... Ρίχτε καμιά&amp;nbsp;άποψη για επιπτώσεις στα resources&amp;nbsp;του client ή για άλλα drawbacks...&lt;br /&gt;&lt;br /&gt;Κι αυτή η microsoft ρε παιδί μου είχε μια ιδέα που την είπε "smart clients" και την έχει αφήσει στο έλεος του θεού... ούτε ένα παράδειγμα της προκοπής, ούτε ένα σοβαρό case study.... θα τρέξει αυτό το πράγμα ή θα μας τη βγεί με κάνα άλλο σενάριο; Και εδώ μέσα που ρωτάω δηλαδή... τρίχες κατσαρές σχεδόν... βαδίζω σε αχαρτογράφητα νερά και ίσως πρέπει να κάνω πίσω....&lt;br /&gt;&lt;br /&gt;Να φλυαρίσω άλλη μια παραγραφούλα ακόμα, αλλά το σκεπτικό πιστεύω είναι: "λύσε το όπως θα σκεφτόταν η microsoft να το λύσει". Αν βαδίζεις έτσι έχεις λιγότερες πιθανότητες να φας τα μούτρα σου. Και το θέμα smart clients μάλλον η microsoft δεν το έχει σκεφτεί αρκετά...</description></item><item><title>Re: Smart clients over large db schema</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2646.aspx</link><pubDate>Fri, 10 Jun 2005 20:27:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2646</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2646.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=2646</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Πέρα από τον ψυχολογικό παράγοντα &lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt; δεν βλέπω που είναι το πρόβλημα... Έχεις ελέγξει το τυπικό μέγεθος (σε KB) που θα έχει το dataset μέσα από το Studio? Επίσης, μπορείς να βάλεις μέσα στο dataset κάποιους βασικούς πίνακες που θα χρειαστείς και κατόπιν να ετοιμάσεις views. Μπορεί να σου δώσουν μικρότερο όγκο data. Π.χ αν έχεις ένα grid που εμφανίζει data από 6 πίνακες, δείχνοντας ένα column από τον καθένα, ενδέχεται το view να έχει μικρότερο όγκο, παρ' όλο που θα έχεις columns με πανομοιότυπη πληροφορία. Θέλει proof-of-point δοκιμές για να δεις τι σε συμφέρει καλύτερα...&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Smart clients over large db schema</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2641.aspx</link><pubDate>Fri, 10 Jun 2005 19:41:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2641</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2641.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=2641</wfw:commentRss><description>Μιλάμε για ασφαλιστικά συμβόλαια. Τα δεδομένα είναι λίγα στην περίπτωση που εφαρμόζω αυτή τη στιγμή, αλλά οι πίνακες είναι πολλοί. Θέλει ο client να διορθώσει κάτι σε ένα συμβόλαιο. Του γεμίζω το dataset-τέρας με 1-3 γραμμές σε κάθε πίνακα και του το στέλνω. Όταν τελιώσει μου το γυρίζει και αν δεν υπάρχει conflict θα μπει στη βάση. Αλλά το ότι το συμβόλαιο μπλέκει 20 πίνακες που θα μπουν σε ένα dataset με τρομάζει... Και τα 20 selects με φοβίζουν κάπως... Για τα updates/inserts δεν τρέχει τίποτα, έτσι κι αλλιώς με getchanges θα δουλέψει...&lt;br /&gt;</description></item><item><title>Re: Smart clients over large db schema</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2630.aspx</link><pubDate>Fri, 10 Jun 2005 07:28:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2630</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2630.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=2630</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;Μου φαίνεται ότι το τι πρέπει να κάνεις εξαρτάται ανά περίπτωση και ουσιαστικά εκεί είναι όλη η ουσία της αρχιτεκτονικής της λύσης... Μπορεί τα specs να επιτρέπουν την πλήρη off-line εργασία, μπορεί την μερική/περιορισμένη, μπορεί και και να μην την επιτρέπουν. &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&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;Το παράδειγμα με τον περιοδεύοντα πωλητή είναι το πιο χαρακτηριστικό. Πηγαίνει το πρωί στην δουλεία, ξέρει ότι θα επισκεφτεί 10 συγκεκριμένους πελάτες και παίρνει ένα υποσύνολο των δεδομένων για να εξυπηρετήσει ακριβώς αυτές τις επισκέψεις. Μετά το τέλος της ημέρας, ρίχνει πίσω στη βάση τις νέες παραγγελίες. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;Τώρα, σε αυτό το σενάριο μπαίνουν τόσα πολλά &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;IF&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;που μπορεί τελικά να μην είναι υλοποιήσιμο το σενάριο &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;off&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;-&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;line&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;working&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;. Πόσα προϊόντα πουλάει ο πωλητής; 10, 100 ή 10.000; Πόσο συχνά μπαίνουν νέα προϊόντα και αφαιρούνται παλαιότερα; Πόσους πελάτες επισκέπτεται την ημέρα; Είναι &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;partitioned&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;οι πελάτες με κάποιο τρόπο (γεωγραφικά/ανά πωλητή/ανά &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;business&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;/κλπ); Πόσο συχνό συγχρονισμό θέλουμε να έχουμε με τη βάση; Πως θα επιλύσουμε τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;conflicts&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;Πάντως, όπως και να έχει το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;dataset&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;δεν έχει φτιαχτεί προκειμένου να αντιγράφουμε όλο το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;schema&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;και όλα τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;data&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;στη μνήμη… Όπως επίσης, δεν παίζει ρόλο το πλήθος των πινάκων που κρατάει, αλλά το πλήθος των &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;operations&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; που θα γίνουν και τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;business&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;rules&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;κάτω στα οποία θα κινείται η λογική των &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;conflicts&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;… Είναι προτιμότερο να έχω 50 πίνακες με 10 εγγραφές όλες-όλες μόνο για &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;insert&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;, παρά 3 πίνακες με πολλά &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;inserts&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;/&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;update&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;/&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;deletes&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;, όπου τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;operations&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;του «&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;regional&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;salesman&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;» έχουν προτεραιότητα σε σχέση με αυτά του απλού salesman εκτός από την περίπτωση που ο απλός &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;salesman&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;έχει κάνει ένα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;volume&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;παραγγελιών μεγαλύτερο από αυτό του &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;regional&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;manager&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; (έτσι τώρα μου ήρθε αυτό το &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;rule&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;Το πέρασμα από την &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;On&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;-&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;line&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;-κλειδώνω-τα-&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;records&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;-και-όποιον-πάρει-ο-χάρος λογική στην &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;off&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;-&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;line&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;-έχε-πρόχειρα-τα-&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;ponstan&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;λογική έχει ακριβώς αυτή τη δυσκολία. Εδώ και χρόνια έχουμε συνηθίσει να σκεφτόμαστε και να υλοποιούμε τη σχεδίαση σε επίπεδο βάσης έχοντας ως δεδομένο ότι "μπορώ από έναν πίνακα να πάρω ανά πάσα στιγμή τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;data&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;μέσω ενός τετραπλού &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;join"&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;. Για σκέψου όμως ότι αν θα έπρεπε να κρατήσεις τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;look&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;-&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;up&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;data&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;στο ελάχιστο ή αν θα έπρεπε να σπάσεις τα &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;data&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;σου σε &lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana; mso-ansi-language: EN-US"&gt;partitions&lt;/span&gt;&lt;span lang="EN" style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;ώστε να ελαφρύνεις τον όγκο της πληροφορίας, τότε πως θα σχεδίαζες τη βάση; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="FONT-SIZE: 9.5pt; BACKGROUND: #efefef; COLOR: black; FONT-FAMILY: Verdana"&gt;Αν θέλεις, μπορείς να μας περιγράψεις πιο αναλυτικά την περίπτωση που έχεις στο μυαλό σου να την κουβεντιάσουμε ως άσκηση… Θα έχει πολύ ενδιαφέρον…&lt;/span&gt;&lt;span style="FONT-SIZE: 9.5pt; COLOR: black; FONT-FAMILY: Verdana"&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>Smart clients over large db schema</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2613.aspx</link><pubDate>Fri, 10 Jun 2005 02:05:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2613</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2613.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=2613</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Στο concept των smart clients, τα δεδομένα του χρήστη μένουν αποθηκευμένα στο μηχάνημά του ώστε να μπορεί να δουλεύει και off-line. Σύμφωνα με όσα έχω καταλάβει από τα παραδείγματα της Microsoft και από όσα έχω βρει περιοδικά στο web, χρησιμοποιείται ένα dataset για να κράταει όλα τα δεδομένα το οποίο ο client το γεμίζει και το ενημερώνει σε κάθε ευκαιρία, ενώ το χρησιμοποιεί σαν off line database όσο είναι offline (αποθηκεύοντάς στο πιθανώς και στο δίσκο μεταξύ των sessions).&lt;br /&gt;&lt;br /&gt;Όταν έχουμε περιπτώσεις μεγάλων βάσεων όμως τι κάνουμε (με το μεγάλες αναφέρομαι στο schema, μεγάλο αριθμό πινάκων κλπ); Σίγουρα ξεχωρίζουμε τα readonly reference data τα οποία τα διαχειριζόμαστε ξεχωριστά. Αν τα transient data όμως παραμένουν πολλά, υπάρχει κάποιο best practice που υπάρχει για τη διαχείρισή τους; Πρέπει να βάλουμε τους πίνακες αυτούς σε ένα τεράστιο dataset, μαζί με τις αλληλοσυνδέσεις τους; Το σπάμε σε κομμάτια; Τι γίνεται με τα references μεταξύ διαφορετικών κομματιών;&lt;br /&gt;&lt;br /&gt;Επίσης, τι γίνεται στην περίπτωση που χρειάζομαι δεδομένα από 10 διαφορετικούς πίνακες; Σε άλλες καταστάσεις ενδέχεται να έφτιαχνα ένα view στην db που να τα μαζεύει. Λόγω της δομής που πρέπει να κρατήσω με ένα μεγάλο dataset, πρέπει να τραβήξω 10 selects, σε κάθε έναν από τους πίνακες για να γεμίσω "μερικώς" (ίσως enforce constrains = false)&amp;nbsp;το dataset και να το στείλω στον client. Πως επηρεάζει αυτό τον sql server μου;&lt;br /&gt;&lt;br /&gt;Η περίπτωση που έχω στο μυαλό μου για εφαρμογή, αφορά οντότητες οι οποίες εμπλέκουν τουλάχιστον 20 πίνακες οι οποίοι σύμφωνα με το αρχικό απλοϊκό σκεπτικό θα έπρεπε να μπούνε σε ένα dataset.&lt;br /&gt;&lt;br /&gt;Ότι παράδειγμα έχω βρει μέχρι τώρα, έχει τελείως απλοικές καταστάσεις με πολύ απλά datasets...&lt;br /&gt;&lt;br /&gt;Όποιος ξέρει απαντήσεις ή έχει βρει κάτι καλύτερο στο web, ας πει κάτι...&lt;br /&gt;&lt;br /&gt;PS.&lt;br /&gt;1. Από datasets δεν ξεκολάει η κατάσταση&lt;br /&gt;2. Performance μεταφοράς δεδομένων έχει εξεταστεί, πέφτει συμπίεση.&lt;br /&gt;3. Όλο το handling για τα readonly (ή σπανίως ενημερώσημα) δεδομένα είναι ήδη υλοποιημένο με αρκετά αποδοτικό τρόπο, εκτενές caching και συμπίεση.&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item></channel></rss>