λογισμικό

* Γνώση Υπολογιστών >> λογισμικό >> λογισμικού βάσεων δεδομένων

Πώς να Defrag μια βάση δεδομένων MSSQL

A κατακερματισμός της βάσης δεδομένων εμφανίζεται όταν η λογική σειρά του δείκτη βάσης δεδομένων δεν ταιριάζει με τη φυσική κατανομή των δεδομένων στο δίσκο . Δεδομένου ότι οι αλλαγές των δεδομένων μέσα στη βάση δεδομένων , οι πίνακες του δείκτη της βάσης δεδομένων γίνονται διάσπαρτα σε όλη του δίσκου . Αυξάνει το χρόνο που χρειάζεστε για να έχουν πρόσβαση στα δεδομένα , με αποτέλεσμα μειωμένη απόδοση εφαρμογών . Οι εντολές κονσόλας βάσεων δεδομένων MSSQL σας επιτρέψει να ξαναχτίσουν ή defrag ευρετήρια . Θα πρέπει να χρησιμοποιήσετε την εντολή DBCC DBEREINDEX να defrag δείκτη βάσης δεδομένων MSSQL . Οδηγίες
Η

1 Κάντε κλικ στο κουμπί " Έναρξη " των Windows και επιλέξτε " Όλα τα προγράμματα ". Κάντε κλικ για να ανοίξετε το 2

Πληκτρολογήστε τις ακόλουθες δηλώσεις SQL στο παράθυρο της κονσόλας "Διαχείριση SQL Console . " :

SET NOCOUNT ON ?

ΔΗΛΩΝΟΥΝ @ tablename varchar ( 255 ) ?

varchar ΔΗΛΩΝΟΥΝ @ execstr ( 400 ) ?

ΔΗΛΩΝΟΥΝ @ OBJECTID int ?

ΔΗΛΩΝΟΥΝ @ indexid int ?

ΔΗΛΩΝΟΥΝ @ frag δεκαδικό ?

ΔΗΛΩΝΟΥΝ @ maxfrag δεκαδικό ?

SELECT @ maxfrag = 30,0 ?

ΔΗΛΩΝΟΥΝ πίνακες δρομέα για

SELECT TABLE_SCHEMA + '.' + TABLE_NAME

ΑΠΟ INFORMATION_SCHEMA.TABLES

WHERE TABLE_TYPE = ' ΒΑΣΗ ΤΡΑΠΕΖΙΟΥ » ?

CREATE TABLE # fraglist (

ObjectName char ( 255 ) ,

OBJECTID int , πώληση

IndexName char ( 255 ) , πώληση

IndexId int , πώληση

Lvl int , πώληση

CountPages int ,

countRows int , πώληση

MinRecSize int , πώληση

MaxRecSize int , πώληση

AvgRecSize int , πώληση

ForRecCount int , πώληση

Extents int , πώληση

ExtentSwitches int , πώληση

AvgFreeBytes int , πώληση

AvgPageDensity int , πώληση

ScanDensity δεκαδικό , πώληση

BestCount int ,

ActualCount int , πώληση

LogicalFrag δεκαδικό , πώληση

ExtentFrag ψηφία) ?

OPEN πίνακες ?

FETCH NEXT

ΑΠΟ πίνακες

ΣΕ @ όνομα_πίνακα ?

ΕΝΩ @ @ FETCH_STATUS = 0

BEGIN

INSERT INTO # fraglist

EXEC ( « DBCC SHOWCONTIG ( '' ' + @ όνομα_πίνακα + ''' )

ΜΕ FAST , TABLERESULTS , ALL_INDEXES , NO_INFOMSGS ') ?

FETCH NEXT

ΑΠΟ πίνακες

ΣΕ @ όνομα_πίνακα ?

ΤΕΛΟΣ ?

ΚΛΕΙΣΙΜΟ πίνακες ?

πίνακες deallocate ?

ΔΗΛΩΝΟΥΝ δείκτες δρομέα για

SELECT ObjectName , OBJECTID , IndexId , LogicalFrag

ΑΠΟ # fraglist

WHERE LogicalFrag > = @ maxfrag

ΚΑΙ INDEXPROPERTY ( OBJECTID , IndexName , « IndexDepth ') > 0 ?

OPEN ευρετήρια ?

FETCH NEXT

ΑΠΟ δείκτες

ΣΕ @ όνομα_πίνακα , OBJECTID @ @ indexid , @ frag ?

ΕΝΩ @ @ FETCH_STATUS = 0

BEGIN

PRINT ' Εκτέλεση DBCC INDEXDEFRAG ( 0 , + RTRIM ( @ όνομα_πίνακα ) + ' , πώληση

'+ RTRIM ( @ indexid ) + ' ) - κατακερματισμός σήμερα «

+ RTRIM ( ΜΕΤΑΤΡΟΠΗ ( varchar ( 15 ) , @ frag ) ) + '% ' ?

SELECT @ execstr = ' DBCC INDEXDEFRAG ( 0 , + RTRIM ( @ OBJECTID ) + ' , πώληση

' + RTRIM ( @ indexid ) + ' ) « ?

ΕΚΤΕΛ ( @ execstr ) ?

FETCH NEXT

ΑΠΟ ευρετήρια

ΣΕ @ όνομα_πίνακα , OBJECTID @ @ indexid , @ frag ?

ΤΕΛΟΣ ?

ΚΛΕΙΣΙΜΟ ευρετήρια ?

ευρετήρια deallocate ?

DROP TABLE # fraglist ?

GO
εικόνων 3

Κάντε κλικ στο " Αρχείο" και επιλέξτε " Run" για να defrag το ευρετήριο βάσης δεδομένων MSSQL
Η <. br >
Η

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα