Προς το περιεχόμενο

Ξαφνικό Πρόβλημα με επιδόσεις του SQL Server 2005


UserX

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

 

εδώ και λίγες μέρες παρατήρησα ότι όλα τα sites που έχω που συνδέονται με βάσεις δεδομένων στον SQL Server 2005 αργούν αρκετά κάποιες φορές να φορτώσουν ή να επιστρέφουν δεδομένα. Μιλάμε για 35 περίπου βάσεις δεδομένων και SQL Server 2005 standard edition σε 64bit windows 2003 server, xeon με 8 gb ram. Δεν τίθεται θέμα server γιατί όταν τσεκάρω το task manager χρησιμοποιούνται ΜΟΛΙΣ τα 2 gbytes μνήμησ από τα 8 και ο επεξεργαστής δουλεύει από 2-20%. Προφανώς κάποια queries που τρέχουν τα sites κάνουν την δουλειά, και καθυστερούν και όλα τα υπόλοιπα! ΑΛΛΑ είναι σχεδόν αδύνατον να κάθομαι να ψάχνω σε 35 sites να εντοπίσω από που δημιουργείται το πρόβλημα!

 

Μπορεί κανείς να με βοηθήσει??? Πώς μπορώ να τσεκάρω και να εστιάσω - εντοπίσω την πηγή του προβλήματος? Ευχαριστώ εκ των προταίρων!!

Δημοσ.

Τα queries δεν τρέχουν στα site αλλά στον server άρα αφού ο server είναι άνετος 20% φόρτο. Δεν είναι αυτό.

Τι σύνδεση έχεις μεταξύ server και sites ; Δεν αν τα ερωτήματα επιστρέφουν πολλά δεδομένα και δεν τα σηκώνει η γραμμή.

Δημοσ.

Δεν υπάρχει περίπτωση να φταίει η σύνδεση. Ο server είναι πάνω σε εξαιρετικά γρήγορο κόμβο (VPS) σε μια από τις μεγαλύτερες αμερικανικες εταιρείες παροχής υπηρεσιών internet. Και όλα ήταν μια χαρά μέχρι πρίν 3-4 μέρες!

Δημοσ.

Δεν ξέρω τι παίζει με τον SQL Server αλλά φαντάζομαι θα είναι σαν την MySQL. Κοίταξε εάν κάποιο query κλειδώνει κάποιο table την ώρα που γίνεται μια εγγραφή με αποτέλεσμα άλλα queries να μην μπορούν να εκτελεστούν.

Δημοσ.
Δεν υπάρχει περίπτωση να φταίει η σύνδεση. Ο server είναι πάνω σε εξαιρετικά γρήγορο κόμβο (VPS)

 

τα sites σου είναι σε VPS ή σε dedicated server με 8GB μνήμη?

 

Aν είναι σε VPS, 35 sites με SQL server databases νομίζω ότι είναι too too too much!

 

VPS με 8GR Ram δεν γνωρίζω να υπάρχει... ούτε καν burstable.

Δημοσ.

Πράγματι να έχει ένα VPS 8GB Ram είναι περίεργο. Εάν θέλεις πες μας την εταιρία που το νοικιάζεις για να ρίξω μια ματιά.

Δημοσ.

Αν θυμάμαι καλά, ο MS SQL Server στη Standard Edition έχει κάποιο τεχνητό περιορισμό σε ταυτόχρονα queries για να σε υποχρεώσει να αναβαθμίσεις σε enterprise. Αυτό έχει ως αποτέλεσμα ο server να μπορεί να εξυπηρετήσει πολύ λιγότερα operations απ' ότι του επιτρέπει το hardware. Επίσης έχει τεχνητό περιορισμό και στη μνήμη που μπορεί να χρησιμοποιήσει -γι αυτό βλέπεις να δεσμεύει μόνο 2GB.

 

Η σωστή λύση είναι να κάνεις profiling σε όλα τα database operations, ώστε να δεις τις ανάγκες κάθε site και πιθανότατα τι ακριβώς καθυστερεί υπερβολικά που θα μπορούσε να βελτιστοποιηθεί σε επίπεδο βάσης (π.χ. με indexes) ή εφαρμογής -είναι εκπληκτικό πόσο κακογραμμένες και inefficient είναι πάρα πολλές εφαρμογές στην ανταλλαγή δεδομένων με τη βάση! Εννοείται ότι υπάρχουν εργαλεία για να διευκολύνουν αυτό, δε χρειάζεται να αναλύεις ο ίδιος τα logs. Δε ξέρω λεπτομέρειες αλλά αν θέλεις ψάξε το -με μια γρήγορη αναζήτηση στο google βρήκα αυτό και πληροφορίες για τον SQL Profiler που έρχεται με τα sql client tools που συνοδεύουν MS SQL server (παράδειγμα).

 

Locking per table δεν πιστεύω να γίνεται από τη βάση, θα ήταν απαράδεκτο -ούτε η MySQL δεν κάνει πλέον με το InnoDB engine.

Αρχειοθετημένο

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

  • Δημιουργία νέου...