sqlschool.gr logo

search results

searching on site content

03 Apr 2018

How can I find discontinued/deprecated features?

Πρόσφατα έλαβα μια ερώτηση για το πως μπορούμε να βρούμε τα discontinued / deprecated features στο τρέχων SQL Server instance μας το οποίο θέλουμε να κάνουμε migrate σε επόμενη έκδοση. Αρχικά θα πρέπει να επισημάνω ότι ο SQL Server είναι ίσως το μοναδικό προϊόν που έχει η Microsoft που με συνέπεια χρόνια τώρα αναφέρει σε κάθε έκδοση που βγαίνει τι δεν θα υποστηρίζεται στην επόμενη έκδοση και τι πρόκειται να μην υποστηρίζεται σε επόμενες εκδόσεις. Αυτό σημαίνει ότι μου δίνεται η δυνατότητα να προγραμματίσω με άνεση τις αλλαγές που χρειάζεται να γίνουν ώστε να έχω ομαλή μετάβαση σε επόμενη έκδοση.

19 Aug 2009

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 αρχείο. Για να δούμε λοιπόν την υλοποίηση του ...

26 Sep 2009

Πώς να “σκοτώσω” τα ανενεργά connections στον SQL Server

Αφορμή για αυτό το post είναι ο Blackman. Σε μια ωραία συζήτηση που είχαμε μου εξέφρασε την επιθυμία για αυτό επειδή μια εφαρμογή που έχει του αφήνει ανοικτά sessions. Σε αυτό το σημείο θα πρέπει να αναφέρω ότι κάτι τέτοιο μπορεί να συμβεί είτε διότι η εφαρμογή δεν έχει γραφτεί σωστά, είτε έπειδή ο σταθμός εργασίας που έχει ανοίξει το session σταμάτησε να λειτουργεί είτε η εφαρμογή σταμάτησε απότομα.

11 Mar 2013

Parameter Sniffing – What is and How to deal with it

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

02 Feb 2021

EXECUTE (EXEC) vs. sp_executesql

Παρατηρώ ότι αρκετοί προβληματίζονται ή έχουν μπερδευτεί για το πότε πρέπει να χρησιμοποιούν την EXECUTE (περισσότερο γνωστή με την σύντμηση της EXEC) ή την sp_executesql. Λοιπόν για να βάλουμε τα πράγματα σε σειρά.

13 Jan 2016

How to activate the Blocking Process Report

Μια συνηθισμένη ημέρα στη δουλεία είναι αρκετά ενδιαφέρουσα. Ιδιαίτερα όταν έχεις να προσέχεις μεγάλο αριθμό από SQL Server instance και databases που γίνονται access από εφαρμογές που μπορεί να χρησιμοποιούνται από χιλιάδες αλλά και εκατομμύρια χρήστες. Όσο καλά να είναι όλα φτιαγμένα πάντα μα πάντα θα υπάρξει αυτό που θα σε κάνει να σηκώσεις τα μανίκια για να βρεις αρχικά τι είναι και έπειτα να δώσεις λύση.

08 Nov 2012

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

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

23 Sep 2018

Session Context in SQL Server

Αρκετές είναι οι περιπτώσεις που θέλουμε να περάσουμε κάτι είτε μεταξύ batch είτε stored procedure. Σε αυτό το VLOG σας δείχνω το πως μπορεί να γίνει αυτό.

14 Oct 2014

Using T-SQL commands to read SQL log files

Ένας DBA στην καθημερινότητα του χρειάζεται να διαβάζει αρκετές φορές τα logs που ο SQL Server παράγει είτε για το ίδιο το SQL Server service είτε για το SQL Server Agent service. Φυσικά και υπάρχει γραφικό περιβάλλον που μπορεί εύκολα κανείς να κάνει αυτό. Υπάρχει όμως και μη γραφικός τρόπος που διευκολύνει περισσότερο, κατά την γνώμη μου, στην ανάγνωση των logs ιδιαίτερα όταν αυτά έχουν μεγάλο όγκο από καταχωρήσεις.

21 Apr 2013

SQL Server Agent – Automatically Remove Agent Jobs History

Μέσα στην καθημερινότητα ενός DBA είναι να έχει αρκετά schedule tasks με τα οποία κάνει την ζωή του ευκολότερη. Αυτά όπως είναι γνωστό εκτελούνται με την χρήση του SQL Server Agent service. Τα tasks αυτά σε κάθε κύκλο εκτέλεσης τους κάνουν logging την κάθε εκτέλεση σε ένα system table που υπάρχει μέσα στην msdb database και αυτός είναι ο dbo.sysjobhistory. Φυσικό είναι ο πίνακας αυτός να γεμίζει με εγγραφές που έπειτα από κάποιο χρονικό διάστημα πρακτικά είναι άχρηστες καθώς αναφέρονται σε εκτελέσεις που αφορούν το πολύ μακρινό παρελθόν. Πως λοιπόν θα σβήσουμε από αυτόν τον πίνακα τις εγγραφές αυτές που δεν θέλουμε;

06 May 2019

Create re-usable temp table using dynamic T-SQL

Δεν είναι λίγες οι φορές που χρειάζεται να δημιουργήσουμε ένα temp table δυναμικά καθώς δεν γνωρίζουμε εξ’ αρχής την δομή του είτε σε μια stored procedure είτε σε ένα script.

25 Sep 2014

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

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

12 May 2014

Mirror Backups, a feature that most of us ignore

Σήμερα θα σας απασχολήσω με ένα θέμα το οποίο αφορά το backup. Aν και είναι Enterprise edition feature διαπίστωσα ότι ακόμα και αυτοί που διαθέτουν την συγκεκριμένη έκδοση αγνοούν αυτό, τουλάχιστον η πλειοψηφία. Αυτό δεν είναι άλλο από την δυνατότητα να έχω MIRROR Backup στα backups τα οποία εκτελώ στον SQL Server.

15 Sep 2021

MSDB database needs maintenance and tunning. Don’t forget that.

Όλες οι databases που υπάρχουν μέσα σε ένα SQL Server instance χρειάζονται maintenance και tunning και δεν εξαιρούνται από αυτό οι system databases. Μία από αυτές είναι και η msdb.

20 Jul 2009

Script for Full database backup in separate device per day with SQLCMD Tool

Επειδή ο φίλος Αθανάσιος το ζήτησε για να μην του χαλάσουμε το χατήρι. Αποθηκεύουμε το παρακάτω script σε ένα άρχειο στο δίσκο μας πχ. backup.sql ...

04 Jul 2009

Πώς να καταγράφω τα events μιας database του SQL Server 2005 στο Windows Event Log

Σήμερα το πρωί σε μια συνάντηση που είχαμε όλοι οι Έλληνες MCTs ένας συνάδελφος μου έκανε μια ερώτηση. “Θέλω να καταγράφω τα events που γίνονται σε μια βάση στο Windows Event Log γιατί θέλω να τα βλέπω από το MOM;” Η απάντηση σε αυτό είναι η παρακάτω, όμως θα πρέπει να επισημάνω ότι είναι για SQL Server 2005 μιας και στον SQL Server 2008 δεν υπάρχει η ανάγκη να κάνουμε κάτι τέτοιο μιας και υπάρχει build-in δυνατότητα την οποία υπόσχομαι να παρουσιάσω σε ένα άλλο μου post.

13 Sep 2009

SQL Server Express – Schedule backup

Μόλις έλαβα ένα request από τον συνάδελφο Γιώργο Σίμο να φτιάξω κάτι για να παίρνει schedule backup στο sql server express, μιας και αυτή η έκδοση δεν έχει τον sql server agent. Λοιπόν όποιος θέλει να υλοποιήσει μια τέτοια λύση θα πρέπει να κάνει τα εξής βήματα: ...

02 Jul 2009

Μήπως έχετε ξεχάσει κάποια database να την πάρετε backup;

Είστε σίγουροι ότι έχετε πάρει έστω και μια φορά όλες τις databases σας backup; Ειδικά εσείς αγαπητοί συνάδελφοι που έχετε πολλές databases είστε σίγουροι; Η απάντηση στο ερώτημα αυτό είναι η παρακάτω stored procedure η οποία θα σας επιστρέψει αμέσως όλες τις database που έχετε ξεχάσει να πάρετε backup.

28 Jun 2021

Common Alerts that each SQL Server instance must have

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

20 Jul 2009

Script for Full database backup in separate device per day

Πριν από λίγο ένας συνεργάτης μου, που έχει πολλούς πελάτες με ERP που είναι σε SQL Server μου ζήτησε να παίρνει backup σε ημερήσια εβδομαδιαία βάση αυτοματοποιημένα. Δηλαδή ένα backup για κάθε database (full βεβαια) κάθε μέρα της εβδομάδας, και την επόμενη εβδομάδα να γράφει πάνω στο προηγούμενο της αντίστοιχης ημέρας. Η λύση είναι απλή...

24 Apr 2017

TRY… CATCH with Extended Event

Από το SQL Server 2005 έχουμε στην διάθεση μας το TRY…CATCH με το οποίο μπορούμε να έχουμε ένα δομημένο exception handling και πραγματικά είμαστε όλοι ευχαριστημένοι με αυτό.Παρόλο που αυτό κάνει εξαιρετικά την δουλειά του και πιάνει πραγματικά όλα τα run time exceptions υπάρχει κάτι που συμβαίνει και που οι περισσότεροι πιστεύουν ότι είναι limitation σε αυτό (κατά την γνώμη μου δεν είναι).

23 Feb 2011

When dynamic SQL might be the BEST way!

Πριν μερικές μέρες είχα δημοσιεύσει ένα άρθρο “Dynamic SQL ή μήπως μπορώ και αλλιώς;”. Σήμερα διάβασα το παρακάτω άρθρο της Kimberly Trip το οποίο καλύπτει μια άλλη πτυχή την οποία δεν είχα καλύψει στο δικό μου.

31 Dec 2019

Let's talk about Sessions, Requests, Tasks, Worker Threads, Schedulers

Η πολυπλοκότητα του SQL Server είναι τέτοια που πρέπει να γνωρίζεις πως εκτελούνται οι εργασίες του για να μπορέσεις να δώσεις εξηγήσεις και φυσικά λύσεις.

09 Jun 2016

Get Security Permission Report for all users and objects in a database - Version 2

Καθημερινά σαν DBA μου έρχονται πολλά αιτήματα που αφορούν την ασφάλεια των SQL Server instances και των database που αυτά έχουν. Ένα σύνηθες ερώτημα είναι να βγάλω ένα report για τους χρήστες με τις προσβάσεις που έχουν σε συγκεκριμένη database.

14 Mar 2010

Lesson: Backup/Restore in SQL Server 2008

Βλέποντας μέσα από το forum μας διάφορες συζητήσεις σχετικά με το θέμα του μεγέθους του transaction log (T-Log) διαπίστωσα ότι υπάρχει ένα θολό τοπίο γύρω από το θέμα disaster recovery (backup - restore) πάνω στον SQL Server. Πήρα την απόφαση να γράψω για αυτό το θέμα ώστε να το ξεκαθαρίσω μια και καλή διότι είναι τόσο απλό και τόσο δυνατό που είναι αμαρτία από το Θεό να παιδεύεται ο κόσμος.

13 Jun 2021

Failed to generate a checkpoint in a database

Πρόσφατα κλήθηκα να διορθώσω μια corrupted database με αρκετά μεγάλο αριθμό corrupted pages. Η διαδικασία επιδιόρθωσης ήταν επίπονη και πήρε αρκετές ημέρες αλλά τελικά ολοκληρώθηκε. Με την ολοκλήρωση της διαδικασίας ζήτησα να γίνει full backup καθώς τα ήδη υπάρχοντα backups ήταν και αυτά corrupted καθώς περιείχαν τις corrupted pages. Κατά την διάρκεια του full backup όμως εμφανίστηκε ένα νέο μήνυμα λάθους που έλεγε το εξής...

03 May 2015

Using sp_send_dbmail to send Excel file (csv) as attachment

Πόσες φορές έχεις την ανάγκη να εκτελέσεις ένα query και τα αποτελέσματα τα του να τα στείλεις με email σε ένα excel; Τρόποι υπάρχουν αρκετοί. Σε αυτό το post θα σας δείξω ακόμα έναν που αυτοματοποιεί ακόμα περισσότερο την διαδικασία.

04 Jun 2012

Estimate Database Compression Stored Procedure (sp_estimate_db_compression)

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

29 Jun 2010

Θέλω να ξενοιάσω με το backup των βάσεων σε έναν Server

Θέλετε να ξενoιάσετε μια και καλή με το backup των βάσεων σας σε έναν SQL Server στον οποίο έχετε δώσει δικαιώματα σε developers ή χρήστες να φτιάχνουν databases με αποτέλεσμα να υπάρχουν βάσεις που δεν τις παίρνετε άμεσα χαμπάρι και όταν γίνει η ζημιά να έχετε την γκρίνια τους ότι έχασαν την βάση τους;

19 Feb 2011

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

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

18 Apr 2019

Get query results in HTML Table

Πόσες φορές θέλεις να πάρεις τα αποτελέσματα ενός query σε html table γιατί απλά θέλεις να τα βάλεις σε μια σελίδα ή στο blog σου;

26 Jul 2015

Running SQL Server Agent job on AlwaysOn Availability Groups

Όσοι έχουν στο περιβάλλον τους έστω και ένα AlwaysOn Availability Group σίγουρα θα έχουν αναρωτηθεί πως να εκτελούν τις διάφορες εργασίες που θέλουν πάνω σε μια database που είναι σε Availability Group. Υπάρχουν αρκετοί τρόποι, από τον απλούστερο μέχρι τον ποιό advanced και φυσικά αυτό που προτείνω για αυτό το θέμα.

02 Mar 2017

Show Record fields in key/value format

Δεν είναι λίγες οι φορές που θέλεις να δεις τα δεδομένα μιας εγγραφής σε αντί σε μια γραμμή σε πολλές γραμμές (μία για κάθε field) και δύο στήλες (σε μια λογική key/value).

12 Jun 2014

Get a Full list of all databases capacity on a SQL Server instance

Σήμερα περνώντας το πρωί να πω μια καλημέρα σε μια αγαπημένη ομάδα στο χώρο εργασίας μου, παρατήρησα ένα συνάδελφο και φίλο να κάνει κάτι που μου κίνησε την περιέργεια. Βέβαια πρέπει να ομολογήσω ότι σε όποια οθόνη βλέπω να υπάρχει ανοικτός ο SSMS πάντα μου ερεθίζει την περιέργεια.

09 Oct 2021

Keep DBCC CHECKDB output and history

Η εκτέλεση της γνωστής DBCC CHECKDB είναι αυτό που πρέπει να γίνεται καθώς είναι αυτή που ελέγχει την database. Το αποτέλεσμα της είναι κάτι που πρέπει να μελετούμε σχολαστικά μετά από κάθε εκτέλεση της και σε αρκετές περιπτώσεις ίσως θα πρέπει να το συγκρίνουμε με παλαιότερες εκτελέσεις.

06 Dec 2020

SQL Server resultset as formatted Excel spreadsheet attachment in ANSI format.

Αφού ρυθμίσουμε το Database Mail στο SQL Server έχουμε τη δυνατότητα χρησιμοποιόντας την εντολή sp_send_dbmail να στείλουμε ηλεκτρονικά μηνύματα με τη σύνταξη που ορίζει η Microsoft. Συμπεριλαμβάνονται φυσικά και τα συννημένα αρχεία (attachments) αλλά σε ότι αφορά τα υπολογιστικά φύλλα του Excel συναντώνται 2 προβλήματα.

11 Jul 2015

Scripts for rebuild or reorganize indexes in a database

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

16 Mar 2022

Exploring FETCH API CURSOR and sp_cursorfetch

Δεν είναι σπάνιες οι φορές όταν κάνουμε performance tuning investigation χρησιμοποιώντας διάφορα εργαλεία όπως Profiler, sp_whoisactive, dbcc inputbuffer να συναντάμε σαν query text είτε FETCH API CURSOR είτε exec sp_cursorfetch με κάποιες παραμέτρους. Φυσικά με αυτά δεν βγάζουμε άκρη. Για αυτό στο άρθρο αυτό θα σας εξηγήσω πως μπορείτε να βγάλετε άκρη και κυρίως να δείτε το πραγματικό query που εκτελείτε πίσω από αυτά.

16 Aug 2018

Monitor Disk Space for SQL Server databases

Σε αυτό το VLOG δείχνω πόσο εύκολα μπορείτε να ενημερώνεστε για του χώρους που έχετε στους δίσκους που βρίσκονται τα database files σας.

10 Feb 2018

Monitoring CREATE INDEX Progress

Όσοι από εμάς έχουν περάσει ή είναι DBA σε μεγάλες databases καθημερινά έρχονται αντιμέτωποι με πολλά ενδιαφέροντα θέματα. Ένα από αυτά είναι η συντήρηση και η δημιουργία των indexes σε μεγάλου όγκου databases. Ειδικότερα αυτό που ένας τέτοιος DBA ζητάει είναι να γνωρίζει το progress ώστε να είναι σε θέση να εκτιμήσει την ολοκλήρωση της εργασίας.

22 Feb 2016

Dealing with replication error 20598 - The row was not found at the Subscriber when applying the replicated command

Το συγκεκριμένο άρθρο είναι για αυτούς που έχουν στο περιβάλλον τους υλοποιημένο SQL Server Transactional Replication και τους δείχνει πως να αντιμετωπίσουν την περίπτωση που θα αρχίσει αυτό να βγάζει το error message που αναφέρεται στο τίτλο του άρθρου.

17 Sep 2012

How to create system object in SQL Server

Αρκετές φορές σαν DBA θέλουμε να έχουμε κάποια objects (tables, stored procedures) σε ένα σημείο από όπου να μπορούμε να τα καλούμε από οποιαδήποτε βάση μας χωρίς να χρειάζεται να αναφερόμαστε σε αυτούς με qualified name (πχ db_name.schema_name.obj_name). Να είναι τρόπο τινά system object.

1 2 

|< < > >| 

Categories

Labels

0-9

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Σ

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn


sqlschool.gr © 2010-2023 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.