Αρκετές φορές μέσα από τα μαθήματα που κάνω για τον SQL Server όταν αναφέρω ότι το datetime έχει σαν βάση την 1/1/1753 οι μαθητές μου με ρωτάνε το λόγο. Ο λόγος είναι ο εξής όπως τον εξηγεί όμορφα ο Tibor Karaszi
There are historical reasons for this limitation. In what we sometimes refer to as the "Western world," there have been two calendars in modern times: the Julian and Gregorian calendars. These calendars were a number of days apart (depending on which century you looked at), so
Επειδή πάντα θέλω να έχω πρόχειρα τις δυνατότητες ανά έκδοση του SQL Server για να ξέρω τι θα προτείνω στον πελάτη, και επειδή δεν βρήκα κάτι αντίστοιχο όσο και αν έψαξα, έφτιαξα αυτό το poster για να κάνω την δουλειά μου ευκολότερα και το μοιράζομαι μαζί σας. Θα το βρήτε εδώ. Ελπίζω να σας αρέσει.
Επειδή ο φίλος Αθανάσιος το ζήτησε για να μην του χαλάσουμε το χατήρι.
Αποθηκεύουμε το παρακάτω script σε ένα άρχειο στο δίσκο μας πχ. backup.sql
declare @weekday char(3)
declare @command varchar(2048)
select @weekday=upper(left(datename(dw,getdate()),3))
set @command = 'backup database $(dbname) to disk =''$(backupPath)\$(backupFileName)_'+@weekday+'.bak' + ''' with init'
exec (@command)
και μετά με το sqlcmd εργαλείο του SQL Server από command line γράφουμε τ
Πριν από λίγο ένας συνεργάτης μου, που έχει πολλούς πελάτες με ERP που είναι σε SQL Server μου ζήτησε να παίρνει backup σε ημερήσια εβδομαδιαία βάση αυτοματοποιημένα. Δηλαδή ένα backup για κάθε database (full βεβαια) κάθε μέρα της εβδομάδας, και την επόμενη εβδομάδα να γράφει πάνω στο προηγούμενο της αντίστοιχης ημέρας. Η λύση είναι απλή Πάμε και φτιάχνουμε ένα job στον SQL Server Agent, και σε αυτό, στο ένα και μοναδικό step βάζουμε το παρακάτω script:
declare @weekday char(
Εδώ και καιρό ήθελα να ασχοληθώ και να γράψω ένα άρθρο με αυτό το θέμα. Ένα θέμα το οποίο προσωπικά θεωρώ ότι είναι από τα καλύτερα και δυνατότερα κομμάτια του SQL Server. Με το που το είδα στον SQL Server 2005 (εδώ εμφανίστηκε για πρώτη φορά) έκανα σαν μωρό παιδί που του πήρανε καινούργιο παιχνίδι. Και αυτό γιατί όπως οι περισσότεροι γνωρίζεται είμαι στην μεριά των developers. Από το παρελθόν (21 χρόνια είμαι επαγγελματικά στο χώρο της πληροφορικής) έχω ασχοληθεί με distributed applications,
Επειδή δουλεύω συνεχεια με virtual μηχανές και επειδή πολλές φορές θέλω ένα αρχείο απο αυτές όταν είναι κλειστές . Εψαξα και βρήκα αυτό http://blogs.msdn.com/virtual_pc_guy/archive/2006/09/01/734435.aspx Αλλά και αυτό το οποίο έχει περισσότερες λεπτομέρειες http://www.petri.co.il/mounting-vhd-files-with-vhdmount.htm Αλλα και αυτό το οποίο έχει μια άλλη προσέγγιση http://blogs.technet.com/daven/archive/2006/12/15/vhdmount-without-virtual-server.aspx
Πρόσφατα με έναν συνεργάτη μου που είναι dealer μια ελληνικής εταιρίας που έχει ERP αντιμετωπίσαμε το παρακάτω πρόβλημα όταν πήγαμε να εγκαταστήσουμε τον SQL Server 2005 Standard Edition σε pc που είχε εγκατεστημένο Window XP Pro Ελληνικό. Σε συνεργασία μαζί του (ευχαριστώ Δημήτρη) σας παρουσιάζουμε την λύση. Κατά την στιγμή της εγκατάστασης του SQL Server 2005 ή 2008 παίρνουμε το παρακάτω μήνυμα λάθους στο σημείο που πάει να ενημερώσει τον MSXML Parser.
The Windows Installer service
Όλοι ξέρουμε το pagefile του λειτουργικού και την χρηστικότητα του. Όμως ποιό είναι το ιδανικό μέγεθος του σε ένα server που έχει εγκατεστημένο SQL Server; Πρέπει το Pagefile να είναι 1,5 φορές μεγαλύτερο από την φυσική μνήμη του server. Εάν έχω ή πρόκειτε να χρησιμοποιήσω full-text search τότε πρέπει να είναι τουλάχιστον τρεις φορές μεγαλύτερο από την φυσική μνήμη του server. Για ακόμα καλύτερα αποτελέσματα καλό θα είναι το pagefile να είναι σε ξεχωριστό φυσικό από αυτό του λειτουργικο
Στον SQL Server 2005, και φυσικά υπάρχει και στο SQL Server 2008, πρωτοεμφανίστηκε μια νέα system database η Resource Database. Η database αυτή περιέχει όλα τα read-only critical system tables, metadata, και stored procedures τα οποία ο SQL Server χρειάζεται για τρέξει. Δεν περιέχει πληροφορίες για το SQL Server instance ή για τις databases σας, και αυτό γιατί δημιουργήται κατά την διαδικασία εγκατάστασης του SQL Server ή όταν εγκαταστήσουμε κάποιο service pack. Περιέχει δε όλα τα objects
Πριν ξεκινήσω να περιγράφω το συγκεκριμένο εργαλείο, οφείλω να καταθέσω την άποψη μου γι’ αυτό. ΕΙΝΑΙ ΚΑΤΑΠΛΗΚΤΙΚΟ!!!. Όσοι έχετε ασχοληθεί από παλία με τον SQL Server, προσωπικά ασχολούμαι από την έκδοση 6.0 (1996), θα έχετε παρακολουθήσει την εξέλιξη του συγκεκριμένου εργαλείου. Σε κάθε έκδοση είχαμε κάποιες βελτιώσεις. Όμως στην έκδοση του SQL Server 2008 πιστεύω ότι έχουμε τις περισσότερες αλλά και τις σημαντικότερες βελτιώσεις. Eίναι μια διαφορετική υλοποίηση του εργαλείου που δίνει μια π
Σήμερα το πρωί σε μια συνάντηση που είχαμε όλοι οι Έλληνες MCTs ένας συνάδελφος μου έκανε μια ερώτηση. “Θέλω να καταγράφω τα events που γίνονται σε μια βάση στο Windows Event Log γιατί θέλω να τα βλέπω από το MOM;” Η απάντηση σε αυτό είναι η παρακάτω, όμως θα πρέπει να επισημάνω ότι είναι για SQL Server 2005 μιας και στον SQL Server 2008 δεν υπάρχει η ανάγκη να κάνουμε κάτι τέτοιο μιας και υπάρχει build-in δυνατότητα την οποία υπόσχομαι να παρουσιάσω σε ένα άλλο μου post. Η προσέγγιση θα μ
By Sylvia Moestl Vasilik, 2009/06/22 Μου άρεσε πάρα πολυ και τα αναδημοσιεύω όπως έχει. So ... Bob's left the company to move back east, and you're the new lead database developer on the database. Or, the third-party company to which the maintenance has been outsourced is no longer working on it, so it's yours now. One way or another, you need to take over a database system that you had no part in developing. It's not in good shape, and there's not many resources for you to tap. What do
Είστε σίγουροι ότι έχετε πάρει έστω και μια φορά όλες τις databases σας backup; Ειδικά εσείς αγαπητοί συνάδελφοι που έχετε πολλές databases είστε σίγουροι; Η απάντηση στο ερώτημα αυτό είναι η παρακάτω stored procedure η οποία θα σας επιστρέψει αμέσως όλες τις database που έχετε ξεχάσει να πάρετε backup. create proc dbo.spUnbackupedDbs @backup_type char(1)='D', @time_span_days int=5 as -- Created by Antonios Chatzipavlis -- -- This stored procedure returns all database
Πριν προχωρήσω στο αντικείμενο που θέλω να παρουσιάσω θα ήθελα να περιγράψω κάποιες γνωστές έννοιες που θεωρώ ότι είναι καλό να επαναληθούν, μιας και η επανάληψη είναι η μητέρα της μάθησης όπως έλεγαν οι πρόγονοι μας. Κάθε application ( και με αυτό τον όρο συμπεριλαμβάνω και τα services ) μπορεί να εκτελεσθεί πολλές φορές. Κάθε εκτέλεση του application είναι ένα instance. Κάθε instance που τρέχει είναι ένα process, το οποίο στην ουσία είναι ένας container από ένα ή πολλα threads και τα οποία
Ας συνεχίζουμε στο δεύτερο και τελευταίο μέρος τους 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 αρχ
Λοιπόν μιας και απέκτησα και εδω ένα blog είπα να κάνω σεφτέ με κάτι που λίγο ή πολύ όσοι ασχολούμαστε με SQL Server αντιμετωπίζουμε. Πως θα βρω τα queries που κάνουν υψηλή χρήση της CPU; H απάντηση στο ερώτημα αυτό είναι η παρακάτω custom stored procedure η οποία δουλεύει σε SQL Server 2005 & 2008 create procedure spFindQueriesThatUseHighCPU
as
Set NOCOUNT ON SELECT TOP 100
(a.total_worker_time/a.execution_count) as [Avg_CPU_Time], -- the ti
Πρόσφατα αντιμετώπισα ένα πρόβλημα στα SQL Server 2005 Reporting Services. Ενώ όλα ήταν μια χαρά και όλοι μέσα στην εταιρεία δούλευαν μια χάρα, ένα πρωί όπως συμβάνει πάντα σε αυτές τις περιπτώσεις είχαν σπάσει τα τηλέφωνα, είχα 40 mail, και 20 msn χρήστες να θέλουν να μιλήσουν μαζί μου. Τι έγινε ρε παιδιά... 1. πήραμε φωτία; 2. δεν θα βγει ο Ομπάμα; 3. θα μας πέσει ο ουρανός στο κεφάλι; Τιποτα από όλα αυτά, απλά, όταν πήγαιναν να τυπώσουν είχαν ένα ώραίο μύνημα που τους έλεγε "Unab