Beranda » bagaimana » Script Batch untuk Membuat Pemeliharaan Database SQL Server Sederhana

    Script Batch untuk Membuat Pemeliharaan Database SQL Server Sederhana

    Selain membuat cadangan, ada berbagai tugas dan fungsi yang disediakan oleh SQL Server yang dapat meningkatkan kinerja dan keandalan basis data Anda. Kami sebelumnya telah menunjukkan kepada Anda cara membuat cadangan database SQL Server dengan skrip baris perintah sederhana sehingga dengan cara yang sama kami menyediakan skrip yang akan memungkinkan Anda untuk dengan mudah melakukan tugas pemeliharaan umum.

    Memadatkan / Mengecilkan Basis Data [/ Ringkas]

    Ada beberapa faktor yang berkontribusi pada ruang disk fisik yang digunakan database SQL Server. Hanya untuk beberapa nama:

    • Seiring waktu ketika catatan ditambahkan, dihapus dan diperbarui, SQL terus tumbuh dan menyusut tabel serta menghasilkan struktur data sementara untuk melakukan manipulasi kueri. Untuk mengakomodasi kebutuhan penyimpanan disk, SQL Server akan meningkatkan ukuran database (biasanya sebesar 10%) sesuai kebutuhan sehingga ukuran file database tidak terus berubah. Meskipun ini ideal untuk kinerja, ini dapat menyebabkan pemutusan dengan ruang penyimpanan yang digunakan karena jika, misalnya, Anda menambahkan sejumlah besar catatan yang menyebabkan database tumbuh dan kemudian menghapus catatan ini, SQL Server tidak akan secara otomatis mengklaim kembali ini ruang disk.
    • Jika Anda menggunakan Mode Pemulihan Penuh pada basis data Anda, file log transaksional (LDF) dapat tumbuh cukup besar, terutama pada basis data dengan volume pembaruan yang tinggi.

    Memadatkan (atau menyusutkan) basis data akan mendapatkan kembali ruang disk yang tidak digunakan. Untuk database kecil (200 MB atau kurang) ini biasanya tidak akan terlalu banyak, tetapi untuk database besar (1 GB atau lebih) ruang reklamasi mungkin signifikan.

    Reindexing a Database [/ Reindex]

    Sama seperti terus-menerus membuat, mengedit dan menghapus file dapat menyebabkan fragmentasi disk, memasukkan, memperbarui, dan menghapus catatan dalam database dapat menyebabkan fragmentasi tabel. Hasil praktisnya sama dengan operasi baca dan tulis yang mengalami pukulan kinerja. Meskipun bukan analogi yang sempurna, mengindeks ulang tabel dalam database pada dasarnya mendefrag mereka. Dalam beberapa kasus, ini dapat secara signifikan meningkatkan kecepatan pengambilan data.

    Karena cara SQL Server bekerja, tabel harus diindeks ulang secara individual. Untuk database dengan sejumlah besar tabel, ini bisa sangat menyakitkan untuk dilakukan secara manual, tetapi skrip kami mengenai setiap tabel dalam database masing-masing dan membangun kembali semua indeks.

    Memverifikasi Integritas [/ Verifikasi]

    Agar database tetap berfungsi dan menghasilkan hasil yang akurat, ada banyak item integritas yang harus ada. Untungnya, masalah integritas fisik dan / atau logis tidak terlalu umum, tetapi merupakan praktik yang baik untuk sesekali menjalankan proses verifikasi integritas pada database Anda dan meninjau hasilnya.

    Saat proses verifikasi dijalankan melalui skrip kami, hanya kesalahan yang dilaporkan, jadi tidak ada berita yang merupakan kabar baik.

    Menggunakan Script

    Script batch SQLMaint kompatibel dengan SQL 2005 dan lebih tinggi dan harus dijalankan pada mesin yang memiliki alat SQLCMD diinstal (diinstal sebagai bagian dari instalasi SQL Server). Disarankan Anda meletakkan skrip ini ke lokasi yang ditetapkan di variabel Windows PATH Anda (mis. C: Windows) sehingga dapat dengan mudah dipanggil seperti aplikasi lain dari baris perintah.

    Untuk melihat informasi bantuan, cukup masukkan:

    SQLMaint /?

    Contohnya

    Untuk menjalankan compact dan kemudian memverifikasi pada database "MyDB" menggunakan koneksi tepercaya:

    SQLMaint MyDB / Compact / Verifikasi

    Untuk menjalankan reindex dan kemudian kompak pada "MyDB" pada contoh bernama "Special" menggunakan pengguna "sa" dengan kata sandi "123456":

    SQLMaint MyDB /S:.Special / U: sa / P: 123456 / Reindex / Compact

    Menggunakan dari Inside of a Batch Script

    Meskipun skrip kumpulan SQLMaint dapat digunakan seperti aplikasi dari baris perintah, saat Anda menggunakannya di dalam skrip kumpulan lain, itu harus didahului dengan kata kunci CALL.

    Misalnya, skrip ini menjalankan semua tugas perawatan pada setiap basis data non-sistem pada instalasi SQL Server default menggunakan otentikasi tepercaya:

    @ECHO MATI
    SETLOCAL EnableExtensions
    SET DBList = "% TEMP% DBList.txt"
    SqlCmd -E -h-1 -w 300 -Q “SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE Name Not IN ('master', 'model', 'msdb', 'tempdb') ”>% DBList%
    UNTUK / F “usebackq token = 1” %% i IN (% DBList%) DO (
    CALL SQLMaint “%% i” / Compact / Reindex / Verifikasi
    GEMA +++++++++++
    )
    JIKA ADA% DBList% DEL / F / Q% DBList%
    ENDLOCAL

    Unduh SQLMaint Batch Script dari SysadminGeek.com