Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako Defrag na MSSQL databázy

fragmentácie databázy nastane , keď logické poradí indexe databázy nezodpovedá fyzické rozdelenie dát na disku . Vzhľadom k tomu , zmeny dát v rámci databáz , indexové tabuľky databázy stanú roztrúsené po celom disku . To zvyšuje čas , ktorý potrebujete pre prístup k dátam , čo vedie k zníženiu výkonu aplikácie . Príkazy konzoly pre MSSQL databázy vám umožní obnoviť alebo defrag indexy . Musíte použiť príkaz DBCC DBEREINDEX oklamať index MSSQL databázy . Pokyny dovolená 1

Kliknite na tlačidlo " Štart " vo Windows a vyberte " Všetky programy " . Kliknutím otvoríte
2

Zadajte nasledujúce príkazy SQL v okne konzoly " SQL Management Console . " :

SET NOCOUNT ON ;

DECLARE @ tablename varchar ( 255 ) ;

DECLARE @ execstr varchar ( 400 ) ;

DECLARE @ objectid int ;

DECLARE @ IndexId int ;

DECLARE @ frag desatinné miesto ;

DECLARE @ maxfrag desatinné ;

SELECT @ maxfrag = 30,0 ;

DECLARE CURSOR stoly na predaj

SELECT TABLE_SCHEMA + ' . ' + TABLE_NAME

Z information_schema.tables

WHERE TABLE_TYPE = " Základná tabuľka " ;

CREATE TABLE # fraglist (

Název_objektu char ( 255 ) ,

ObjectId int ,

IndexName char ( 255 ) ,

IndexId int ,

Lvl int ,

CountPages int ,

CountRows int ,

MinRecSize int ,

MaxRecSize int ,

AvgRecSize int ,

ForRecCount int ,

Maximálne int ,

ExtentSwitches int ,

AvgFreeBytes int ,

AvgPageDensity int ,

ScanDensity desatinné

BestCount int ,

ActualCount int ,

LogicalFrag desatinné

ExtentFrag desatinných miest ) , Spojené

OPEN tabuľky ;

FETCH NEXT

z tabuliek

INTO @ tablename ;

WHILE @ @ FETCH_STATUS = 0

BEGIN

INSERT INTO # fraglist

EXEC ( ' DBCC SHOWCONTIG ( '' ' + @ tablename + '' ' )

SA RÝCHLO , TABLERESULTS , ALL_INDEXES , NO_INFOMSGS ' ) ;

FETCH NEXT

Z tabuľky

INTO @ tablename ;

END ;

ZAVRIEŤ tabuľky ;

navrátiť tabuliek ;

DECLARE CURSOR indexy na predaj

SELECT ObjectName , Id_objektu , IndexId , LogicalFrag

Z # fraglist

WHERE LogicalFrag > = @ maxfrag

A INDEXPROPERTY ( ObjectId , IndexName , " IndexDepth ' ) > 0 ;

OPEN indexy ;

FETCH NEXT

Z indexov

INTO @ tablename , @ objectid , @ IndexId , @ frag ;

WHILE @ @ FETCH_STATUS = 0

BEGIN klipart

PRINT "vykonávajúci DBCC INDEXDEFRAG ( 0 , ' + RTrim ( @ tablename ) + " ,

" + RTrim ( @ IndexId ) + " ) - fragmentácia v súčasnej dobe "

+ RTrim ( CONVERT ( varchar ( 15 ) , @ frag ) ) + ' % ' ;

SELECT @ execstr = ' DBCC INDEXDEFRAG ( 0 , ' + RTrim ( @ objectid ) + ' ,

" + RTrim ( @ IndexId ) + ' ) ' ;

EXEC ( @ execstr ) ;

FETCH NEXT FROM

indexy

INTO @ tablename , @ objectid , @ IndexId , @ frag ;

END ;

ZAVRIEŤ indexy , Spojené

navrátiť indexy ;

DROP TABLE # fraglist ;

GO
3

Kliknite na " Súbor " a vyberte položku " Spustiť " oklamať index MSSQL databázy
< . br >

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené