Een databank fragmentatie ontstaat wanneer de logische volgorde van de database -index komt niet overeen met de fysieke verdeling van de gegevens op de schijf . Omdat de gegevens veranderingen binnen de database , raken de index tabellen van de database verspreid over de schijf . Het verhoogt de tijd die je nodig hebt om toegang te krijgen tot gegevens , wat resulteert in verminderde toepassingen prestaties . De MSSQL -database console commands toestaan om weer op te bouwen of te defragmenteren indexen . U moet de DBCC DBEREINDEX statement gebruiken om een MSSQL database- index defragmenteren . Instructies 1 Klik op de knop 'Start' in Windows en selecteer " Alle programma's . " Klik om het te openen kopen van 2 Voer de volgende SQL-instructies in het console venster " SQL Management Console . " : SET NOCOUNT ON ; DECLARE @ tablename varchar ( 255 ) ; DECLARE @ execstr varchar ( 400 ) ; DECLARE @ objectid int ; DECLARE @ indexid int ; DECLARE @ frag decimaal ; DECLARE @ maxfrag decimaal ; SELECT @ maxfrag = 30,0 ; ' . ' VERKLAREN tafels CURSOR FOR SELECT TABLE_SCHEMA + + TABLE_NAME VAN INFORMATION_SCHEMA.TABLES WAAR TABLE_TYPE = ' BASE TAFEL ' ; CREATE TABLE # fraglist ( ObjectName char ( 255 ) , < br ObjectId > int , IndexName char ( 255 ) , Verenigde 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 decimaal , BestCount int , ActualCount int , LogicalFrag decimaal , ExtentFrag decimaal ) ; OPEN tafels ; FETCH NEXT VAN tafels < br > INTO @ tablename ; TERWIJL @ @ FETCH_STATUS = 0 BEGIN INSERT INTO # fraglist EXEC ( ' DBCC SHOWCONTIG ( '' ' + @ tablename + ''' ) op Twitter MET SNEL , TABLERESULTS , ALL_INDEXES , NO_INFOMSGS ' ) ; FETCH NEXT VAN tafels INTO @ tablename ; END ; CLOSE tafels ; DEALLOCATE tafels ; DECLARE indexen CURSOR FOR SELECT ObjectName , ObjectId , IndexId , LogicalFrag FROM # fraglist WHERE LogicalFrag > = @ maxfrag EN INDEXPROPERTY ( ObjectId , IndexName , ' IndexDepth ' ) > 0 ; OPEN indexen ; FETCH NEXT VAN indexen INTO @ tablename , @ objectid , @ indexid , @ frag ; TERWIJL @ @ FETCH_STATUS = 0 BEGIN PRINT ' uitvoeren DBCC INDEXDEFRAG ( 0 , ' + RTRIM ( @ tablename ) + ' , ' + RTRIM ( @ indexid ) + ' ) - fragmentatie momenteel ' + RTRIM ( CONVERT ( varchar ( 15 ) , @ frag ) ) + " % " ; SELECT @ execstr = ' DBCC INDEXDEFRAG ( 0 , ' + RTRIM ( @ ObjectID ) + ' , ' + RTRIM ( @ indexid ) + ' ) ' ; EXEC ( @ execstr ) ; FETCH NEXT UIT indexen INTO @ tablename , @ objectid , @ indexid , @ frag ; END ; CLOSE indexen ; DEALLOCATE indexen ; DROP TABLE # fraglist ; . GO 3 Klik op " File " en selecteer "Run " om de MSSQL database- index defragmenteren < br >
|