Ένα ενδιαφέρον video όπως παρουσιάστηκε στην WPC11 σχετικό με το “Crescent” το οποίο έχει σχεδιαστεί όπως λέει η Microsoft
Project "Crescent" is designed with end users in mind to quickly, easily, and visually explore their data and answer ad-hoc questions in just a few clicks.
Μπορείτε να το δείτε εδώ
Όταν για πρώτη φορά εμφανίστηκε το συγκεκριμένο feature στον SQL Server 7.0 ίσως να ήμουν ο πρώτος στην Ελλάδα που το χρησιμοποίησα σε παραγωγικό περιβάλλον. Παρόλα αυτά όμως δεν υπήρχε η υποστήριξη της ελληνικής γλώσσας και αυτό με είχε στεναχωρίσει ιδιαίτερα. Αυτό σήμαινε ότι δεν μπορούσα να ψάξω με την ρίζα της λέξης. Από τότε προσπαθούσα εγώ και ακόμα ένας συνάδελφος ο Παναγιώτης ο Καναβός να πείσουμε την Microsoft να υποστηρίξει την ελληνική γλώσσα. Οι προσπάθειες μας όμως ήταν άκαρπες. Παρ
Αρκετές φορές θέλουμε να δούμε το πως είναι configure o SQL Server με μιά ματία. Αντί να “τρέχουμε” από εδώ και από εκεί μέσα στον SSMS υπάρχει λύση, και αυτή δεν είναι άλλη από το να ανοίξουμε ένα νέo query και σε αυτό να γράψουμε
SELECT * FROM sys.configurations;
Το αποτέλεσμα θα σας ικανοποιήσει.
Enjoy it
@antonch
Σήμερα ένας αγαπητός φίλος και συνάδελφος μου έστειλε 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) να μου γκρινίαζει και να μου λέει ότι δεν μπορεί
Αν και η συγκεκριμένη εντολή είναι ευρέως γνωστή και σίγουρα θα την έχετε βρει σε διάφορα sites εντούτοις θα γράψω και εγώ για αυτή καθώς θεωρώ ότι είναι μια σημαντική εντολή αν και είναι undocumented. Φυσικά μπορούμε με ασφάλεια να την χρησιμοποιήσουμε σε παραγωγικά συστήματα χωρίς φόβο και πάθος. Με αυτή μπορούμε να δούμε αναλυτικές πληροφορίες για τους indexes σε ένα συγκεκριμένο object ανά σελίδα. Η σύνταξη της εντολής είναι η παρακάτω DBCC IND ( {‘dbname’|dbid} , {‘objectname’
Αν και έχω αρκετό καιρό να διοργανώσω ένα SQL Saturday Night, θα ήθελα να σας ενημερώσω ότι αυτά δεν σταμάτησαν όπως ακούστηκε. Η αλήθεια είναι ότι σταμάτησαν κάπως απότομα αλλά έπεσε αρκετή δουλεία που δεν είχα την ευκαιρία να προετοιμαστώ για νέο. Κάποια στιγμή σκέφτηκα να κάνω ένα προς το τέλος του επόμενου μήνα όπου κάπως ξαλαφρώνω από δουλειά αλλά μάλλον χαμένο θα πάει καθώς θα είναι αρκετοί σε διακοπές και είναι δύσκολο σαββατόβραδο να είναι κλεισμένος κάποιος μέσα.
Για όλους αυτούς το
Το Microsoft® SSIS Balanced Data Distributor (BDD) είναι ένα νέο SSIS transform, το οποίο παίρνει ένα single input και το κάνει distribute τα rows σε ένα ή περισσότερα outputs uniformly μέσω multithreading.
Ένα ακόμα βέλος στην φαρέτρα μας για το SSIS.
Μπορείτε να το κατεβάσετε από εδώ
Στον 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
Για να κάνω 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. Το νούμερο αυτό μπορεί να αλλάξει δυναμικά και αυτό γίνεται στις περιπτώσεις
Καθαρίζει όλα τα μη ενεργά/χρησιμοποιούμενα περιεχόμενα (cache entries) από όλες τις cache. Αν και ο SQL Server ενεργεί προκαταβολικά ώστε να γίνει αυτό, εντούτοις μπορώ χειροκίνητα να το κάνω αυτό εκτελώντας την
DBCC FREESYSTEMCACHE ('ALL')
Φυσικά το παραπάνω θα πρέπει να το κάνουμε μόνο εφόσον θέλουμε να καθαρίσουμε τα πάντα και φυσικά λαμβάνοντας υπόψη τα Remarks από τα BOL.
Καλό είναι να εστιάζουμε την προσοχή μας σε συγκεκριμένο pool και να σβήνουμε αυτό εφόσον έχουμε δει ότι μας δημιο
Διαγράφει από την στοιχεία από την plan cache. Αυτό μπορεί να γίνει είτε για όλα τα στοιχεία, είτε για συγκεκριμένο plan, είτε για όλα όσα αφορούν συγκεκριμένο resource pool.
Πρέπει να την χρησιμοποιούμε με σύνεση καθώς μπορεί να σβήσουμε πχ το πλάνο μιας stored procedure κατά λάθος. Αυτό σημαίνει ότι την επόμενη φορά που αυτή θα ζητηθεί να εκτελεστεί αυτή θα περάσει όλα τα στάδια (Parse,Optimize....) ώστε να μπει το πλάνο της ξανά μέσα στην plan cache και να εκτελεστεί και φυσικά να επαχρησ
Η λατρεία μου για τα poster είναι γνωστή. Ειδικά για αυτά που αφορούν τον SQL Server. Αν μάλιστα αυτά είναι χαριτωμένα, έξυπνα και λένε πολλά μου αρέσουν περισσότερο. Γενικά είμαι poster hunter. Χθες τυχαία ανακάλυψα αυτό που ακολουθεί το οποίο το έχει φτιάξει η Kendra Little (blog|twitter) το οποίο εξηγεί αρκετά όμορφα τα SQL Server Isolations Levels. Μπορείτε να το κατεβάσετε από το original link ή και από εδώ.
Για να ορίσω το πόσο θα είναι ο χώρος που θα καταλαμβάνει η buffer cache αρκεί να ορίσω το Min και Μax Server Memory. Αυτά τα settings ορίζουν μόνο την buffer cache και όχι όλη την μνήμη που θα καταλαμβάνει ο SQL Server.
Η DBCC DROPCLEANBUFFERS καθαρίζει την buffer cache μόνο από τις σελίδες που είναι χαρακτηρισμένες ως clean. Σε καμία περίπτωση δεν πειράζει όσες είναι dirty.
Σε τακτά χρονικά διαστήματα ή σε περιπτώσεις που υπάρχει στέρηση σε μνήμη, ένα thread αναλαμβάνει να κάνει τον καθαρισμό της buffer cache από τις σελίδες που δεν έχουν πρόσφατα χρησιμοποιηθεί. Το thread αυτό ονομάζεται Lazywriter και ο τρόπος με τον οποίο αποφασίζει ποιες είναι αυτές που θα φύγουν από την buffer cache είναι και ονομάζεται Least Recently Used (LRU) policy. Least Recently Used policy Στο header της κάθε σελίδας όταν αυτή είναι στη μνήμη αποθηκεύονται πληροφορίες που κρατάνε
Η διαδικασία αυτή όταν γίνεται μεταφέρει τις χαρακτηρισμένες ως dirty pages από την μνήμη (buffer cache) στο δίσκο (data file(s)) και αλλάζει στο header τους το status από dirty σε clean. Δεν αδείαζει-καθαρίζει την buffer cache από αυτές.
Όταν μια σελίδα διαβάζεται από τον δίσκο και μπαίνει στην buffer cache θεωρείται ότι είναι μια Clean Page. Όταν όμως κάνω ένα transaction το οποίο την επηρεάζει (πάντα στην μνήμη) αυτή είναι μια Dirty Page (μπαίνει ένα mark στον header της) καθώς η εικόνα στην μνήμη είναι διαφορετική από αυτή στο δίσκο. Για να δω πόσες dirty pages έχω ανά βάση αρκεί να εκτελέσω το παρακάτω query που χρησιμοποιεί την sys.dm_os_buffer_descriptors SELECT db_name(database_id) AS 'Database',count(page_id) AS 'D
Όπως γνωρίζουμε ο SQL Server διαβάζει τις σελίδες από το δίσκο και τις βάζει στην buffer cache. To πόσο χρόνο (σε δευτερόλεπτα) αυτές μπορούν να μείνουν κατά μέσο όρο στην buffer cache χωρίς να ζητηθούν/χρησιμοποιηθούν μπορούμε να το δούμε από τον SQL Server\Buffer Manager\Page Life Expectancy performance counter. O μετρητής αυτός σύμφωνα με τα recommendations πρέπει να είναι πάνω από 300 sec για να έχουμε ένα καλό PLE. Φυσικά σε σύστήματα που έχουν προβλήματα με την μνήμη αυτός θα είναι μικρότ
Η 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
Καιρό ήθελα να γράψω για αυτή και όλο το ξεχνούσα. Πρόσφατα σε μια εκπαίδευση αναφέρεθηκε το όνομα της και αφού το έβαλα σε χίλια δυο σημεία να το κάνω post και να μην το ξεχάσω τελικά τα κατάφερα και δεν την ξέχασα. Αρκετές φορές θέλουμε να μεταφέρουμε τα logins που έχουμε σε ένα SQL Server σε κάποιον άλλον. Ιδιαίτερα χρήσιμη όταν έχουμε database mirroring, replication κλπ. Υπάρχει ένα άρθρο το οποίο σου δίνει τον κώδικα αυτής και φυσικά αφού την δημιουργήσεις μπορείς να την εκτελέσεις και
Όπως είναι γνωρίζουμε στον SQL Server υπάρχει μια διαδικασία η οποία σκοπό έχει να μεταφέρει από την Buffer Cache τις αλλαγμένες σελίδες στο δίσκο, γίνεται σε όλες τις βάσεις εκτός από την tempdb (αν και αυτό δεν είναι και τόσο αλήθεια αλλά δεν θα το αναλύσουμε εδώ). Σκοπός του είναι να είναι όσο το δυνατό πιο ενημερωμένα τα data files με τις αλλαγές είναι γραμμένες στο log. Αυτό μπορεί να γίνει είτε εκτελώντας την εντολή CHECKPOINT είτε το κάνει o SQL Server αυτόματα. Το αυτόματο μπορεί να ορ
Καθώς έχουν ήδη γίνει δέκα SQL Saturday Nights θα ήθελα την γνώμη σας για την ποιότητα αυτών. Θα παρακαλούσα αν θέλετε να μου πείτε όσοι τα έχετε παρακολουθήσει είτε ζωντάνα είτε μαγνητοσκοπημένα την γνώμη σας για αυτά. Αυτό μπορείτε να το κάνετε μπαίνοντας στο www.sqlschool.gr και στη δημοσκόπηση που υπάρχει εκεί να επιλέξετε την άποψη σας. Σας ευχαριστώ εκ των προτέρων antonch