Απαιτήσεις: Στη βάση δεδομένων του SQL Server, υπάρχει ένας πίνακας (π.χ. πίνακας καταγραφής, πίνακας καταγραφής αιτημάτων) που καταλαμβάνει πολύ μεγάλο χώρο στο δίσκο, ίσως εκατοντάδες GB, πώς να μειώσετε τη χρήση του χώρου στον πίνακα; Η συμπίεση δεδομένων (εξοικονόμηση χώρου) μπορεί να ενεργοποιηθεί για εξαιρετικά επαναλαμβανόμενο κείμενο (π.χ. HTML, JSON, αρχεία καταγραφής).
Συμπίεση ROW
Η συμπίεση θα αλλάξει τη φυσική αποθήκευση των δεδομένων, αλλά όχι τη λογική δομή των δεδομένων. Η διαδικασία συμπίεσης γραμμής:
Προσδιορίστε τον τύπο δεδομένων κάθε στήλης και μετατρέψτε τον σε μεταβλητό μήκος Τέλος, ο όγκος των αιτημάτων αποθηκευτικού χώρου μειώνεται στην πραγματική ζήτηση Μετά τη συμπίεση, ο όγκος των αποθηκευμένων δεδομένων σε κάθε σελίδα αυξάνεται Μετά τη συμπίεση, μειώστε την ποσότητα των μεταδεδομένων Για παράδειγμα, εάν ο τύπος δεδομένων μιας στήλης είναι smallint, το σύστημα εκχωρεί 2 byte από προεπιλογή Αλλά στην πραγματικότητα, χρησιμοποιείται μόνο 1 byte χώρου και εάν η συμπίεση είναι ενεργοποιημένη στο τραπέζι, μπορεί να εκχωρηθεί κατ' απαίτηση
Συμπίεση PAGE
Η συμπίεση σελίδας εκτελεί πρόσθετες λειτουργίες για τη βελτίωση της συμπίεσης γραμμών Κύριες λειτουργίες: συμπίεση γραμμής, συμπίεση προθέματος, συμπίεση λεξικού
Κατανάλωση CPU: Συμπίεση PAGE > συμπίεση σειρών
Δοκιμή
Δημιουργήστε νέους πίνακες Users1 και Users2, εισαγάγετε και οι δύο 100.000 τμήματα δεδομένων και η δέσμη ενεργειών sql έχει ως εξής:
Για να δείτε την πληρότητα του χώρου του πίνακα, η οποία είναι συνολικά 3,27 MB, η εντολή είναι η εξής:
Οπως φαίνεται παρακάτω:
Για να δείτε την κατάσταση συμπίεσης του πίνακα Users2, η εντολή είναι η εξής:
Οπως φαίνεται παρακάτω:
sp_estimate_data_compression_savingsΥπολογίστε την εξοικονόμηση που μπορεί να προκύψει όταν ενεργοποιείτε πίνακες ή διαμερίσματα για γραμμές, σελίδες, χώρους αποθήκευσης στηλών, αρχειοθήκες χώρου αποθήκευσης στηλών ή συμπίεση XML. Η εντολή είναι η εξής:
Η έξοδος έχει ως εξής:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB) sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB) Χρήστες2 dbo 1 1 3368 1296 3448 1328
size_with_current_compression_setting (KB) 3368 KB Το ευρετήριο καταλαμβάνει ≈ 3,29 MB με τις τρέχουσες ρυθμίσεις συμπίεσης size_with_requested_compression_setting (KB) 1296 KB Εκτιμώμενο εμβαδόν ≈ 1,27 MB εάν ενεργοποιήσετε τη νέα μέθοδο συμπίεσης που ζητάτε, όπως PAGE ή ROW Για να εκτελέσετε συμπίεση σελίδας, η εντολή είναι η εξής:
Σύγκριση αποτελεσμάτων:Ο πίνακας Users2 είναι 3,27 MB πριν από τη συμπίεση και 1,23 MB μετά τη συμπίεση, όπως φαίνεται στο παρακάτω σχήμα:
Η οπτικοποίηση έχει ως εξής:
Αναφορά:
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή. |