Τρόπος για να συμπτύξετε τη βάση δεδομένων tempdb στον SQL Server

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 307487 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ενημέρωση
Εάν είστε πελάτης μικρών επιχειρήσεων, μπορείτε να βρείτε πρόσθετη αντιμετώπιση προβλημάτων και εκμάθηση πόρων με το Υποστήριξη για μικρές επιχειρήσεις.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

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

Σημείωση Εάν χρησιμοποιείτε SQL Server 2005, οι μέθοδοι αυτές ισχύουν επίσης. Ωστόσο, θα πρέπει να χρησιμοποιείτε SQL Server Management Studio αντί Enterprise Manager και Query Analyzer για να εκτελέσετε αυτές τις λειτουργίες. Επίσης πρέπει να γνωρίζετε ότι ο SQL Server Management Studio στον SQL Server 2005 δεν εμφανίζει το σωστό μέγεθος αρχείων tempdb μετά από μια λειτουργία συρρίκνωσης. Η τιμή "Αυτήν τη στιγμή, εκχωρείται χώρος" πάντα λαμβάνονται από sys.master_files DMV και αυτή η τιμή δεν ενημερώνονται μετά από μια λειτουργία συρρίκνωσης για τη βάση δεδομένων tempdb . Για να βρείτε το σωστό μέγεθος αρχείων tempdb μετά από μια λειτουργία συρρίκνωσης, εκτελέστε την ακόλουθη δήλωση στο SQL Server Management Studio:
use tempdb
select (size*8) as FileSizeKB from sys.database_files

Σημείωση Στον SQL Server 2008 δεν επηρεάζεται από το ζήτημα ότι εμφανίζεται το εσφαλμένο μέγεθος των αρχείων tempdb μετά από μια λειτουργία συρρίκνωσης.

Πληροφορίες tempdb

Το tempdb είναι ένα προσωρινό χώρο εργασίας. Στις άλλες χρήσεις, ο SQL Server χρησιμοποιεί το tempdb για τα εξής:
  • Αποθήκευση προσωρινών πινάκων ρητά δημιουργήθηκε
  • Worktables που περιέχουν τα ενδιάμεσα αποτελέσματα που δημιουργούνται στη διάρκεια ερωτήματος επεξεργασίας και ταξινόμησης
  • Επελεύσεως στατικοί δρομείς
SQL Server καταγράφει μόνο τις πληροφορίες στο αρχείο καταγραφής συναλλαγών του tempdb για να επαναφέρετε μια συναλλαγή, αλλά όχι για επανάληψη συναλλαγές κατά την ανάκτηση της βάσης δεδομένων. Η δυνατότητα αυτή αυξάνει την απόδοση των δηλώσεις ΕΙΣΑΓΩΓΉΣ στο το tempdb. Επιπλέον, δεν χρειάζεται να καταγράψετε τις πληροφορίες για να επαναλάβετε τις συναλλαγές, επειδή το tempdb δημιουργείται ξανά κάθε φορά που θα κάνετε επανεκκίνηση του SQL Server. Επομένως, δεν έχει συναλλαγές για την προώθηση ή για να επαναφέρετε. Κατά την εκκίνηση του SQL Server, το tempdb δημιουργείται ξανά χρησιμοποιώντας ένα αντίγραφο της βάσης δεδομένων model και επαναφορά του μεγέθους του τελευταίου έχει ρυθμιστεί το tempdb .

Από προεπιλογή, στη βάση δεδομένων tempdb έχει ρυθμιστεί για αυτόματη προσαρμογή όπως απαιτείται. Επομένως, αυτή η βάση δεδομένων μπορεί να αναπτυχθεί εγκαίρως σε μέγεθος μεγαλύτερο από το μέγεθος που θέλετε. Μια απλή επανεκκίνηση του SQL Server επαναφέρει το μέγεθος του tempdb του μεγέθους του τελευταίου έχει ρυθμιστεί. Το καθορισμένο μέγεθος είναι το τελευταίο ρητή μεγέθους που έχει οριστεί με μέγεθος αρχείου Αλλαγή λειτουργίας όπως ΤΡΟΠΟΠΟΊΗΣΗ βάσης ΔΕΔΟΜΈΝΩΝ που χρησιμοποιεί την επιλογή να ΤΡΟΠΟΠΟΙΉΣΕΤΕ το ΑΡΧΕΊΟ ή η εντολή DBCC SHRINKFILE.

Μπορείτε να χρησιμοποιήσετε τις ακόλουθες τρεις μεθόδους για να συρρικνώσετε tempdb σε μέγεθος μικρότερο από το μέγεθος που έχει ρυθμιστεί.

Μέθοδος 1: Χρήση Transact-SQL εντολές

Μέθοδος 2: Χρησιμοποιήστε την εντολή DBCC SHRINKDATABASE

Μέθοδος 3: Χρησιμοποιήστε την εντολή DBCC SHRINKFILE

Επιπτώσεις της εκτέλεσης DBCC SHRINKDATABASE ή DBCCSHRINKFILE ενώ tempdb βρίσκεται σε χρήση

Εάν χρησιμοποιείται tempdb , προσπαθείτε να τα συρρικνώσετε χρησιμοποιώντας την DBCC SHRINKDATABASE ή εντολές DBCC SHRINKFILE, ενδέχεται να λάβετε πολλά σφάλματα συνέπειας που μοιάζουν με τα ακόλουθα και ενδέχεται να αποτύχει η λειτουργία συρρίκνωσης:
  • Διακομιστής: Msg 2501, επίπεδο 16, κατάσταση 1, γραμμή 1 Δεν ήταν δυνατή η εύρεση του πίνακα με το όνομα '1525580473'. Ελέγξτε το sysobjects.
  • Διακομιστής: Μήνυμα λάθους 8909, 16, 1, κατάσταση επιπέδου γραμμής 0 Πίνακας καταστραφεί: Αντικείμενο 1 Αναγνωριστικό ID ευρετηρίου 0, σελίδα ID % S_PGID. Το PageId στην κεφαλίδα της σελίδας = % S_PGID.
Παρόλο που το σφάλμα 2501 δεν μπορεί να σημαίνει οποιαδήποτε καταστροφή στο tempdb, αυτό το σφάλμα έχει ως αποτέλεσμα να αποτύχει η λειτουργία συρρίκνωσης. Από την άλλη πλευρά, το σφάλμα 8909 θα μπορούσε να σημαίνει καταστροφή της βάσης δεδομένων tempdb . Κάντε επανεκκίνηση του SQL Server για να δημιουργήσετε ξανά tempdb και εκκαθάριση των σφαλμάτων συνέπειας. Ωστόσο, έχετε υπόψη σας ότι ενδέχεται να υπάρχουν άλλα αίτια για σφάλματα δεδομένων φυσικής καταστροφής όπως σφάλμα 8909 και αυτές περιλαμβάνουν ζητήματα υποσύστημα εισόδου/εξόδου.

ΑΝΑΦΟΡΕΣ

SQL Server βιβλία ηλεκτρονικά. θέματα: "DBCC SHRINKFILE"; "DBCC SHRINKDATABASE"

Ιδιότητες

Αναγν. άρθρου: 307487 - Τελευταία αναθεώρηση: Παρασκευή, 7 Ιουνίου 2013 - Αναθεώρηση: 5.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Λέξεις-κλειδιά: 
kbsqlsetup kbhowtomaster kbmt KB307487 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 307487

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com