Jump to content
  • entries
    292
  • comments
    368
  • views
    59926

About this blog

News about Microsoft SQL Server and other databases...

Entries in this blog

Free “SQL Server Tacklebox” eBook

Free “SQL Server Tacklebox” eBook Download the eBook for expert advice on tackling SQL Server issues and try out SQL Response to be alerted to problems on your SQL Servers.

antonch

antonch

Free “How to Become an Exceptional DBA (2nd ed.)” eBook

After a very popular first article on tools for the DBA, David Bird is back with a list of some utilities you might find very handy for working with SQL Server. Free “How to Become an Exceptional DBA (2nd ed.)” eBook Download your copy and a free trial of Red Gate SQL Backup for robust SQL Server database backups.

antonch

antonch

fnGreekEnglishLikeString Function

Σήμερα είχα μια ωραία ερώτηση από μια αγαπητή συνάδελφο σχετικά με τον τελεστή LIKE. Η ερώτηση της ήταν: «Πως μπορώ να έχω την δυνατότητα με τον τελεστή LIKE να έχω όλα τα records που είναι περασμένα μέσα στην βάση μου σε ένα πίνακα ακόμα και στην περίπτωση που έχουν περαστεί κάποιοι χαρακτήρες με ελληνικά και κάποιοι με αγγλικά;» Στην ουσία αυτό που ήθελε ήταν αν έχω ένα πεδίο σε ένα πίνακα μου και έχω περάσει κάποια records που σε αυτό να έχω τις τιμές Antonis, Αντonis, Αntώνης εάν δώσω

antonch

antonch

Export σε ISO 8859-7 μέσω SSIS

Σήμερα ένας αγαπητός φίλος και συνάδελφος μου έστειλε mail και με ρωτούσε Αντώνη καλησπέρα, Πως μπορώ να κάνω convert απο nvarchar se iso-8859-7 μέσω SSIS για να το κάνω export σε Flatfile? Η απάντηση είναι η εξής Tην στιγμή που ορίζω τον connection manager στο παραγόμενο flat file όριζω στο Code Page του αρχείου την τιμή 28597 (ISO 8859-7 Greek) Υπάρχει βέβαια η περίπτωση σε πεδία τα οποία είναι ntext ή nvarchar(max) να μου γκρινίαζει και να μου λέει ότι δεν μπορεί

antonch

antonch

Export data to Excel File using pure T-SQL (New Version)

Πριν από τρία χρόνια είχα γράψει ένα post με αυτό το θέμα. Το συγκεκριμένο post είναι από τα δημοφιλή θα έλεγα και έχει αρκετούς, από όσο γνωρίζω που έχουν χρησιμοποιήσει την συγκεκριμένη πρόταση.Παρόλα αυτά όμως το παλαιό post χρειάζεται ένα refactoring καθώς από τότε που γράφτηκε μέχρι σήμερα έχουν μεσολαβήσει αρκετές αλλαγές που σε αρκετές περιπτώσεις δεν θα δουλέψει. Για αυτό σε αυτό δίνω μια νέα βελτιωμένη εκδοχή. more

antonch

antonch

Export data to Excel File using pure T-SQL

O SQL Server έχει αρκετά εργαλεία για να κάνεις export & import data. Από τα απλά T-SQL BULK INSET ή το κλασσικό BCP μέχρι τα DTS (Data Transformation Services)  και σήμερα τα SSIS ( SQL Server Integration Services). Όμως υπάρχουν αρκετές περιπτώσεις που δεν θα ήθελες να εμπλακείς με αυτά. Ένα σενάριο το οποίο κάποια στιγμή σε ένα project μου έτυχε ήταν η απαίτηση να πατάει ο χρήστης ένα κουμπί και να γίνονται τα δεδομένα export σε Excel αρχείο. Για να δούμε λοιπόν την υλοποίηση το

antonch

antonch

Execute Query keyboards shortcuts for SSMS

Άλλοι περισσότερο άλλοι λιγότερο χρησιμοποιούμε το SQL Server Management Studio στην καθημερινότητα μας. Μέσα σε αυτή εκτελούμε και αρκετά queries είτε σε πίνακες της βάσης μας είτε σε metadata tables. Το κάνουμε σχεδόν μηχανικά καθημερινά έτσι δεν είναι; Όπως επίσης είναι γνωστό ότι μπορούμε να δούμε τα αποτελέσματα αυτών σε διαφορετικές μορφές όπως grid, text, file. περισσότερα

antonch

antonch

Estimate Database Compression Stored Procedure (sp_estimate_db_compression)

Τις τελευταίες ημέρες για ένα περίεργο λόγο συνάντησα αρκετές φορές την ανάγκη να πρέπει να εκτιμηθεί η δυνατότητα να γίνει compress μια database. Για το λόγο αυτό αποφάσισα να φτιάξω μια stored procedure που να κάνει όλα όσα ήθελα να γίνονται με την εκτέλεση της. Μετά από μερικές μέρες δουλειάς και αρκετές αλλαγές πάνω σε αυτή το τελικό αποτέλεσμα μπορείτε να το βρείτε εδώ. Όμως πριν αρχίσετε να την χρησιμοποιείται νομίζω ότι είναι σκόπιμο να διαβάσετε το documentation αυτής και τις δυνατότη

antonch

antonch

Error 1205 or a deadlock occurred, how to deal with it?

Εισαγωγή Το τελευταίο διάστημα στα μαθήματα και τις παρουσιάσεις που έχω κάνει όλο και περισσότεροι έρχονται και με ρωτούν τι πρέπει να κάνουν για το deadlock καθώς όπως μου λένε έχουν όλο και περισσότερες εμφανίσεις του φαινομένου αυτού. Πάντα απαντώ σε όλους αυτά που θα ακολουθήσουν σε αυτό το post αλλά μέχρι τώρα δεν τα είχα γράψει και νομίζω ότι πλέον είναι καιρός να γίνει αυτό. περισσότερα

antonch

antonch

Dynamic SQL ή μήπως μπορώ και αλλιώς;

Σαν developers αρκετές φορές ερχόμαστε αντιμέτωποι με προβλήματα που πρέπει να λύσουμε μέσα σε σύντομο χρονικό διάστημα. Τις περισσότερες φορές η λύση που επιλέγουμε για να το λύσουμε είναι αυτή που ξέρουμε καλύτερα, την έχουν χρησιμοποιήσει αρκετές φορές, την εμπιστευόμαστε περισσότερο ή αυτή ξέρουμε μόνο. Κάποιες φορές αυτή είναι ιδανική, καλή, μέτρια ή άστα να πάνε… Ας έρθουμε όμως στο προκείμενο… Πριν μερικές μέρες είχα να αντιμετωπίσω ένα θέμα το οποίο πάντα όταν ανακύπτει προκαλεί

antonch

antonch

Do you have "Optimize for Ad Hoc Workloads" on SQL Server 2008 & R2 instances?

Πριν από ένα μήνα είχα αναρτήσει μια δημοσκόπηση στο site του SqlSchool.gr με την εξής ερώτηση: Έχετε ενεργοποιήσει το "Optimize for Ad Hoc Workloads" στα instances του SQL Server 2008 & R2 που έχετε; Η συγκεκριμένη δημοσκόπηση έγινε με αφορμή κάποιες συζητήσεις που είχα με κάποιους συναδέλφους σχετικά με θέματα performance πάνω στον SQL Server. Αν και γενικά έχουν γραφτεί στο παρελθόν αρκετά για το συγκεκριμένο θέμα πίστευα ότι το συγκεκριμένο ήταν αρκετά γνωστό. Από τις συζη

antonch

antonch

Do not uncheck “Prevent saving changes that require table re-creation” option on SSMS

Οι περισσότεροι από εσάς όταν θέλετε να αλλάξετε την δομή ενός πίνακα σε μια βάση χρησιμοποιείτε το SQL Server Management Studio (SSMS) όπου με δεξί κλικ στον πίνακα κάνετε design και αφού κάνετε την αλλαγή που θέλετε πατάτε το save button από την toolbar.   Είμαι σίγουρος έχετε κάνει πολλά πράγματα έτσι και έχετε μείνει απόλυτα ευχαριστημένοι. Θεωρώ επίσης βέβαιο ότι κάποια στιγμή που κάτι πάλι θέλατε να αλλάξετε αυτό δεν μπορούσε να γίνει καθώς ο SSMS σας εμφάνισε ένα παράθυρο όπως το παρακ

antonch

antonch

Do not panic when an error occurred, just learn to read the logs

Δεν ξέρω αν σας αρέσει να ανεβαίνει η αδρεναλίνη σας ύψη αλλά προσωπικά μου αρέσει, αρκεί να είναι όπως αυτή η περίπτωση :-) Είμαι λοιπόν από το πρωί πάνω σε παραγωγικό server που έχει κομβικό Internet-ικο τμήμα του οργανισμού που εργάζομαι. Παλεύω να κάνω partitioning το πίνακα ημερολογίου συναλλαγών και είναι τεράστιος… Πρέπει να κάνω απλές και σίγουρες κινήσεις που δεν θα επηρεάσουν σε καμία περίπτωση την απόδοση του συστήματος.   http://www.sqlschool.gr/blog/do-not-panic-when-an-error-occ

antonch

antonch

Do not forget to update index statistics

Είναι πρωινό της 27/10/2014. Κάνει κρύο για τα δικά μου δεδομένα και είμαι στο γραφείο στην δουλειά μου. Χτυπάει το τηλέφωνο και είναι ο Σοφοκλής.   http://www.sqlschool.gr/blog/do-not-forget-to-update-index-statistics-1005.aspx

antonch

antonch

Designing and Implementing Time Dimensions

Είναι σπάνιο το φαινόμενο σε μια λύση BI και σε ένα DW να μην ζητείται ανάλυση και reporting των δεδομένων με βάση κάποια χρονική περίοδο. Το σύνηθες είναι να έχω τουλάχιστον μία διάσταση χρόνου. Για το λόγο αυτό σε αυτό το post θα δούμε πως μπορούμε να σχεδιάσουμε και υλοποιήσουμε σε μια BI λύση μια τέτοια διάσταση. Για αρχή θα ξεκινήσουμε να δούμε την λογική με την οποία θα σχεδιάσουμε ένα time dimension. Περισσότερα

antonch

antonch

Design, Implementing and Discovery Data Quality before importing them on DW using SSIS Data Profiling Task.

Αφού έχουμε στύψει αρκετά το μυαλό μας μέχρι τώρα και έχουμε καταφέρει να σχεδιάσουμε και να υλοποιήσουμε το DW μας και το αίσθημα της ικανοποίησης μας έχει κυριεύσει, θα πρέπει να κάνουμε το επόμενο μεγάλο βήμα πίστης που δεν είναι άλλο από το γεμίσουμε αυτό με δεδομένα. Είμαστε στο σημείο που πρέπει να σχεδιάσουμε και να υλοποιήσουμε μια ή περισσότερες διαδικασίες ETL (Extract-Transform-Load). Όλες αυτές οι διαδικασίες θα πρέπει να αποτελέσουν ένα Data Integration System το οποίο θα πρέπει ν

antonch

antonch

DENALI CPT1 Available

Επιτέλους η στιγμή την οποία περίμενα εδώ και 1 χρόνο έφτασε. Μπορώ να σπάσω την σιωπή μου και να ανακοινώσω ότι πλέον είναι διαθέσιμη σε όλους η νέα έκδοση του SQL Server την οποία μπορείτε να βρείτε στο παρακάτω link http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6a04f16f-f6be-4f92-9c92-f7e5677d91f9 Πολλά έχουν αλλάξει, ακόμα περισσότερα έχουν προσθεθεί. Για όλα αυτά όμως θα μου δωθεί η ευκαιρία να σας μιλήσω σε posts που θα ακολουθήσουν.

antonch

antonch

Deal with Transaction Log Virtual Log Files to improve db performace, recovery time, replication and db mirroring performance (SQL Saturday Night #15)

Οι περισσότεροι είστε σε κάποιον παραθαλάσσιο μέρος και καλά κάνετε. Παρόλα αυτά όμως τα SQL Saturday Nights ακόμα δεν έχουν τελειώσει, απλά αντί να σας βάζω σε διαδικασίες να τα παρακολουθήσετε live αποφάσισα να φτιάξω ένα απόψε καθώς θέλω να αναδείξω ένα θέμα το οποίο οι περισσότεροι δεν γνωρίζετε ή το γνωρίζετε λίγο ή ακόμα και για αυτούς που το γνωρίζουν δεν είναι κακό να το ξαναδούν. Αφορά τον αριθμό των VLFs (Virtual Log Files) που έχει ένα transaction log σε μία database στον SQL Serve

antonch

antonch

DBCC OPTIMIZER_WHATIF

Εισαγωγή Για άλλη μια φορά σήμερα ευλογώ τον Θεό που μου έχει δώσει την δυνατότητα να κάνω αυτή την δουλειά καθώς μου δίνει την δυνατότητα σε τακτά χρονικά διαστήματα να μαθαίνω κάτι νέο. Αυτό που έμαθα σήμερα κατά την καθημερινή μου ενασχόληση με τον SQL Server θα ήθελα να το μοιραστώ μαζί σας και είμαι  αρκετά χαρούμενος για αυτό καθώς το αγαπημένο μου προϊόν ο SQL Server μου χαρίζει αυτές τις συγκινήσεις.   Η ανάγκη Ας έρθουμε όμως στο ζουμί. Σαν DBA ή DB Dev καθημερινά γράφεις qu

antonch

antonch

DBCC LOGINFO

Για ακόμα μια φορά θα πρέπει να ασχοληθούμε με το transaction log. Καθημερινά αντιμετωπίζω περιστατικά τα οποία μου δείχνουν ότι υπάρχει θέμα κατανόησης με την αξία, την λειτουργία αλλά και την χρήση του transaction log. Η βασική ερώτηση που μου έχει τεθεί αρκετές φορές και έχω γράφει αρκετά άρθρα για αυτή είναι γνωστή πλέον και αφορά το μέγεθος του transaction log file. Αν έχετε έρθει για πρώτη φορά στο blog αυτό μια απλή αναζήτηση εδώ θα σας φέρει αρκετά άρθρα για το θέμα αυτό. Αλλά αν ψάξετε

antonch

antonch

DBCC IND

Αν και η συγκεκριμένη εντολή είναι ευρέως γνωστή και σίγουρα θα την έχετε βρει σε διάφορα sites εντούτοις θα γράψω και εγώ για αυτή καθώς θεωρώ ότι είναι μια σημαντική εντολή αν και είναι undocumented. Φυσικά μπορούμε με ασφάλεια να την χρησιμοποιήσουμε σε παραγωγικά συστήματα χωρίς φόβο και πάθος. Με αυτή μπορούμε να δούμε αναλυτικές πληροφορίες για τους indexes σε ένα συγκεκριμένο object ανά σελίδα. Η σύνταξη της εντολής είναι η παρακάτω DBCC IND ( {‘dbname’|dbid} , {‘objectname’

antonch

antonch

DBCC EXTENTINFO – Another undocumented/documented useful dbcc command

Αρκετές φορές έχω αναφέρει κατά την διάρκεια των μαθημάτων και των παρουσιάσεων που κάνω για την αρχιτεκτονική μιας βάσης, ότι τα data files χωρίζονται σε σελίδες των 8K, κάθε 8 τέτοιες σελίδες αποτελούν ένα extent και ότι υπάρχουν δύο είδη extent τα uniform και τα mixed. Uniform είναι αυτά που οι 8 σελίδες τους ανήκουν σε ένα object πχ στον πίνακα των πελατών, ενώ mixed είναι αυτά που οι 8 σελίδες τους ανήκουν σε διαφορετικά. Επανειλημμένα έχω αναφέρει ότι σε κάθε πίνακα οι πρώτες 8

antonch

antonch

Day Tip: PAGEIOLATCH

Το PAGEIOLATCH wait type δείχνει το χρόνο που χρειάστηκε για να διαβαστεί μια σελίδα από το δίσκο και να μπει στην μνήμη (buffer cache)

antonch

antonch

Database design and architecture by Paul Nielsen

Χρόνια Πολλά σε όλους! Εύχομαι ο νέος χρόνος να φέρει υγεία, αγάπη και ευτυχία σε εσάς και τις οικογένειες σας. Αυτές τι μέρες βρήκα την ευκαιρία να διαβάσω αρκετά νέα βιβλία τα οποία είχα προμηθευτεί επί τούτου. Μέσα σε όλα αυτά ξεχώρισα τo παρακάτω εισαγωγικό σημειώμα που apriory με εκφράζει απόλυτα. Με το που το διάβασα πετάχθηκα από το καναπέ μου και αναφώνησα ΠΕΣΤΑ ΧΡΥΣΟΣΤΟΜΕ. Χαίρομαι ιδιαίτερα όταν αυτά που και εγώ πιστεύω και διδάσκω είναι σύμφωνα με τα λεγόμενα ανθρώπων που είνα

antonch

antonch

×
×
  • Create New...