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

About this blog

News about Microsoft SQL Server and other databases...

Entries in this blog

Tip of the Day: What DBCC FREEPROCCACHE does?

Διαγράφει από την στοιχεία από την plan cache. Αυτό μπορεί να γίνει είτε για όλα τα στοιχεία, είτε για συγκεκριμένο plan, είτε για όλα όσα αφορούν συγκεκριμένο resource pool.   Πρέπει να την χρησιμοποιούμε με σύνεση καθώς μπορεί να σβήσουμε πχ το πλάνο μιας stored procedure κατά λάθος. Αυτό σημαίνει ότι την επόμενη φορά που αυτή θα ζητηθεί να εκτελεστεί αυτή θα περάσει όλα τα στάδια (Parse,Optimize....) ώστε να μπει το πλάνο της ξανά μέσα στην plan cache και να εκτελεστεί και φυσικά να επαχρησ

antonch

antonch

Tip of the Day: sys.dm_os_buffer_descriptors

Η DMV αυτή δείχνει μια γράμμη για κάθε data page η οποία είναι στην buffer cache. Με το παρακάτω script μπορείς να δεις το ποσό σε MB που έχει δεσμευτεί από τις σελίδες που υπάρχουν για κάθε βάση μέσα στην buffer cache SELECT CASE database_id WHEN 32767 THEN 'ResourceDB' ELSE DB_NAME(database_id) END AS 'Database', COUNT(*)*8/1024 AS 'Cached Size (MB)' FROM sys.dm_os_buffer_descriptors GROUP BY DB_NAME(database_id),database_id ORDER BY 2 DESC

antonch

antonch

Tip of the Day: Page Life Expectancy Performance Counter

Όπως γνωρίζουμε ο SQL Server διαβάζει τις σελίδες από το δίσκο και τις βάζει στην buffer cache. To πόσο χρόνο (σε δευτερόλεπτα) αυτές μπορούν να μείνουν κατά μέσο όρο στην buffer cache χωρίς να ζητηθούν/χρησιμοποιηθούν μπορούμε να το δούμε από τον SQL Server\Buffer Manager\Page Life Expectancy performance counter. O μετρητής αυτός  σύμφωνα με τα recommendations πρέπει να είναι πάνω από 300 sec για να έχουμε ένα καλό PLE. Φυσικά σε σύστήματα που έχουν προβλήματα με την μνήμη αυτός θα είναι μικρότ

antonch

antonch

Tip of the Day: Monitoring buffer cache size

Για να κάνω monitoring το μέγεθος της buffer cache αρκεί μέσα από το Performance Monitor Tool των Windows να ορίσω τους μετρητές: SQLServer: Memory Manager \ Total Server Memory (KB) Δείχνει το τρέχων μέγεθος της buffer cache. SQLServer: Memory Manager \ Target Server Memory (KB) Δείχνει το πάνω όριο της μνήμης που έχει εκείνη την στιγμή έχει ορίσει ο SQL Server ότι μπορεί να χρησιμοποιήσει για την buffer cache. Το νούμερο αυτό μπορεί να αλλάξει δυναμικά και αυτό γίνεται στις περιπτώσεις

antonch

antonch

Tip of the Day: AWE in 64 bit systems

Στον SQL Server υπάρχει το option AWE (μπορεί κανείς να το αλλάξει είτε με δεξί κλικ στον όνομα του server μέσα από το SSMS Properties\Memory είτε με την χρήση της sp_configure). Στην περίπτωση που είστε σε 64-bit system ακόμα και αν την ενεργοποιήσετε αυτή δεν λαβανετε υποψη, εκτός αν  δώσετε στο SQL Server service account το Lock Pages in Memory privilage και είστε σε Enterprise Edition. Στην αρχή ήταν μόνο για Enterprise Editon αλλά μετά από feedback Που δώθηκε στην Microsoft στον 200

antonch

antonch

Tip of the Day #2: What DBCC DROPCLEANBUFFERS does?

Η DBCC DROPCLEANBUFFERS καθαρίζει την buffer cache μόνο από τις σελίδες που είναι χαρακτηρισμένες ως clean. Σε καμία περίπτωση δεν πειράζει όσες είναι dirty.

antonch

antonch

Tip of the Day : sys.configurations

Αρκετές φορές θέλουμε να δούμε το πως είναι configure o SQL Server με μιά ματία. Αντί να “τρέχουμε” από εδώ και από εκεί μέσα στον SSMS υπάρχει λύση, και αυτή δεν είναι άλλη από το να ανοίξουμε ένα νέo query και σε αυτό να γράψουμε SELECT * FROM sys.configurations;   Το αποτέλεσμα θα σας ικανοποιήσει. Enjoy it @antonch

antonch

antonch

The value of sys.dm_io_virtual_file_stats DMV

Όπως αρκετές φορές έχω αναφέρει, τρεις είναι οι παράγοντες που επηρεάζουν την λειτουργία ενός SQL Server και αυτοί είναι: Memory, CPU, I/O. Αρκετοί συνάδελφοι δηλώνουν λάτρεις των Dynamic Management Views (DMV) μεταξύ αυτών είμαι και εγώ , όμως το μυστικό σε αυτές είναι να τις χρησιμοποιείς έτσι ώστε να παίρνει από αυτές συνδυαστικά τις περισσότερες φορές τη μέγιστη δυνατή πληροφορία που αυτές μπορούν να σου σώσουν. Σε αυτό το post θα σας δείξω πως χρησιμοποιώντας μια εξ αυτών θα μπορέσουμε

antonch

antonch

The truth about WITH ENCRYPTION option

Όταν βάζουμε το WITH ENCRYPTION option σε μια stored procedure, ένα trigger, μια function ή ένα view ξέρουμε ότι αυτόματα ο κώδικας δεν είναι ορατός. Θα μπορούσαμε να πούμε ότι είναι κλειδωμένος. Δεν ξέρω αν το γνωρίζεται αλλά ο SQL Server δεν είναι ένα digital rights management system αυτό σημαίνει ότι ο κώδικας που έχει γραφεί μέσα μια sp, function κλπ δεν είναι encrypted, αλλά απλά obfuscated. Το obfuscation αυτό ο SQL Server εδώ και πολλά χρόνια από τότε που εμφανίστηκε το with encrypt

antonch

antonch

The SQL Server Utility

Το πρόβλημα Σαν DBA και ειδικά σε enterprise environments έχουμε το καθήκον να διαχειριζόμαστε ένα αρκετά σημαντικό αριθμό από SQL Server instances που υπάρχουν διάσπαρτα μέσα στο οργανισμό ή την εταιρεία στην οποία εργαζόμαστε. Αυτό σημαίνει ότι πρέπει καθημερινά να παρακολουθούμε την πορεία αυτών των instances ώστε προληπτικά και όχι πυροσβεστικά να δίνουμε λύσεις σε issues που τυχόν θα εμφανιστούν. Για να μπορώ όμως σαν DBA να έχω την εικόνα όλων των instances που διαχειρίζομαι θα πρέπει

antonch

antonch

The SQL Server Operating System (SQLOS) – Μέρος 2ο

Ας συνεχίζουμε στο δεύτερο και τελευταίο μέρος τους SQLOS. To 1ο μέρος θα το βρείτε εδω. Memory Management Τα Windows στην x86 έκδοση τους δίνουν σε όλα τα processes 4GB Virtual Address Space (VAS), η οποία χωρίζεται σε δύο μέρη των 2GB το καθένα, το ένα είναι το user mode partition και το άλλο είναι το kerner mode partition όπως συνηθίζουμε να τα λέμε. Εάν ένα application χρειάζεται περισσότερο από τα 2GB του user mode partition στο VAS μπορώ να προσθέσω τον διακόπτη /3GB στο boot.ini αρχ

antonch

antonch

The SQL Server Operating System (SQLOS) – Μέρος 1ο

Πριν προχωρήσω στο αντικείμενο που θέλω να παρουσιάσω θα ήθελα να περιγράψω κάποιες γνωστές έννοιες που θεωρώ ότι είναι καλό να επαναληθούν, μιας και η επανάληψη είναι η μητέρα της μάθησης όπως έλεγαν οι πρόγονοι μας. Κάθε application ( και με αυτό τον όρο συμπεριλαμβάνω και τα services ) μπορεί να εκτελεσθεί πολλές φορές. Κάθε εκτέλεση του application είναι ένα instance. Κάθε instance που τρέχει είναι ένα process, το οποίο στην ουσία είναι ένας container από ένα ή πολλα threads και τα οποία

antonch

antonch

The SQL Server Browser service

Αν και είμαι σχεδόν σίγουρος ότι αρκετοί γνωρίζουν το συγκεκριμένο services, εντούτοις έχω εντοπίσει ότι υπάρχουν κενά στην γνώση γύρω από το συγκεκριμένο. Καθημερινά το βλέπω αυτό σε αρκετές εγκαταστάσεις… Εισαγωγή Ας ξεκινήσουμε με λίγη ιστορία. Το συγκεκριμένο service εμφανίστηκε στην έκδοση του SQL Server 2005 σαν επέκταση του SQL Server Resolution Protocol (SSRP) του SQL Server 2000. Σκοπός του Ο σκοπός του συγκεκριμένου service είναι να παρέχει πληροφορίες σχετικά με το inst

antonch

antonch

The server principal already exists – Error 15025 troubleshooting

Πάντα υπάρχει κάτι που μπορεί να σε κάνει να χαμογελάσεις ευχάριστα ακόμα και αν είναι ένα μήνυμα λάθους!. Κάνοντας ένα τυπικό έλεγχο σε ένα παλιό Always On Availability Group διαπίστωσα ότι ένα domain group που είχε πρόσβαση στο ένα node δεν είχε πρόσβαση στο άλλο. Φυσικά αυτό θα έπρεπε να διορθωθεί καθώς σε περίπτωση που γίνονταν failover οι χρήστες του συγκεκριμένου domain group δεν θα είχαν πρόσβαση στο άλλο. Τι ποιο απλό από το να κάνει κάνεις αυτή την διαδικασία είτε μέσω SSMS είτε με τη

antonch

antonch

The One and Only…

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

antonch

antonch

T-SQL Split Function

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

antonch

antonch

T-SQL Cheat Sheets

Καλησπέρα σας. Τι έγινε κουνηθήκαμε λιγάκι σήμερα ε; Λοιπόν αυτό ήταν καλό γιατί μου ήρθε η ιδέα για το post αυτό. Επειδή είναι αδύνατο, τουλάχιστον για μένα, να τα θυμάμαι όλα απ’ έξω, σας δίνω μερικά links στα οποία θα βρείτε cheat sheets για την T-SQL. TSQL Cheatsheet SQL Server TSQL Cheatsheet Dave Pinal or SQL Authority's Cheatsheet Φιλικά Αντώνης

antonch

antonch

T-SQL Challenge #1:Different Level Ordering in Hierarchy

Το πρόβλημα Πριν από μερικές μέρες μια συνάδελφος ήρθε με το εξής πρόβλημα, ήθελε να δείξει κάποια δεδομένα σε ένα treeview control σε ένα web page. Στην ουσία ήταν μια ιεραρχία που από την δομή του πίνακα έβγαινε αρκετά εύκολα με ένα order by clause. Όμως δεν ήταν τόσο απλά τα πράγματα, ήθελε να υπάρχει ταξινόμηση ανά επίπεδο ιεραρχίας το οποίο ορίζονταν από ένα άλλο πεδίο. Για να εξηγήσουμε καλύτερα την πρόκληση αυτή ας έρθουμε να δούμε το πώς ήταν τα δεδομένα της Ολόκληρο το άρθρο

antonch

antonch

System.InvalidOperation Exception μέσα από CLR Trigger

Καλημέρα και καλό μήνα σε όλους. Σήμερα έπεσα πάνω σε ένα μήνυμα λάθους το οποίο με προβλημάτισε αρκετά. Μέσα από ένα CLR Trigger έπαιρνα το παρακάτω μήνυμα λάθους A .NET Framework error occurred during execution of user-defined routine or aggregate "…": System.InvalidOperationException: Data access is not allowed in this context. Either the context is a function or method not marked with DataAccessKind.Read or SystemDataAccessKind.Read, is a callback to obtain data from FillRow meth

antonch

antonch

Storing DDL Statements History

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

antonch

antonch

SSRS Tip #1: Μειώστε το μέγεθος του αρχείου που δημιουργήτε όταν κάνετε το report export σε PDF και αυτό περιέχει images

Όταν δημιουργήτε ένα report το οποίο έχει μέσα του images και θέλετε να έχετε μικρό μέγεθος αρχείου όταν το κάνετε export σε PDF, φροντίστε αυτές να είναι σε jpeg format. Οτιδήποτε άλλο τα reporting services το μεταφράζουν σε BMP και αυτό έχει σαν αποτέλεσμα να μεγαλώνει δραματικά το μέγεθος του αρχείο ειδικότερα αν έχετε μεγάλο αριθμό από εικόνες ή φωτογραφίες.

antonch

antonch

SSRS Report Viewer Control on IIS 7

Σήμερα ανέβαζα ένα project σε production το οποίο ήταν ένα Web Application σε .ΝΕΤ όπου χρησιμοποιούσαμε το Report Viewer Control για να δείχνουμε τα reports που η εφαρμογή έχει. Ενώ σε όλα τα στάδια ανάπτυξης και τεστ δεν είχαμε κάποιο θέμα μόλις ανέβηκε στην παραγωγή άρχισαν τα τηλέφωνα από τον πελάτη και μου στέλνουν και ένα mail με ένα screen dump όπου το control αυτό δεν έκανε τίποτα τα είχε δει όλα. Η εικόνα του control ήταν η παρακάτω Φυσικά ο IIS της παραγωγής ήταν ο 7 στο οποίο

antonch

antonch

SSMS Tools Pack add-in for Microsoft SQL Server Management Studio (SSMS)

SSMS Tools Pack είναι ένα add-in για τον Microsoft SQL Server Management Studio (SSMS) 2005, 2008, 2008 R2 αλλά και για τις Express versions. Τα έχει φτιάξει ένας SQL Server MVP o Mladen Prajdic και τα μοιράσει δωρεάν αλλά μπορείς να αφήσεις κάτι σε αυτόν για την προσπάθεια του Περιέχουν αρκετά ωραία πραγματάκια που σε μερικούς λοίπουν από το SSMS όπως: SQL Snippets Window Connection Coloring Query Execution History and Current Window History Format SQL Search Table,

antonch

antonch

×
×
  • Create New...