Jump to content

antonch

Administrators
  • Posts

    1030
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by antonch

  1. Αρκετές φορές έχω αναφέρει κατά την διάρκεια των μαθημάτων και των παρουσιάσεων που κάνω για την αρχιτεκτονική μιας βάσης, ότι τα data files χωρίζονται σε σελίδες των 8K, κάθε 8 τέτοιες σελίδες αποτελούν ένα extent και ότι υπάρχουν δύο είδη extent τα uniform και τα mixed. Uniform είναι αυτά που οι 8 σελίδες τους ανήκουν σε ένα object πχ στον πίνακα των πελατών, ενώ mixed είναι αυτά που οι 8 σελίδες τους ανήκουν σε διαφορετικά. Επανειλημμένα έχω αναφέρει ότι σε κάθε πίνακα οι πρώτες 8 σελίδες του ανήκουν σε mixed extend και από την 9 και μετά πάνε σε uniform extent. Είναι αρκετά χρήσιμο να γνωρίζω το πως έχει γίνει αυτή κατανομή των σελίδων σε extents καθώς θα με βοηθήσει να καταλάβω το πως θα διαβαστούν τα δεδομένα μου αλλά και να μπορώ να καταλάβω το πιθανό fragmentation που θα εμφανιστεί. Τι κάνει η DBCC EXTENTINFO; Για όλους αυτούς του λόγους είναι χρήσιμο να γνωρίζω την ύπαρξη της DBCC EXTENTINFO. Η συγκεκριμένη ανήκει στην κατηγορία των undocumented dbcc commands, αλλά είναι γνωστή σε όσους ασχολούνται συστηματικά με τον SQL Server. Η εκτέλεση της επιστρέφει ένα dataset του οποίου η κάθε γραμμή αντιπροσωπεύει ένα extent στην βάση μου εάν αυτό είναι uniform και πολλές (μέχρι 8) αν είναι mixed. περισσότερα
  2. Φαντάζομαι ότι σε όλους είναι γνωστό ότι για να εκτελεστεί ένα query στον SQL Server περνάει από τον Query Optimizer. Αυτός για να παράξει το execution plan βλέπει τα index statistics. Αυτό σημαίνει ότι όσο καλύτερα ενημερωμένα είναι αυτά τόσο καλύτερα αποτελέσματα θα δώσει ο Query Optimizer. Πότε όμως αυτά έχουν ενημερωθεί τελευταία φορά; Αν κάποιος θέλει να δώσει απάντηση στο ερώτημα του αυτό δεν έχει παρά να εκτελέσει το παρακάτω query στην βάση του. περισσότερα
  3. Όπως εδώ και καιρό έχει γίνει γνωστό από την ανακοίνωση της Microsoft ο SQL Server 2012 θα είναι η τελευταία έκδοση που θα υποστηρίζει τον SQL Server Native Client OLE DB provider καθώς αυτός θα πρόκειται να σταματήσει να αναπτύσσεται. Ο αντικαταστάτης του θα είναι ένας παλιός γνώριμος το ODBC read more
  4. Διαβάζοντας το τελευταίο άρθρο του Jonathan Kehayias διαπίστωσα ότι έχω πολύ καιρό να γράψω κάτι για τα internals του SQL Server. Μέσα στο άρθρο αυτό του Jonathan υπάρχουν αναφορές σε κάποια ειδικά pages που υπάρχουν σε κάθε database στον SQL Server. Με αφορμή αυτό αποφάσισα να γράψω το post αυτό και να αναφερθώ σε όλα αυτά το special pages. Page structure and page offset Πριν ξεκινήσω όμως την αναφορά μου σε αυτά θα πρέπει να είμαι σίγουρος ότι όλοι γνωρίζουμε ότι κάθε data file σε μια SQL Server database δομείτε εσωτερικά σε pages των 8ΚΒ. Σε αυτά αποθηκεύονται τα δεδομένα του SQL Server. Ένα page έχει τον page header που είναι 96 bytes και το offset array το οποίο βρίσκεται στο τέλος του page, είναι 36 bytes και παρέχει τους δείκτες (pointers) στο byte location της αρχής της κάθε γραμμής (record) που είναι στην συγκεκριμένη σελίδα. Αυτό είναι αποθηκευμένο αντίστροφα πάνω στην σελίδα δηλαδή το offset του πρώτου record είναι στο τέλος του συγκεκριμένου array το δεύτερο είναι προτελευταίο κ.ο.κ. Το υπόλοιπο τμήμα (8060 bytes) είναι ο χώρος στον οποίο αποθηκεύονται τα records. Αυτός είναι και ο λόγος που λέμε ότι το max record length δεν μπορεί να είναι πάνω από 8060 bytes καθώς ένα record δεν μπορεί να είναι σπασμένο σε δύο pages. Extents Κάθε 8 τέτοιες σελίδες φτιάχνουν ένα extent. Υπάρχουν δύο είδη extent read more
  5. Οι περισσότεροι είστε σε κάποιον παραθαλάσσιο μέρος και καλά κάνετε. Παρόλα αυτά όμως τα SQL Saturday Nights ακόμα δεν έχουν τελειώσει, απλά αντί να σας βάζω σε διαδικασίες να τα παρακολουθήσετε live αποφάσισα να φτιάξω ένα απόψε καθώς θέλω να αναδείξω ένα θέμα το οποίο οι περισσότεροι δεν γνωρίζετε ή το γνωρίζετε λίγο ή ακόμα και για αυτούς που το γνωρίζουν δεν είναι κακό να το ξαναδούν. Αφορά τον αριθμό των VLFs (Virtual Log Files) που έχει ένα transaction log σε μία database στον SQL Server και πως όταν αυτός ο αριθμός είναι αρκετά μεγάλος επηρεάζει την απόδοση μιας datatase. περισσότερα
  6. Σαν παλαιός developer έχω νιώσει αρκετά καλά στο πετσί μου ότι ο όμορφα γραμμένος κώδικας όσο χάλια και αν είναι πάντα βοηθάει στην ανάγνωση του με αποτέλεσμα να εξυπηρετεί αρκετά τόσο στο debugging αυτού όσο και στο refactoring και extension. Αρκετές φορές ακόμα έχω δεχθεί ερώτηση για αυτό τόσο στον χώρο εργασίας μου όσο και κατά την διάρκεια των σεμιναρίων που κάνω. Αν και βαθιά πιστεύω ότι αυτό είναι κάτι το οποίο είναι θέμα που πρέπει να ορισθεί σε επίπεδο προσωπικό και ομάδας εργασίας εντούτοις υπάρχουν κάποιοι βασικοί κανόνες που θα μπορούσαμε να χρησιμοποιήσουμε καθώς είναι χρόνια δοκιμασμένοι και δεν χρειάζεται να ανακαλύψουμε ξανά τον τροχό από την αρχή. Φυσικά σε αυτούς μπορούμε να βάλουμε και τις προσωπικές μας πινελιές που μας εξυπηρετούν ή ταιριάζουν την ιδιοσυγκρασία μας. read more
  7. Καλημέρα Κανε την διαδικασία όπως έχει και όλα θα σου πανε καλα. Σχετικα με τα ερώτημα σου. Α. Δεν χρειάζεται να φτιάξεις βάση άλλη απλα με το restore θα στην φτιάξει αλλα θα πρέπει να κανείς move τα αρχεία σε κάποιο άλλο path. B. Απο την εμπειρία μου με το συγκεκριμένο ERP και να το αλλάξει και να μην το αλλάξεις δεν έχει πρόβλημα. Εξάλλου η αλλαγη σε αυτο δεν επηρεάζει την απόδοση. Γ. Η απάντηση είναι μόνο με with recovery θα γίνει αυτο καθως πρέπει η βάση σου να είναι σε κατάσταση λειτουργίας και αυτο μόνο εφόσον κάνει restore with recovery γίνεται. Δ. Προβλήματα πάντα μπορει να προκύψουν αλλά όχι απο αυτήν την διαδικασία.
  8. Αφορμή για αυτό το post ήταν δύο γεγονότα τα οποία μου συνέβησαν το τελευταίο διάστημα. Το ένα ήταν μια «διαμάχη» με έναν συνάδελφο σχετικά με το γεγονός ότι πλέον δεν υποστηρίζεται πλέον στον SQL Server 2012 η sp_dboption, και το άλλο είναι ένα προσωπικό μήνυμα που έλαβα από κάποιον άλλο συνάδελφο σχετικά με το αν θα πρέπει να χρησιμοποιείται το semicolon στο τέλος των εντολών της T-SQL. Δεν ξέρω αν το γνωρίζεται αλλά σε κάθε έκδοση του SQL Server που βγάζει η Microsoft μέσα στα books online υπάρχει ένα section το οποίο ονομάζεται Deprecated Features. Για τον SQL Server 2012 και για το Database Engine θα βρείτε αυτά στο link αυτό. Σε αυτό υπάρχει μια πλήρης λίστα αυτών που σε επόμενες εκδόσεις δεν θα υπάρχουν πλέον. περισσότερα
  9. Λυπάμαι που θα στο πω αλλά σε όλα αυτά από πίσω υπάρχει ένας SQl Server
  10. Πρόλογος Αυτό που με εξιτάρει περισσότερο στην δουλειά μου και στην ενασχόληση μου με τον SQL Server είναι να βρίσκω λύση σε προβλήματα, αλλά και σε ποιον δεν αρέσει αυτό; Το Πρόβλημα Σήμερα ένας συνάδελφος στην εταιρία που εργάζομαι έρχεται με το εξής ερώτημα-πρόβλημα «Έχω ένα πίνακα και έχω φτιάξει μια stored procedure η οποία περιέχει ένα business logic αρκετά σημαντικό και περίπλοκο με το οποίο κάνω insert στον συγκεκριμένο πίνακα. Θέλω να κάνω insert στο συγκεκριμένο πίνακα μόνο από την συγκεκριμένη stored procedure και μόνο πως μπορεί να γίνει αυτό;» Στην αρχή ξαφνιάστηκα καθώς ο συνάδελφος είναι εμπειρότατος και η ερώτηση του μου φάνηκε κάπως. Του απάντησα ότι αυτό είναι στο χέρι του καθώς αυτός γράφει τον κώδικα. Φυσικά η απάντηση μου δεν τον ικανοποίησε. Έτσι μετά από μια σύντομη συζήτηση κατάλαβα τι ακριβώς ήθελε να κάνει το οποίο τελικά ήταν: «Έχω ένα πίνακα και έχω φτιάξει μια stored procedure η οποία περιέχει ένα business logic αρκετά σημαντικό και περίπλοκο με το οποίο κάνω insert στον συγκεκριμένο πίνακα. Θέλω να κάνω insert στο συγκεκριμένο πίνακα μόνο από την συγκεκριμένη stored procedure και μόνο είτε από την εφαρμογή είτε από τον SSMS είτε από οπουδήποτε. Θέλω δηλαδή εκτός από να προστατέψω την ποιότητα των δεδομένων που θα μπαίνουν στον συγκεκριμένο πίνακα θέλω να προστατέψω και εμένα και τους άλλους developers καθώς στην καθημερινότητα μας φτιάχνουμε πολλές stored procedures και υπάρχει πάντα το ενδεχόμενο σε μια νέα που φτιάχνουμε να κάνουμε insert στον συγκεκριμένο πίνακα χωρίς να καλέσουμε την εν λόγο stored procedure με αποτέλεσμα να έχω λάθος στα δεδομένα στον πίνακα. Επίσης αυτό θέλω να μπορεί να γίνει ακόμα και για αυτούς που έχουν δικαιώματα sysadmin στον SQL Server. Πως μπορεί να γίνει αυτό;» περισσότερα
  11. Το Merge είναι από το δύσκολα σενάρια σε υλοποίηση καθώς το μεγάλο θέμα είναι αυτό που αντιμετώπισες. Η ιδανική λύση για αυτό είναι να έχεις composite primary key πχ στο πίνακα των τιμολογίων το κλειδί θα είναι ο κωδικός του καταστήματος και ο αριθμός του τιμολογίου. Υπάρχουν και άλλες λύσεις όπως όταν έχεις το primary key identity μπορείς να πεις για καθε εμπλεκόμενη replica το διάστημα από όπου θα παίρνει τιμές ή να έχεις uniqueidentifier αλλά δεν στο συνιστώ. Προσωπικά εφόσον έχω την δυνατότητα να πειράξω το σχήμα της βάση φτιάχνω composite primary keys.
  12. Εισαγωγή Για άλλη μια φορά σήμερα ευλογώ τον Θεό που μου έχει δώσει την δυνατότητα να κάνω αυτή την δουλειά καθώς μου δίνει την δυνατότητα σε τακτά χρονικά διαστήματα να μαθαίνω κάτι νέο. Αυτό που έμαθα σήμερα κατά την καθημερινή μου ενασχόληση με τον SQL Server θα ήθελα να το μοιραστώ μαζί σας και είμαι αρκετά χαρούμενος για αυτό καθώς το αγαπημένο μου προϊόν ο SQL Server μου χαρίζει αυτές τις συγκινήσεις. Η ανάγκη Ας έρθουμε όμως στο ζουμί. Σαν DBA ή DB Dev καθημερινά γράφεις queries. Αρκετές φορές μέχρι κάποια πάνε σφαίρα κάποια πάνε αργά και γενικά είσαι μέσα σε μια ατέρμονη διαδικασία τα αργά να τα κάνεις να πάνε γρήγορα και τα γρήγορα γρηγορότερα. περισσότερα
  13. Exploits for a recently revealed MySQL authentication bypass flaw are now in the wild, partly because the flaw is remarkably simple to exploit in order to gain root access to the database. The only mitigating factor appears to be that it depends on the C library that the MySQL database was built with. The bypass, assigned the vulnerability ID CVE-2012-2122, allows an attacker to gain root access by repeatedly trying to login with an incorrect password. Each attempt has a 1 in 256 chance of being given access. The exploits are mostly variations of looping through connecting to MySQL with a bad password around 300 to 512 times. The vulnerability, which was detailed in a posting by MariaDB security coordinator Sergei Golubchik, is due to a casting error when checking the results of comparing (with the memcmp function) the password given and the expected password. "Basically account password protection is as good as nonexistent", says Golubchik, adding "Any client will do, there's no need for a special libmysqlclient library". Vulnerable versions of MySQL and MariaDB are those compiled with libraries that return integers outside the -128 to 127 range for memcmp. According to Golubchik the gcc built in memcmp and BSD libc memcmp are safe, but the linux glibc sse-optimised memcmp is not safe. He also believes that official vendor builds of MySQL or MariaDB are not vulnerable, but that all versions, up to 5.1.61, 5.2.11, 5.3.5 and 5.5.22, are potentially vulnerable. Oracle fixed the problem in MySQL, bug id 64884, with MySQL 5.1.63 and 5.5.24, both of which were released over a month ago. The applied fix is a single line change; a similar patch is available for MariaDB source. Linux vendors are expected to be providing fixed versions of their MySQL builds soon. Calling the flaw "tragically comedic", security expert HD Moore has a posting in which he details where MySQL is vulnerable. So far, 64-bit versions of Ubuntu Linux (10.04, 10.10, 11.04, 11.10 and 12.04), OpenSuSE 12.1 64-bit, Fedora 16 64-bit and Arch Linux have been found to have vulnerable MySQL releases. Debian, RHEL, CentOS and Gentoo, among others, have been found not to be vulnerable. Moore reminds administrators that they should restrict network access to their MySQL databases to only systems that are secure and absolutely require it. Moore also noted that there was now a Metasploit module which used the vulnerability to retrieve all the server's passwords. Πηγή: http://www.h-online.com/open/news/item/Simple-authentication-bypass-for-MySQL-root-revealed-1614990.htmlhttp://www.h-online.com/open/news/item/Simple-authentication-bypass-for-MySQL-root-revealed-1614990.html
  14. Τελικά μάλλον το μέλλον του Kinect προδιαγράφεται λαμπρότερο από ότι θέλουμε να το εκλάβουμε στην Ελλάδα. Όλο και περισσότεροι το εστερνίζονται και τελικά μάλλον δεν έχουν άδικο. http://blogs.technet.com/b/next/archive/2012/06/11/the-world-of-coca-cola-with-kinect.aspx Στο παραπάνω link θα δείτε κάποια ωραία videos που η Cocal Cola έχει κάνει ώστε να παρουσιάσει την ιστορία της. Ζω για την στιγμή που θα δω πλήρης υποστήριξει του και στον SQL Server. Nα κάνω create table με Kinect και τι στο κόσμο...
  15. Καλησπέρα Εκτός από το roadmap, έχω έδω και καιρό μιλήσει για αυτό στο 7ο SQL Server Saturday Night το οποίο μπορείς να βρεις από εδω (http://www.sqlschool.gr/pages/SqlSaturdayNights.aspx). Το replication είναι κάτι το οποίο δουλεύει καλά. Ιδιαίτερα όμως το transactional replication χρειάζεται αξιοπιστία στην γραμμή και ταχύτητα. Θα έλεγα ότι καλύτερα να ήταν σε ξεχωριστή γραμμή αλλά αν αυτό δεν παίζει σαν σενάριο τότε καλό θα είναι να μην είναι αυτή υπερφορτωμένη. Προσωπικά έχω υλοποίησει αρκετές λύσεις replication με μεγάλο όγκο δεδομένων πάνω από ΤΒ. Δες το SQL Saturday Night και τα λέμε ξάνα. Φιλικά
  16. Τις τελευταίες ημέρες για ένα περίεργο λόγο συνάντησα αρκετές φορές την ανάγκη να πρέπει να εκτιμηθεί η δυνατότητα να γίνει compress μια database. Για το λόγο αυτό αποφάσισα να φτιάξω μια stored procedure που να κάνει όλα όσα ήθελα να γίνονται με την εκτέλεση της. Μετά από μερικές μέρες δουλειάς και αρκετές αλλαγές πάνω σε αυτή το τελικό αποτέλεσμα μπορείτε να το βρείτε εδώ. Όμως πριν αρχίσετε να την χρησιμοποιείται νομίζω ότι είναι σκόπιμο να διαβάσετε το documentation αυτής και τις δυνατότητες που παρέχει. Πριν όμως το κάνω αυτό θα πρέπει να επισημάνω ότι το database compression είναι ένα feature το οποίο εμφανίστηκε στον SQL Server 2008 Enterprise Edition άρα η stored procedure αυτή μπορεί να δουλέψει από αυτή την έκδοση και πάνω, δηλαδή 2008, 2008R2 και 2012. Επίσης ο χρήστης που θα την εκτελέσει θα πρέπει να έχει δικαιώματα sysadmin. περισσότερα
  17. Αν ψάχνετε να εκπαιδευτείτε στον SQL Server 2012 τότε μην περιμένετε άλλο πλέον έχουν ήδη βγει τα σεμινάρια για αυτόν και είμαι όλος χαρά να τα διδάξω και να σας πω τι έχω δει στο SQL Server 2012 τα τελευταία 2 χρόνια που από beta ασχολούμαι μαζί του Ποια είναι όμως αυτά τα σεμινάρια και ποίες εξετάσεις αντιστοιχούν σε αυτά: περισσότερα
  18. Εισαγωγή Αν και δεν είμαι αρκετά σίγουρος ότι όλοι έχουν καταλάβει ότι θα πρέπει να αποφεύγουν όπως ο διάολος το λιβάνι τα implicit conversions εντούτοις αυτό είναι κάτι γνωστό και πηγή δεινών αν αυτό γίνεται στην T-SQL. Υπάρχουν αρκετά άρθρα που το αναφέρουν αυτό και με αυτό το post θα συμπληρώσω και εγώ ακόμα ένα παράδειγμα με σκοπό μήπως και κάποιοι συνετιστούν και σταματήσουν να το κάνουν. Αυτό το post αποφάσισα να το γράψω μετά από ένα πραγματικό γεγονός που έγινε σε πραγματικό περιβάλλον εργασίας και το οποίο δημιουργούσε αρκετά προβλήματα. Για να γίνει κατανοητό αυτό ας έρθουμε να δούμε ένα παράδειγμα και για αυτό το λόγο ας έρθουμε να φτιάξουμε μια βάση με ένα πίνακα που θα παίξει το ρόλο του πειραματόζωου και θα είναι ένας πίνακας πελατών όπου η απόφαση που έχουμε είναι να υπάρχει το ΑΦΜ σαν σημείο αναφοράς για το record άρα και primary key. Σε αυτόν θα βάλουμε 10.000 rows. Όλα αυτά μπορούν να γίνουν με τα παρακάτω script περισσότερα
  19. Η Ερώτηση Αυτές τις ημέρες κατά την διάρκεια ενός σεμιναρίου που κάνω και αφορά το administration του SQL Server ένα συνάδελφος είχε μια ερώτηση και αυτή ήταν «Πώς μπορώ να δω το χώρο που καταναλώνουν από την buffer cache οι βάσεις που έχω σε ένα SQL Server instance;» Μια εύκολη στην απάντηση ερώτηση αλλά πάντα μου αρέσει να ζητώ από αυτόν που ρωτάει το λόγο για τον οποίο θέλει αυτό που ζητάει καθώς θέλω να αποκλείσω την πιθανότητα να ζητάει άλλα και να θέλει άλλα. Σε αυτή την περίπτωση ο συνάδελφος ήταν εξαιρετικά συνεπής και με συγκροτημένη σκέψη. Η απάντηση του ήταν η εξής: «Το ζητάω αυτό καθώς έχω ένα SQL Server instance το οποίο έχει αρκετές databases και θέλω να δω ποιες είναι αυτές που έχουν μεγάλες απαιτήσεις μνήμης ώστε να τις μεταφέρω σε κάποιο άλλο SQL Server instance ή να βάλω κάθε μία σε δικό της αν δω ότι είναι απαιτητικές πολύ, ώστε να βελτιωθεί η απόδοση όλων.» Εξαιρετική απάντηση!. Βέβαια αυτή η απάντηση είχε έρθει αφού πρώτα είχε γίνει εκτενείς αναφορά για την σχέση του SQL Server με την μνήμη και την buffer cache που αυτός έχει και τον τρόπο με τον οποίο ανεβοκατεβαίνουν οι σελίδες της κάθε database σε αυτή. Η ερώτηση απαντήθηκε αλλά επειδή δεν έγραψε το script του υποσχέθηκα ότι θα του το κάνω post ώστε να το έχει αυτός και όλοι όσοι θα ήθελαν να δουν κάτι παρόμοιο. περισσότερα
  20. Εισαγωγή Πάρα πολλά νέα χαρακτηριστικά έχουν μπει στον SQL Server 2012. Όπως έχω πει και σε προηγούμενα post αλλά και στην πρόσφατη παρουσίαση μου στο 39o Autoexec event κάποια είναι δημοφιλή και ακούγονται συχνά όπως τα AlwaysOn Availability Groups, Auditing Enhancements, Security Enhancements κλπ. Δικαίως και είναι δημοφιλή. Υπάρχουν όμως τόσα άλλα που δεν ακούγονται, κακώς κατά την γνώμη μου. Σε μερικά μάλιστα δεν έχει δοθεί η δέουσα προσοχή. Ομολογώ ότι και εγώ σε κάποια δεν είχα δώσει και τόσο μεγάλη σημασία μέχρι που δύο γεγονότα ήρθαν να με κάνουν να ασχοληθώ μαζί τους σε βάθος. Το ένα ήταν είναι η ενασχόληση μου με το νέο σεμινάριο που υπάρχει για την T-SQL στον SQL Server 2012 με τίτλο «Querying SQL Server 2012» και κωδικό 10774 το οποίο πρόσφατα είχα την δυνατότητα να διδάξω, και το άλλο ότι αγόρασα το νέο βιβλίο του Itzik Ben-Gan με τίτλο «Microsoft SQL Server 2012 High-Performance T-SQL Using Window Functions». περισσότερα
  21. To πρώτο link είναι εξαιρετικό. 454 σελίδες σαν βιβλιο
  22. Εισαγωγή Ξεκινώντας να γράψω το post αυτό ο προσανατολισμός μου ήταν καθαρά τεχνικός στην πορεία όμως άρχισε να μου αρέσει η ιδέα να πάρει την μορφή αυτή. Μου βγήκε αυθόρμητα γιατί πέρα από το τεχνικό του μέρος προσπαθώ να σκιαγραφήσω το άνθρωπο που έρχεται να γράψει ένα query για να καλύψει τις ανάγκες που αντιμετωπίζει στην καθημερινότητα του. Πριν λίγες μέρες μου ήρθε ένα ερώτημα από ένα συνάδελφο που ζήταγε να αντλήσει μια πληροφορία από ένα πίνακα με πολλές χιλιάδες έγγραφές. Βασικά αυτό που ζητούσε ήταν απλά πάρει την πληροφορία με οποιοδήποτε τρόπο. Το πρώτο που τον ρώτησα ήταν αν έχει σκοπό αυτό να το κάνει επαναλαμβανόμενα αλλά η απάντηση του δεν ήταν αρκετά σαφής και συνήθως σε τέτοιες περιπτώσεις η εμπειρία έχει δείξει το αυτό θα επαναλαμβάνεται οπότε καλό είναι να βρεθεί μια λύση τέτοια που όταν εκτελείται να είναι γρήγορη και με όσο το δυνατόν την μικρότερη δυνατή κατανάλωση πόρων. Αλήθεια είναι εύκολο να γίνει κάτι τέτοιο; Μήπως είναι προτιμότερο να είναι γρήγορο ώστε να υπάρχει το μέγιστο user experience άσχετα από την κατανάλωση πόρων; Μήπως πρέπει να βρω τον τρόπο αυτό που θα είναι απλός κατανοητός και εύκολα συντηρήσιμος; Μήπως κάτι άλλο; Ποιό είναι αυτό; Ερωτήματα που οι περισσότεροι DB people (Admins & Devs) κάθε φορά που γράφουν κάτι έχουν στο πίσω μέρος του μυαλού τους. Ερωτήματα που είναι βασανιστικά καθώς το ζητούμενο είναι ένα, όλα θα πρέπει να τρέχουν ιδανικά και να δίνουν τον σωστό αποτέλεσμα. Αλλά για στάσου πως είσαι σίγουρος ότι τους βασανίζουν αυτά τα ερωτήματα; Για να πω την αλήθεια έχω αμφιβολίες. Ας κάνουμε μερικά δευτερόλεπτα μια παύση και με το χέρι στην καρδιά, τίμια ας δώσουμε μια απάντηση σε όλα αυτά. Μια απάντηση που δεν χρειάζεται να γνωρίζει κανείς άλλος παρά μόνο εμείς. Κρατήστε την απάντηση αυτή χωρίς να κάνετε καμία αυτοκριτική αλλά απλά σαν μια διαπίστωση. περισσότερα
  23. Εισαγωγή Το τελευταίο διάστημα στα μαθήματα και τις παρουσιάσεις που έχω κάνει όλο και περισσότεροι έρχονται και με ρωτούν τι πρέπει να κάνουν για το deadlock καθώς όπως μου λένε έχουν όλο και περισσότερες εμφανίσεις του φαινομένου αυτού. Πάντα απαντώ σε όλους αυτά που θα ακολουθήσουν σε αυτό το post αλλά μέχρι τώρα δεν τα είχα γράψει και νομίζω ότι πλέον είναι καιρός να γίνει αυτό. περισσότερα
  24. Είναι γνωστό ότι οι λεπτομέρειες κάνουν τον πρωταθλητή και σε αυτό δεν νομίζω ότι έχει κάνεις αντίρρηση. Ένα tip το οποίο μπορώ να δώσω σήμερα για τον SQL Server μπορεί να είναι μια μικρή λεπτομέρεια που όμως μπορεί να εξακοντίσει το performance του SQL Server στα ουράνια. Ένα από τα advanced options του SQL Server είναι το Network Packet Size το οποίο by default είναι στα 4096 bytes. Εάν έχω ένα instance που έχει μεγάλο όγκο από bulk operations ή μεταφέρει μεγάλο όγκο δεδομένων, και αν υποστηρίζονται και είναι ενεργοποιημένα τα jumbo frames στην κάρτα του server και στο δίκτυο, και δεν έχω αλλάξει την τιμή σε 8192 τότε κακό του κεφαλιού μου!!!
×
×
  • Create New...