Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

Rocking with Knowledge for .NET programming

News about .NET programming
Get All tables row count without using Count(*) function
Η δύναμη της συνήθειας είναι το μεγαλύτερο ναρκωτικό του μυαλού και δεν το αφήνει να σκεφτεί αποδοτικά. Αλήθεια πόσες φορές κάνουμε μηχανικά κάποια πράγματα επειδή τα έχουμε συνηθίσει στα τόσα χρόνια που κάνουμε αυτή την δουλειά ;

http://www.sqlschool.gr/blog/get-all-tables-row-count-without-using-count-function-1058.aspx
SQL Server 2016 New features - The sys.dm_exec_function_stats DMV
Τα User Defined Functions (UDF) είναι γνωστά στους περισσότερους. Η χρήση τους είναι μεγάλη αλλά αρκετές φορές χρησιμοποιούνται λάθος κυρίως λόγο της άγνοιας που υπάρχει γύρω από την εκτέλεση ενός UDF και ιδιαίτερα όταν αυτό εμπλέκεται μέσα σε ένα query.
Οι περισσότεροι συγκρίνοντας το execution plan ενός query χωρίς UDF και με UDF βλέπουν ότι το query cost  είναι μικρότερο σε αυτό που χρησιμοποιεί το UDF και αμέσως θεωρούν ότι αυτό είναι και το καλύτερο.
Για ακόμα μια φορά θα τονίσω ότι δεν υπάρχει έτσι απλά καλό ή καλύτερο όλα είναι εξάρτηση από πολλούς παράγοντες όπως την ποσότητα και ποιότητα των δεδομένων των indexes κλπ

http://www.sqlschool.gr/blog/sql-server-2016-new-features-the-sys-dm_exec_function_stats-dmv-1057.aspx
SQL Server 2016 New features - The sys.dm_exec_session_wait_stats DMV

Καθημερινά ένας DBA ή DB developer έχει να αντιμετωπίσει αρκετούς αστάθμητους τις περισσότερες φορές παράγοντες που επηρεάζουν το performance.

Πιστέψτε με ότι αυτό είναι μια δουλεία που απαιτεί σχολαστικότητα γνώση της αρχιτεκτονικής τόσο του SQL Server όσο και της database. Για να κάνεις αυτή την δουλεία θα πρέπει να έχει μελετήσει αρκετά και να έχεις κάνει αρκετή πρακτική εξάσκηση για την απόκτηση εμπειρίας. 

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

Από τα βασικά εργαλεία μας στον SQL Server είναι τα Dynamic Management Views (DMV). Αρκετά από αυτά είναι κυρίαρχα εργαλεία στο performance troubleshooting. 

http://www.sqlschool.gr/blog/sql-server-2016-new-features-the-sys-dm_exec_session_wait_stats-dmv-1056.aspx

 

Posted: Τετάρτη, 14 Οκτωβρίου 2015 12:54 πμ από το μέλος Antonios Chatzipavlis | 0 σχόλια
Δημοσίευση στην κατηγορία:
Monitor Connection Pooling as SQL Server DBA

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

http://www.sqlschool.gr/blog/monitor-connection-pooling-as-sql-server-dba-1050.aspx

 

 

Auditing Reports Execution in SSRS

Ένα από τα services του SQL Server είναι τα Reporting Services τα οποία παρέχουν ένα εξαιρετικά ευέλικτο τρόπο να μεταδίδεται η πληροφορία στους τελικούς χρήστες. Η χρήση τους από τις εταιρίες και τους οργανισμούς έχει αυξηθεί σε υπερθετικό βαθμό και κανείς θα βρει μεγάλο αριθμό από reports να εκτελούνται καθημερινά στις υποδομές αυτών των εταιρειών.

Είναι φυσικό κάποια στιγμή να χρειαζόμαστε

  • να παρακολουθήσουμε ποια είναι αυτά που χρησιμοποιούνται,
  • πόσο συχνά χρησιμοποιούνται,
  • πόσο χρόνο χρειάζονται για να εκτελεστούν
  • ποιοι είναι οι χρήστες και ποια reports εκτελούν.

Οι παραπάνω λόγοι είναι μερικοί και κάνουν επιτακτική την ανάγκη να έχεις αρχικά ενεργοποιημένο το auditing στα SSRS και στην συνέχεια να έχεις μια διαδικασία που να κάνει την ζωή σου ευκολότερη.

Πέρα όμως από αυτούς το τελευταίο διάστημα είχα αρκετές ανάγκες στον εργασιακό μου χώρο για auditing από επιθεώρηση πάνω στoυς SSRS servers που έχω αλλά και πολλές ερωτήσεις από τους μαθητές μου στα πρόσφατα BI σεμινάρια που έκανα.

http://www.sqlschool.gr/blog/auditing-reports-execution-in-ssrs-1038.aspx 

Is it possible to Join a table with a stored procedure?

Σε όλους είναι γνωστό ότι δεν μπορείς ένα table να τον κάνεις join με μια stored procedure η οποία γυρνάει αποτελέσματα σε μορφή table. Είναι όντως 100% αλήθεια και αν δεν είναι γιατί δεν το χρησιμοποιούμε;

http://www.sqlschool.gr/blog/is-it-possible-to-join-a-table-with-a-stored-procedure-1001.aspx 

FIX for Online index build corruption issues in SQL Server 2012 (SP1 & SP2)

Όσοι έχετε εγκατεστημένο σε παραγωγικό περιβάλλον SQL Server 2012 θα πρέπει να βάλετε το παρακάτω fix το οποίο διορθώνει ένα πρόβλημα που εμφανίζεται κάτω από συγκεκριμένες συνθήκες όταν κάνεις online clustered index rebuild και έχει να κάνει με απώλεια δεδομένων.

http://www.sqlschool.gr/blog/fix-for-online-index-build-corruption-issues-in-sql-server-2012-sp1-sp2-989.aspx

 

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

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

http://www.sqlschool.gr/blog/dbcc-checkident-manually-set-a-new-current-identity-value-for-the-identity-column-981.aspx

Understanding Index External Fragmentation - Part II (The explanation)

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

http://www.sqlschool.gr/blog/understanding-index-external-fragmentation-part-ii-the-explanation-967.aspx

 

Understanding Index External Fragmentation - Part I (The cases)

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

http://www.sqlschool.gr/blog/understanding-index-external-fragmentation-part-i-the-cases-965.aspx 

 

What is the proper max server memory setting for a SQL Server with N gigabytes of installed RAM?

Αυτή είναι μια από τις δημοφιλέστερες ερωτήσεις σχετικά με τον SQL Server.  Ποιά  είναι όμως η απάντησή της;

http://www.sqlschool.gr/blog/what-is-the-proper-max-server-memory-setting-for-a-sql-server-with-n-gigabytes-of-installed-ram-963.aspx

 

 

CREATE DATABASE Secrets

Όλοι κάποια στιγμή έχουμε φτιάξει μια database είτε με το γραφικό περιβάλλον είτε με DDL statement (CREATE DATABASE). Για αυτούς που είναι λάτρεις του κώδικα και φτιάχνουν μια database με script υπάρχουν κάποια κρυφά μυστικά που είναι καλό να γνωρίζουν ;-)

http://www.sqlschool.gr/blog/create-database-secrets-962.aspx 

How to find CPU expensive queries

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

http://www.sqlschool.gr/blog/how-to-find-cpu-expensive-queries-961.aspx

 

Filtering data on joins or to where clause?

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

http://www.sqlschool.gr/blog/filtering-data-on-joins-or-to-where-clause-960.aspx

 

Update Statistics and Trace Flag 2371
Do you use an ORM? Please learn how to use it properly.

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

Αρκετές φορές έχω βρεθεί σε συζητήσεις σχετικά με αυτά και από αυτές έχω αποκτήσει την φήμη ότι είμαι από αυτούς που τα κατακρίνουν και στέκονται απέναντι τους.

 

http://www.sqlschool.gr/blog/do-you-use-an-orm-please-learn-how-to-use-it-properly-957.aspx 

The answer on question "Which is the best database?" is " It depends"

Ένα ερώτημα που μου έχει τεθεί τόσες φορές που έχω χάσει πλέον τον αριθμό. Αλήθεια υπάρχει απάντηση σε αυτό; 

http://www.sqlschool.gr/blog/the-answer-on-question-which-is-the-best-database-is-it-depends-956.aspx

The effects of SET NOCOUNT ON

Αρκετοί φαντάζομαι γνωρίζετε το SET NOCOUNT ON setting. Θα έχετε πιθανώς διαβάσει ή ακούσει ότι όταν είναι ΟΝ έχουμε καλύτερη απόδοση κυρίως στα action queries (INSERT/UPDATE/DELETE), αν όχι μπορείτε να το δείτε στα BOL.Αυτό που θέλω είναι να σας δείξω το πόσο βελτίωση έχουμε και για αυτό θα κάνουμε ένα benchmark.

http://www.sqlschool.gr/blog/the-effects-of-set-nocount-on-955.aspx

 

SQL Server Services Ports that each DBA and Developer must know
Καλή Χρονιά με υγεία πάντα σε όλες και όλους.
 
Πρώτο post για την χρονιά αυτή και θα ξεκινήσω με κάτι απλό που πρέπει να γνωρίζουν όλοι, είτε είναι DBAs είτε είναι Developers. 
 
Ο SQL Server είναι στην ουσία ένα εργοστάσιο από services. Κάθε ένα από αυτά όμως έχει την δικό του "ταχυδρομικό κωδικό". Αυτός δεν είναι άλλος από την πόρτα TCP/UDP έτσι σας δίνω μια λίστα αυτών με τις πόρτες που το κάθε ένα χρησιμοποιεί και είναι απαραίτητο να γνωρίζετε. 
 
http://www.sqlschool.gr/blog/sql-server-services-ports-that-each-dba-and-developer-must-know-954.aspx 
Recover SQL data from a dropped table without backups using ApexSQL Recover

Υπάρχουν στιγμές που εκτελούμε ένα DROP TABLE statement σε μια βάση αλλα ούτε γάτα ούτε ζημία καθώς έχουμε ένα full backup και επανεφέρουμε αυτόν τον πίνακα (εντάξει θα έχουμε downtime και όλα τα σχετικά) και πάμε σπίτι μας και κάνουμε γιορτές. Αλλά αυτό μπορεί να μην είναι εφικτό να γίνει είτε επειδή τα αντικείμενα (πίνακες, procedures, views κλπ) και τα δεδομένα της βάσης έχουν αλλάξει μετά την εκτέλεση του DROP statement είτε γιατί δεν έχουμε ένα σωστό backup στα χέρια μας τότε είτε πρέπει να σκάψουμε μέσα στα άδυτα της αρχιτεκτονικής του SQL Server και να είμαστε γνώστες αυτής και ιδιαίτερα του transaction log είτε πάμε σπίτι μας και φυτεύουμε μαρούλια είτε χρησιμοποιούμε κάτι που κάποιος άλλος έχει φτιάξει και σώζουμε την κατάσταση.

http://www.sqlschool.gr/SqlNews/143/Content.aspx

Microsoft Power Query - 21th SQL Saturday Night (RECORDING)

Σε αυτό το SQL Saturday Night θα δούμε το Microsoft Power Query (free add-in for Microsoft Excel 2010/2013) με το οποίο μπορούμε να συνδυάσουμε και να μετατρέψουμε δεδομένα από ποικίλες πηγές χωρίς να χρειάζεται να καταφύγουμε σε περίπλοκες ETL διαδικασίες χρησιμοποιώντας απλά το γνωστό UI του Excel.
http://www.sqlschool.gr/SqlSaturdayNight/21/Content.aspx

SQL Server Data Tools (SSDT) September Update

Ανακοινώθηκε μια νέα ενημέρωση των SQL Server Development Tools (SSDT) με την οποία λύνονται θέματα που υπήρχαν όταν κάποιος δούλευε με το Schema Compare σε μεγάλο DPI ή με πολύ μεγάλo μέγεθος γραμματοσειράς στο pc του. Αυτή η έκδοση αντικαθιστά αυτή του Αυγούστου και περιέχει ακόμα μερικά bug fixes

http://www.sqlschool.gr/SqlNews/135/Content.aspx

How to see SQL Server OLAP Cube Translations in a Excel

Είναι γνωστό ότι μπορώ να έχω translations στα πεδία που έχω στα fact & dimension tables σε ένα OLAP Cube. Είναι μια εύκολη διαδικασία την οποία μπορώ να κάνω κατά το design του κύβου. Πώς μπορώ όμως να τα δω κατά την διάρκεια που βλέπω κάνω browse το κύβο μέσα από το Excel; Η απάντηση στο web cast αυτό…

 

http://www.sqlschool.gr/blog/how-to-see-sql-server-olap-cube-transalations-in-a-excel-944.aspx

How to localize Reports in SQL Server Reporting Services

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

http://www.sqlschool.gr/blog/how-to-localize-reports-in-sql-server-reporting-services-943.aspx

 

FILESTREAM Best Practices from usage and experience

Από τον SQL Server 2008 υπάρχει ένα feature που είναι ιδανικό για BOL fields μέσα στην βάση. Αναφέρομαι φυσικά στο filestream. Προσωπικά το έχω χρησιμοποιήσει σε μεγάλο βαθμό σε μια εφαρμογή στην οποία αποθηκεύονται έγγραφα, φωτογραφίες υψηλής ανάλυσης. Θα ήθελα να προσθέσω μερικά ακόμα tips τα οποία προέρχονται 100% από την χρήση του σε μία βάση που το μέγεθος της είναι πολύυυυυυυυυυ μεγάλο

http://www.sqlschool.gr/blog/filestream-best-practices-from-usage-and-experience-942.aspx

 

Περισσότερες Δημοσιεύσεις Επόμενη »