ID Artikel: 943345 - Kajian Terakhir: 25 Juli 2011 - Revisi: 1.0

Cara men-defragmen Windows SharePoint Services 3.0 database dan database SharePoint Server 2007

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Perbesar semua | Perkecil semua

PENDAHULUAN

Artikel ini menjelaskan cara men-defragmen berikut Windows SharePoint Services 3.0 database dan database Microsoft Office SharePoint Server 2007:
  • Database pencarian
  • Profil database
  • Isi database

INFORMASI LEBIH LANJUT

Bila script berikut Microsoft SQL Server berjalan, mengukur tingkat fragmentasi. Tingkat fragmentasi didefinisikan sebagai jumlah blok yang logis linier tapi secara fisik nonlinier.

Tergantung pada tingkat SQL indeks fragmentasi, baik online atau offline defragmentasi terjadi. Defragmentasi online didefinisikan sebagai defragmentasi yang tidak mengambil SQL kunci dan yang men-defragmen hanya daun node. Defragmentasi offline mengambil SQL kunci dan men-defragmen semua node.

Jika persentase fragmentasi adalah kurang dari 10 persen, Defragmentasi tidak terjadi. Jika tingkat fragmentasi dari 10 90 persen, online defragmentasi terjadi. Jika persentase fragmentasi lebih besar dari 90 persen, defragmentasi offline terjadi.

Script berikut mencoba untuk melakukan defragmentation online pertama dan kemudian beralih ke defragmentasi offline jika offline defragmentasi diperlukan.

PentingBerikut SQL Server disimpan prosedur membuat perubahan untuk Windows SharePoint Services 3.0 database dan database Server SharePoint 2007. Script ini harus dijalankan persis sebagaimana ditentukan dalam artikel ini. Perubahan yang Anda buat untuk SharePoint Server 2007 database harus mengikuti pedoman dukungan yang ditentukan dalam artikel Basis Pengetahuan Microsoft berikut:
841057  (http://support.microsoft.com/kb/841057/ ) Dukungan untuk perubahan pada database yang digunakan oleh produk server kantor dan Windows SharePoint Services
CatatanKami sarankan Anda meng-host database SharePoint Server 2007 pada komputer yang menjalankan SQL Server 2005. Kami sarankan Anda memantau tingkat fragmentasi sebelum dan setelah Anda menjalankan script ini. Kami merekomendasikan bahwa Anda menjadwalkan script untuk menjalankan harian, mingguan, atau bulanan, yang sesuai untuk situasi Anda.
CREATE PROCEDURE [dbo].[proc_DefragmentIndices]
AS
    SET NOCOUNT ON
    DECLARE @objectid int
    DECLARE @indexid int
    DECLARE @command varchar(8000)
    DECLARE @baseCommand varchar(8000)
    DECLARE @schemaname sysname
    DECLARE @objectname sysname
    DECLARE @indexname sysname
    DECLARE @currentDdbId int
    SELECT @currentDdbId = DB_ID()

    PRINT CONVERT(nvarchar, GETDATE(), 126) + ': Starting'

    -- Loop over each of the indices
    DECLARE indexesToDefrag CURSOR FOR 
    SELECT 
        i.object_id, 
        i.index_id, 
        i.name
    FROM 
        sys.indexes AS i
    INNER JOIN 
        sys.objects AS o
    ON
        i.object_id = o.object_id
    WHERE 
        i.index_id > 0 AND
        o.type = 'U'

    OPEN indexesToDefrag
    -- Loop through the partitions.
    FETCH NEXT
    FROM
        indexesToDefrag
    INTO 
        @objectid, 
        @indexid,
        @indexname
    WHILE @@FETCH_STATUS = 0
    BEGIN
        -- Lookup the name of the index
        SELECT 
            @schemaname = s.name
        FROM 
            sys.objects AS o
        JOIN 
            sys.schemas AS s
        ON
            s.schema_id = o.schema_id
        WHERE
            o.object_id = @objectid

        PRINT CONVERT(nvarchar, GETDATE(), 126) + ': ' + @schemaname + '.' + @indexname + ' is now being rebuilt.'

        -- Fragmentation is bad enough that it will be more efficient to rebuild the index
        SELECT @baseCommand = 
            ' ALTER INDEX ' + 
                @indexname +
            ' ON ' + 
                @schemaname + '.' + object_name(@objectid) + 
            ' REBUILD WITH (FILLFACTOR = 80, ONLINE = '

        -- Use dynamic sql so this compiles in SQL 2000
        SELECT @command =
            ' BEGIN TRY ' + 
               @baseCommand + 'ON) ' +
            ' END TRY ' +
            ' BEGIN CATCH ' +
               -- Indices with image-like columns can't be rebuild online, so go offline
               @baseCommand + 'OFF) ' +
            ' END CATCH '

        PRINT CONVERT(nvarchar, GETDATE(), 126) + ': Rebuilding'
        EXEC (@command)
        PRINT CONVERT(nvarchar, GETDATE(), 126) + ': Done'

        FETCH NEXT FROM indexesToDefrag INTO @objectid, @indexid, @indexname
    END
    CLOSE indexesToDefrag
    DEALLOCATE indexesToDefrag

    RETURN 0
GO


CatatanSetelah Anda menginstal Windows SharePoint Services 3.0 SP2, Anda tidak perlu menjadwalkan script ini untuk menjalankan untuk WSS database (konten dan config) jika Anda menjalankan SQL 2005. Hal ini karena penjadwalan dan menjalankan script yang termasuk dalam SP2.

REFERENSI

Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
932744  (http://support.microsoft.com/kb/932744/ ) Informasi tentang rencana pemeliharaan Wizard di SQL Server 2005 dan tentang tugas-tugas yang administrator dapat melakukan terhadap SharePoint database
Untuk informasi lebih lanjut tentang cara melakukan pemeliharaan database, melihat kertas putih berikut:
Pemeliharaan database untuk Office SharePoint Server 2007 (http://technet.microsoft.com/en-us/library/cc262731(office.12).aspx)

Berlaku bagi:
  • Microsoft Windows SharePoint Services 3.0
  • Microsoft Office SharePoint Server 2007
Kata kunci: 
kbinfo kbexpertiseinter kbhowto kbmt KB943345 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:943345  (http://support.microsoft.com/kb/943345/en-us/ )