Comment défragmenter une base de données mssql

Une fragmentation se produit lorsque la base de données de l`ordre logique de l`index de base de données ne correspond pas à l`affectation physique des données sur le disque. Comme les changements de données dans la base de données, les tables d`index de la base de données deviennent dispersés à travers le disque. Il augmente le temps nécessaire pour accéder aux données, ce qui entraîne une baisse des performances des applications. Les commandes de la console de base de données MSSQL vous permettent de reconstruire ou indices de defrag. Vous devez utiliser l`instruction DBCC DBEREINDEX défragmenter un indice de base de données MSSQL.

  • Clique le "Démarrer" bouton dans Windows et sélectionnez "Tous les programmes." Cliquez pour ouvrir la "SQL Management Console."

  • Entrez les instructions SQL suivantes dans la fenêtre de la console:

    NOCOUNT SET ON-
    DECLARE @tablename varchar (255) -
    DECLARE @execstr varchar (400) -
    DECLARE @objectid int
    DECLARE @indexid int
    DECLARE @frag decimal-
    DECLARE @maxfrag décimal;

    @maxfrag SELECT = 30,0;

    DECLARE tables CURSOR FOR
    TABLE_SCHEMA SELECT + `.` + TABLE_NAME
    DE INFORMATION_SCHEMA.TABLES
    WHERE `BASE TABLE` 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 décimal,
    BestCount int,
    ActualCount int,
    LogicalFrag décimal,
    ExtentFrag décimal);

    tables ouvertes;

    FETCH SUIVANT
    à partir de tables
    EN @tablename;

    TANDIS @@ FETCH_STATUS = 0
    COMMENCER
    INSERT INTO #fraglist
    EXEC ( `DBCC SHOWCONTIG (` `` + @tablename + `` `)




     AVEC FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS `) -

    FETCH SUIVANT

     à partir de tables
    EN @ tablename-

    FIN;

    Tableaux- FERMER
    tables DEALLOCATE;

    DECLARE index CURSOR FOR
    SELECT ObjectName, ObjectId, IndexId, LogicalFrag
    DE #fraglist
    OÙ LogicalFrag gt; = @maxfrag

     ET INDEXPROPERTY (ObjectId, IndexName, `IndexDepth`) gt; 0-

    indices ouverts;

    FETCH SUIVANT
    à partir des indices
    EN @tablename, @objectid, @indexid, @frag;

    TANDIS @@ FETCH_STATUS = 0
    COMMENCER
    PRINT `exécution DBCC INDEXDEFRAG (0,` + RTRIM (@tablename) + `,

     `+ RTRIM (@indexid) +`) - fragmentation actuellement `
    + RTRIM (CONVERT (varchar (15), @ frag)) + `%` -

    @execstr SELECT = `DBCC INDEXDEFRAG (0,` + RTRIM (@objectid) + `,

     `+ RTRIM (@indexid) +`) `-

    EXEC (@execstr);

    FETCH SUIVANT

     à partir des indices
    EN @tablename, @objectid, @indexid, @ frag-

    FIN;

    indexes- FERMER
    index DEALLOCATE;

    DROP TABLE # fraglist-
    ALLER

  • Cliquez "Fichier" et sélectionnez "Courir" défragmenter l`index de base de données MSSQL.

AUTRES

Comment convertir mdf à sql фото

Comment convertir mdf à sql

fichiers MDF contiennent votre serveur SQL informations de table de base de données. Ces fichiers sont utilisés pour…

Comment tailler en t-sql фото

Comment tailler en t-sql

T-SQL (Transact SQL) est le langage propriétaire utilisé par Microsoft SQL Server. Il est une extension du langage…

» » » » Comment défragmenter une base de données mssql