search

searching on site content

1 

Article - 17 Nov 2015

List all DEFAULT Constraints in your database

Ακόμα ένα χρήσιμο metadata query για όσους θέλουν να έχουν συγκεντρωτική πληροφορία αυτή φορά για τα default constraints που έχουν στην βάση τους.


Article - 16 Nov 2015

List all IDENTITY Columns in your database

Συνεχίζοντας από το τελευταίο μου άρθρο σήμερα θα σας παρουσιάσω ακόμα ένα metadata query με το οποίο θα μπορώ να γνωρίζω τα tables που έχουν IDENTITY column, το data type που έχουν αυτές οι columns όπως επίσης από που ξεκινάνε (seed) πως μεγαλώνει η τιμή του (increment) και ποια είναι η τρέχουσα τιμή του.


Article - 15 Nov 2015

List All Primary Keys and Foreign Keys in your database

Δεν είναι λίγες οι φορές που θέλεις να μάθεις πράγματα για το database schema σε μια database που είτε είχες φτιάξει στο παρελθόν είτε είναι μια database που στην έχουν φέρει να την διαχειριστείς και από documentation πάσχει.Για όλους τους παραπάνω λόγους θα πρέπει να ψάξεις, αλλά πρέπει να ψάξεις χωρίς να κουραστείς και το να ψάχνεις με το γραφικό περιβάλλον του SSMS είναι κουραστικό οπότε πρέπει να καταφύγεις σε metadata queries.


Article - 25 Oct 2015

Get All tables row count without using Count(*) function

Η δύναμη της συνήθειας είναι το μεγαλύτερο ναρκωτικό του μυαλού και δεν το αφήνει να σκεφτεί αποδοτικά. Αλήθεια πόσες φορές κάνουμε μηχανικά κάποια πράγματα επειδή τα έχουμε συνηθίσει στα τόσα χρόνια που κάνουμε αυτή την δουλειά ;


Article - 15 Oct 2015

SQL Server 2016 New features - The sys.dm_exec_function_stats DMV

Τα User Defined Functions (UDF) είναι γνωστά στους περισσότερους. Η χρήση τους είναι μεγάλη αλλά αρκετές φορές χρησιμοποιούνται λάθος κυρίως λόγο της άγνοιας που υπάρχει γύρω από την εκτέλεση ενός UDF και ιδιαίτερα όταν αυτό εμπλέκεται μέσα σε ένα query.


Article - 14 Oct 2015

SQL Server 2016 New features - The sys.dm_exec_session_wait_stats DMV

Καθημερινά ένας DBA ή DB developer έχει να αντιμετωπίσει αρκετούς αστάθμητους τις περισσότερες φορές παράγοντες που επηρεάζουν το performance. Πιστέψτε με ότι αυτό είναι μια δουλεία που απαιτεί σχολαστικότητα γνώση της αρχιτεκτονικής τόσο του SQL Server όσο και της database. Για να κάνεις αυτή την δουλεία θα πρέπει να έχεις μελετήσει αρκετά και να έχεις κάνει αρκετή πρακτική εξάσκηση για την απόκτηση εμπειρίας.


Article - 14 Sep 2015

Monitor Connection Pooling as SQL Server DBA

Το connection pooling είναι μια cache από database connections που σκοπό έχει αυτά που είναι ελεύθερα στην cache αυτή να μπορούν να επαναχρησιμοποιηθούν κάθε φορά που κάποιος ζητάει να κάνει connect στην database.Η χρησιμότητα του connection pooling είναι αρκετά σημαντική στην εκτέλεση διαδικασιών πάνω στην database από το application καθώς με αυτό τον τρόπο γίνεται αφενός γρηγορότερη επικοινωνία αφετέρου καταναλώνονται λιγότεροι πόροι.


Article - 20 Mar 2015

How to deal with migration or instance upgrade nightmares

Κάθε φορά που στο μυαλό σου έρχεται η σκέψη να κάνεις upgrade ένα υπάρχον SQL Server instance ή κάποιες databases σε επόμενη έκδοση τα αισθήματα σου είναι ανάμικτα. Από την μια λες πρέπει να γίνει καθώς θα πάω σε κάτι νέο με περισσότερα χαρακτηριστικά και δυνατότητες και έτσι θα είμαι σε θέση να παρέχω καλύτερες υπηρεσίες στους χρήστες μου. Από την άλλη αναρωτιέσαι αν αυτό θα σου δημιουργήσει προβλήματα καθώς μπορεί κάποια πράγματα μπορεί να μην δουλέψουν γιατί μπορεί να μην υπάρχει συμβατότητα καθώς κάτι μπορεί να μην υποστηρίζεται στην νέα έκδοση. Κάπως έτσι ξεκινάει ο εφιάλτης. Αλλά για μια στιγμή μήπως τελικά ο εφιάλτης είναι πόνημα φαντασίας;


Article - 21 Jan 2015

Create a db_executor database role

Επειδή το security στη database είναι αρκετά σημαντικό και πραγματικά δεν ξέρω γιατί οι περισσότεροι δεν δίνουν την πρέπουσα σημασία σε αυτό το σύντομο post θα σας δώσω ένα tip του οποίου η εφαρμογή ξεπερνάει το 99% των περιπτώσεων.


Article - 04 Dec 2014

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

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


Article - 21 Nov 2014

What is Semi join and Anti join?

Στα μάθηματα μου συχνά αναφέρω (ιδιαίτερα όμως όταν κάνω μάθημα σχετικό με τα joins) ότι εκτός από τα γνωστά inner, full, cross, self και left / right outer joins υπάρχουν και τα semi joins και anti-joins. Η πρώτη αντίδραση από το ακροατήριο μου είναι αυτή που μπορεί να έχει κάποιος όταν το χτυπάει το ρεύμα. Το καταλαβαίνω αμέσως από το γεγονός ότι ξαφνικά αποκτώ το 110% της προσοχής τους.


Article - 18 Jun 2014

Database Design Counts

Δεν είναι σπάνιο το φαινόμενο να πέφτω πάνω σε databases που έχουν σχεδιαστεί στην κυριολεξία στο πόδι. Σε πολλές από αυτές, άλλοτε εύκολα, άλλοτε  με σχετικά μη επώδυνο τρόπο,  κατάφερα να αλλάξω τον σχεδιασμό τους. Υπάρχουν όμως  αρκετές που αυτό δεν ήταν εφικτό. Το μήνυμα που θέλω να περάσω μέσα από το post αυτό είναι ότι πρέπει να επενδύουμε χρόνο στον σχεδιασμό της database, ακόμα και αν γνωρίζουμε ότι δεν πρόκειται να έχουμε μεγάλο όγκο δεδομένων, καθώς έτσι θα δημιουργήσουμε μια συνήθεια που δύσκολα θα κοπεί με αποτέλεσμα να έχουμε σωστά σχεδιασμένες databases.


Article - 04 Jun 2014

DBCC CHECKIDENT - Manually set a new current identity value for the identity column

Δεν είναι σπάνιο το να έχεις ένα identity field μέσα σε ένα πίνακα. Κάποια στιγμή πιθανότατα θέλεις να σβήσεις όλα τα δεδομένα του πίνακα και όταν αρχίσεις να γεμίζεις ξανά τον πίνακα θέλεις το identity field να ξεκινάει από την αρχή


Article - 28 May 2014

PARSENAME T-SQL Function

Σαν DBA αλλά και DB Developer έχεις την ανάγκη να διαβάσεις metadata για να κάνεις την δουλειά σου. Αρκετές είναι οι φορές που τo όνομα του object που παίρνεις είναι full qualified name δηλαδή περιέχει server, database, schema, και φυσικά το όνομα του και ανά περίπτωση θέλεις να πάρεις κάποιο από αυτά. Μην ψάχνεις να δεις πως θα τα κάνεις…


Article - 23 Mar 2014

Understanding Index External Fragmentation - Part II (The explanation)

Πριν μερικές μέρες έγραψα το πρώτο μέρος για το συγκεκριμένο θέμα στο οποίο έδειξα όλη την περιπτωσιολογία πάνω σε αυτό. Σήμερα θα σας εξηγήσω όσο απλούστερα γίνεται τι κρύβεται πίσω από την κουρτίνα.


Article - 19 Mar 2014

Understanding Index External Fragmentation - Part I (The cases)

Είμαι σίγουρος ότι έχετε ακούσει ουκ ολίγες φορές ότι μια από τις αιτίες που μπορεί να μειώνει την απόδοση των queries μας σε μια database είναι το index fragmentation (εφόσον βέβαια έχουμε σωστούς indexes και σωστά στατιστικά για αυτούς και φυσικά έχουμε γράψει queries που έχουν where clause) και ότι τo χειρότερο είναι το external fragmentation.


Article - 12 Feb 2014

How to find CPU expensive queries

Πριν από πολλά χρόνια είχα γράψει ένα σχετικό post με μια stored procedure. Με τα χρόνια αυτό άλλαζε καθώς οι ανάγκες και οι δυνατότητες άλλαζαν. Απλά σήμερα έτυχε να το χρησιμοποιήσω πάλι και λέω δε το μοιράζομαι με τον κόσμο όλο και κάποιος θα το χρειαστεί.


Article - 11 Feb 2014

Filtering data on joins or to where clause?

Ένα ερώτημα που όλους κάποια στιγμή έχει απασχολήσει και έχει δημιουργήσει ενδιαφέρουσες συζητήσεις είναι το που είναι καλύτερο να βάλω τα φίλτρα μου σε ένα join query, να τα βάλω στο where όπως θα έκανα ή να τα βάλω στο join;


Article - 02 Jan 2014

SQL Server Services Ports that each DBA and Developer must know

Καλή Χρονιά με υγεία πάντα σε όλες και όλους. Πρώτο post για την χρονιά αυτή και θα ξεκινήσω με κάτι απλό που πρέπει να γνωρίζουν όλοι, είτε είναι DBAs είτε είναι Developers. Ο SQL Server είναι στην ουσία ένα εργοστάσιο από services. Κάθε ένα από αυτά όμως έχει την δικό του "ταχυδρομικό κωδικό". Αυτός δεν είναι άλλος από την πόρτα TCP/UDP έτσι σας δίνω μια λίστα αυτών με τις πόρτες που το κάθε ένα χρησιμοποιεί και είναι απαραίτητο να γνωρίζετε.


Article - 01 Mar 2013

Nested CTE – A Simple Sample

Ένα απλό παράδειγμα για το πως μπορώ να έχω nested CTEs


Article - 08 Feb 2013

Database Lifecycle Management (DLM)

Για όλους εμάς που είμαστε data geeks και οι databases είναι τρόπος έκφρασης και ζωής αλλά και κάτι που όλοι χρησιμοποιούν είτε τους αρέσει είτε όχι έχουμε βασανιστεί πάμπολες φορές για το πώς να μεταφέρουμε αλλαγές από το development στο production αλλά και γενικότερα να έχουμε ένα db lifecycle management.


Article - 24 Apr 2010

The One and Only…

Είμαι φανατικός αναγνώστης του, έχω διαβάσει σχεδόν όλα του τα βιβλία όχι μια αλλά πολλές φορές, τα οποία κοσμούν την βιβλιοθήκη μου. Προσπαθώ να βρω τα άρθρα του όπου και αν γράφει. Δεν υπάρχει περίπτωση να μην τον αναφέρω μέσα στην τάξη όταν κάνω μάθημα. Αλλά ποτέ μέχρι σήμερα δεν τον είχα δει να κάνει μάθημα. Γενικά δεν κάνει πολλές εμφανίσεις που να μπορώ να βρώ στο web.


Article - 20 Aug 2015

The Database Developer Role

Πρόσφατα συμμετείχα σε μια συζήτηση στην οποία αναφέρθηκε ο ρόλος του DB Developer. Μέσα από αυτή την συζήτηση διαπίστωσα ότι οι απόψεις για το τι είναι και κυρίως τι κάνει ένας DB Developer δεν είναι ξεκάθαρες. Θεωρώντας ότι είναι χρήσιμο να γνωρίζουμε τι είναι ο DB Developer ρόλος και πως αυτός τοποθετείτε στην αγορά εργασίας (ζήτηση/αμοιβή) τόσο στην χώρα μας όσο και στο εξωτερικό, αποφάσισα να γράψω το συγκεκριμένο άρθρο.  


Video - 11 Mar 2013

Parameter Sniffing – What is and How to deal with it

Ένα από τα θέματα που σε κάποιες περιπτώσεις μας έχει ταλαιπωρήσει ιδιαίτερα αν δεν το γνωρίζουμε είναι το parameter sniffing. Έχω κατά καιρούς διαβάσει και δει διάφορες προτάσεις για την αντιμετώπιση του. Επειδή όμως δεν ήθελα απλά να το περιγράψω σε ένα ίσως μακροσκελές κείμενο αποφάσισα να το κάνω ένα web cast που ζωντανά δείχνω όλο το θέμα χωρίς slides αλλά με παραδείγματα. Enjoy it.


Article - 03 Sep 2014

Searching for tables with an identity column in a database

Είσαι DBA ή Developer δεν έχει σημασία καμία και αναρωτιέσαι σε ποιους πίνακες έχεις identity fields. H απάντηση σε αυτό το post.


Article - 09 Jan 2014

Do you use an ORM? Please learn how to use it properly.

Τα τελευταία χρόνια έχει μεγάλη κουβέντα και μεγάλη χρήση από αρκετούς στην χρήση ORMs. Υπάρχουν αρκετά πλέον στην αγορά (EF, ΝHibernate κ.α.) και έτσι ο καθένας μπορεί να επιλέξει αυτό που του ταιριάζει. Αρκετές φορές έχω βρεθεί σε συζητήσεις σχετικά με αυτά και από αυτές έχω αποκτήσει την φήμη ότι είμαι από αυτούς που τα κατακρίνουν και στέκονται απέναντι τους.


Article - 06 Nov 2013

How to get month name in different languge (culture) within a single query

H ερώτηση : "Θέλω σε ένα query το οποίο περιέχει ένα πεδίο ημερομηνίας, από αυτό το πεδίο να δείχνω το λεκτικό του μήνα σε όποια γλώσσα επιλέξω. Πως αυτό μπορεί να γίνει;"


Article - 11 Aug 2013

How to configure report pagination based on data groups for excel exporting

Ένα report μπορούμε να το δούμε online ή να το κάνουμε export με σκοπό να επεξεργαστούμε τα δεδομένα με την ησυχία μας. Σε αυτές τις περιπτώσεις σημαντικό είναι το πώς έχουμε διαμορφώσει την εμφάνιση των reports μας. Ποιο σημαντικό είναι το pagination. Σε αυτό το web cast σας δείχνω πως χρησιμοποιώντας τo grouping και το pagination σε αυτό μπορείτε να κάνε export σε excel με τέτοιο τρόπο ώστε κάθε τιμή στο pagination να είναι σε ξεχωριστό excel sheet.


Article - 04 Aug 2013

Using Power Query add-in for Excel to get data from web and facebook

Σε αυτό το web cast – post θέλω να σας δείξω πόσο μα πόσο απλό είναι να αντλήσεις δεδομένα από web sites αλλά και από το facebook. Όσοι είστε data geeks και έχετε ή θέλετε να ενσωματώσετε περισσότερα δεδομένα στην ανάλυση των δεδομένων που κάνετε αυτό είναι το πρώτο βήμα και το οποίο μάλιστα είναι και αρκετά εύκολο και το σημαντικότερο είναι δωρεάν.


Article - 21 Jun 2013

Doing Magic with Partitioning and ColumnStore Index in a Data Warehouse DB on SQL Server 2012

Αρκετοί με ρωτάνε στα μαθήματα που κάνω αλλά και με emails στο SQL School σχετικά με το θέμα του table partitioning. Δεν ξέρω γιατί αλλά πολλούς έχει προβληματίσει και μπορώ να πω ότι έχει αγχώσει, αν και δεν θα έπρεπε καθώς είναι μια καθαρή λύση. Υπάρχουν και συνάδελφοι που ασχολούνται με BI και έχουν Data Warehouses (DW) στα οποία θέλουν να επωφεληθούν από το table partitioning αλλά και από την χρήση των columnstore indexes. Αποφάσισα να σας φτιάξω ένα μικρό demo με το οποίο θα δείτε ότι το να κάνει κάποιος table partitioning δεν είναι κάτι δύσκολο.


Article - 26 May 2013

External and Internal Index Fragmentation

Αναμφίβολα όλοι γνωρίζουμε την αξία που έχουν οι indexes σε ένα πίνακα και την ευεργετική επίδραση τους στα queries που γίνονται σε αυτούς.Επίσης όλοι ξέρουν ότι το index fragmentation είναι ένας παράγοντας που έχει αρνητική επίδραση στην αξία των index όμως γνωρίζουν όλοι τι είναι internal και τι external fragmentation;


Article - 28 Apr 2013

How to concatenate the values of a field to one column for all records of a table

Αν και δεν είναι κάτι το συνηθισμένο εντούτοις κάποια στιγμή θα σας έχει έρθει ή θα σας έρθει η ανάγκη για κάτι σαν αυτό που θα σας δώσω σαν tip στο συγκεκριμένο post. Έχω ένα πίνακα που έχει Ν πλήθος εγγραφών και θέλω σε ένα πεδίο του να πάρω όλες τις τιμές του από αυτές τις εγγραφές και να τις έχω σαν ένα πεδίο. Με άλλα λόγια θέλω να κάνω string concatenate


Article - 04 Feb 2013

New SQL SysPrep support in SQL Server 2012 with SP1 CU2

To Cumulative Update 2 του Service Pack 1 του SQL Server 2012 περιέχει αρκετές ευχάριστες εκπλήξεις. Ήδη σας έχω αναφέρει κάποιες και θα συνεχίσω και σε αυτό το post με ακόμα μία που έχει πιστεύω μεγάλη αξία ειδικά σε αυτούς που είναι φίλοι του virtualization.


Article - 08 Nov 2012

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

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


Article - 22 Oct 2012

How to write scripts for SQL Server Reporting Services RS.EXE utility using Visual Studio

Δεν είναι λίγες οι φορές που θέλουμε να αυτοματοποιήσουμε διαδικασίες ή να κάνουμε εργασίες μαζικά χωρίς να μπλέκουμε με το UI στα SQL Server Reporting Services. Για να κάνουμε κάτι τέτοιο πολλές φορές θα χρειαστεί να γράψουμε κάποιο script σε Visual Basic .NET το οποίο θα πρέπει να εκτελεστεί με το rs.exe utility που έχουν τα SSRS.


Article - 06 Sep 2012

How to clear HTML/XML Tags from a string

Σε αυτό το post θα σας παρουσιάσω ένα θέμα το οποίο είναι κάτι που αντιμετωπίζουν οι web developers και ιδιαίτερα αυτοί που ασχολούνται με Content Management Systems (CMS). Όπως είναι γνωστό σε αυτά αποθηκεύουμε το περιεχόμενο που βάζουμε στα sites μας, είτε σαν HTML, είτε σαν XML ή κάτι άλλο. Αρκετές είναι οι περιπτώσεις που χρειαζόμαστε να αντλήσουμε από αυτά μόνο το καθαρό περιεχόμενο αγνοώντας δηλαδή τα διάφορα HTML/XML tags.


Article - 03 Sep 2012

T-SQL Split Function

Αν και πιστεύω ότι αρκετοί θα έχετε υλοποιήσει κάτι τέτοιο εντούτοις σας παραδίδω και την δικιά μου εκδοχή που κάνει parse ένα string με delimiters και επιστρέφει ένα πίνακα με τα αποτελέσματα της εκτέλεσης.


Article - 27 Nov 2015

Storing DDL Statements History

Ένας οργανισμός έχει πολλά SQL Server Instances, πολλές databases και σίγουρα πάνω από έναν DBA, DB developer που έχουν πρόσβαση σε αυτά τα instances και αυτές τις databases. Ζητούμενο από όλους είναι να γνωρίζουμε τις αλλαγές που έχουν γίνει σε αυτές τις databases σε επίπεδο schema αλλά και πότε μπήκε ένας χρήστης σε ποιο ρόλο και πολλά ακόμα στοιχεία όπως δημιουργία indexes, αλλαγή στο μέγεθος μιας βάσης κλπ.


Article - 23 Oct 2011

TOD : You are not going to say “F***, I ran the test script in the production server!” again

Σαν DBA και DB Developer έχω πολλούς servers/instances του SQL Server τα οποία διαχειρίζομαι. Φαντάζομαι ότι και εσείς θα έχετε αρκετά είναι production είτε development instances. Αρκετές φορές πάνω στην βιασύνη ίσως έχετε τρέξει κάποιο script στο production ενώ δεν θα έπρεπε. Συνήθως αυτό γίνεται διότι έχετε ανοίξει ένα query window το οποίο είναι συνδεδεμένο στο instance που δεν θα έπρεπε να είναι. Αυτό είναι ένα θέμα. Θέλω να ξέρω κάθε φορά σε ποιο instance είμαι συνδεδεμένος.


Article - 15 Aug 2013

How to localize Reports in SQL Server Reporting Services

Επειδή στην σημερινή εποχή τα reports μας μπορούν να τα βλέπουν χρήστες που δεν έχουν απαραίτητα το ίδιο culture με εμάς, είναι σκόπιμο να τους δίνουμε αυτό την εμπειρία καθώς έτσι θα κάνουν καλύτερα την δουλειά τους και εμείς θα έχουμε ένα χρήστη λιγότερο πάνω από το κεφάλι μας.


Article - 01 Sep 2012

Implementing Fuzzy string matching/comparing

Πολλές φορές χρειαζόμαστε σε strings να κάνουμε συγκρίσεις για το αν αυτά είναι όμοια ή πόσο κοντά είναι το ένα στο άλλο. Αυτό όπως καταλαβαίνει κανείς εγκυμονεί αρκετούς κινδύνους, παραδοχές και πολλά ακόμα που πρέπει να λάβουμε υπόψη, ειδικά αν δεν έχουμε βάλει αυστηρούς ελέγχους στο τι πληκτρολογεί ο χρήστης. Παρ’ ότι στον SQL Server έχουμε την SOUNDEX και την DIFFERENCE υπάρχουν περιπτώσεις που δεν μας είναι αρκετές για ικανοποιήσουμε τις ανάγκες μας. Για αυτές τις περιπτώσεις θα πρέπει να δράσουμε κάπως διαφορετικά και θα πρέπει να δημιουργήσουμε εμείς κάτι το οποίο να καλύπτει τις ανάγκες αυτές


Article - 21 May 2012

Using Window Functions in SQL Server 2012

Πάρα πολλά νέα χαρακτηριστικά έχουν μπει στον SQL Server 2012. Όπως έχω πει και σε προηγούμενα post αλλά και στην πρόσφατη παρουσίαση μου στο 39o Autoexec event κάποια είναι δημοφιλή και ακούγονται συχνά όπως τα AlwaysOn Availability Groups, Auditing Enhancements, Security Enhancements κλπ. Δικαίως και είναι δημοφιλή. Υπάρχουν όμως τόσα άλλα που δεν ακούγονται, κακώς κατά την γνώμη μου. Σε μερικά μάλιστα δεν έχει δοθεί η δέουσα προσοχή. Ομολογώ ότι και εγώ σε κάποια δεν είχα δώσει και τόσο μεγάλη...


1 
PASS chapter logo

The Official PASS Local Group for Greece

1434 33 595 27 39 1326
sql school greece logo
© 2010-2019 All rights reserved