/ / Eräohjelma SQL Server-tietokannan ylläpidon yksinkertaistamiseksi

Eräkäsikirjoitus SQL Server-tietokannan ylläpidon yksinkertaistamiseksi

Varmuuskopioiden luomisen lisäksi,monenlaisia ​​tehtäviä ja toimintoja, joita SQL Server tarjoaa, mikä voi parantaa tietokantojen suorituskykyä ja luotettavuutta. Olemme aiemmin osoittaneet, kuinka varmuuskopioida SQL Server-tietokannat yksinkertaisella komentorivikomentosarjalla, joten samalla tavalla tarjoamme komentosarjan, jonka avulla voit helposti suorittaa yleisiä ylläpitotehtäviä.

Tietokannan tiivistäminen / pienentäminen [/ kompakti]

SQL Server-tietokannan käyttämään fyysiseen levytilaan on useita tekijöitä. Nimetäkseni muutamia:

  • Ajan myötä tietueita lisätään, poistetaan japäivitetty, SQL kasvaa ja kutistuu jatkuvasti taulukoita samoin kuin tuottaa väliaikaisia ​​tietorakenteita kyselymanipulaatioiden suorittamiseksi. Levytallennustarpeiden tyydyttämiseksi SQL Server kasvattaa tietokannan kokoa (yleensä 10%) tarpeen mukaan, jotta tietokantatiedoston koko ei muutu jatkuvasti. Vaikka tämä on ihanteellinen suorituskyvylle, se voi aiheuttaa katkeamisen käytetystä tallennustilasta, koska jos esimerkiksi lisäät erittäin suuren määrän tietueita, jotka saavat tietokannan kasvamaan, ja poistat nämä tietueet myöhemmin, SQL Server ei palauta tätä automaattisesti levytila.
  • Jos käytät tietokantoissasi täydellistä palautustilaa, tapahtumalokitiedosto (LDF) voi kasvaa melko suureksi, etenkin tietokannoissa, joissa on paljon päivityksiä.

Tietokannan tiivistäminen (tai pienentäminen) tuleepalauta käyttämätön levytila. Pienissä (enintään 200 Mt) tietokannoissa tämä ei yleensä ole kovin suuri, mutta suurten tietokantojen (1 Gt tai enemmän) palautettu tila saattaa olla merkittävä.

Tietokannan uudelleenindeksointi [/ Reindex]

Aivan kuten jatkuvasti luominen, muokkaaminen jatiedostojen poistaminen voi johtaa levyn pirstoutumiseen, tietueiden lisääminen, päivittäminen ja poistaminen tietokantaan voi johtaa taulukon pirstoutumiseen. Käytännön tulokset ovat samat, koska luku- ja kirjoitustoiminnot kärsivät suorituskykyhitistä. Taulukoiden uudelleenindeksointi tietokantaan ei ole täydellinen analogia, mutta eheyttää ne olennaisesti. Joissakin tapauksissa tämä voi merkittävästi lisätä tiedonhaun nopeutta.

SQL Serverin toimintatapojen vuoksi taulukoiden on oltavauudelleenindeksoitu erikseen. Tietokannoissa, joissa on paljon taulukoita, tämä voi olla todellinen tuska manuaalisesti, mutta skriptimme osuu jokaiseen vastaavan tietokannan taulukkoon ja rakentaa uudelleen kaikki hakemistot.

Eheyden todentaminen [/ vahvistaa]

Jotta tietokanta pysyisi molemmat toiminnallisinaja tuottaa tarkkoja tuloksia, on olemassa lukuisia eheyskohteita, jotka on oltava paikoillaan. Onneksi fyysiset ja / tai loogiset eheysongelmat eivät ole kovin yleisiä, mutta on hyvä käytäntö suorittaa ajoittain eheyden tarkistusprosessi tietokannoissasi ja tarkistaa tulokset.

Kun vahvistusprosessi suoritetaan skriptin kautta, ilmoitetaan vain virheistä, joten mikään uutinen ei ole hyvä uutinen.

Käsikirjoituksen käyttö

SQLMaint-eräkomentosarja on yhteensopiva SQL: n kanssa2005 ja uudemmat, ja sitä on käytettävä koneessa, johon on asennettu SQLCMD-työkalu (asennettu osana SQL Server -asennusta). On suositeltavaa, että pudotat tämän komentosarjan sijaintipaikkaan, joka asetetaan Windows PATH -muuttujaasi (ts. C: Windows), jotta sitä voidaan kutsua helposti kuten mitä tahansa muuta sovellusta komentoriviltä.

Voit tarkastella ohjeita kirjoittamalla:

SQLMaint /?

kuva

esimerkit

Kompaktin suorittaminen ja sitten vahvistus tietokannassa ”MyDB” luotettavan yhteyden avulla:

SQLMaint MyDB / Compact / Vahvista

Suorita reindex ja tiivistää sitten “MyDB” nimetyssä instanssissa “Special” käyttämällä “sa” -käyttäjää salasanalla “123456”:

SQLMaint MyDB /S:.Erityinen / U: sa / P: 123456 / Reindex / Kompakti

Käyttö eräkäsikirjoituksen sisältä

Vaikka SQLMaint-eräkäsikirjoitusta voidaan käyttää komentorivin sovelluksen tavoin, kun käytät sitä toisen eräohjelman sisällä, sitä täytyy edeltää CALL-avainsanalla.

Esimerkiksi tämä komentosarja suorittaa kaikki ylläpitotehtävät jokaisessa järjestelmän ulkopuolisessa tietokannassa oletus SQL Server -asennuksessa luotettavan todennuksen avulla:

@ECHO POIS
SETLOCAL EnableExtensions
SET DBList = ”% TEMP% DBList.txt”
SqlCmd -E -h-1 -w 300 -Q “SET NoCount ON; VALITSE NIMI master.dbo.sys-tietokannoista WHERE Name not IN ('master', 'model', 'msdb', 'tempdb') '>% DBList%
FOR / F “usebackq-tokenit = 1” %% i IN (% DBList%) DO (
CALL SQLMaint “%% i” / Compact / Reindex / Verify
ECHO +++++++++++
)
JOS OLEMASSA% DBList% DEL / F / Q% DBList%
ENDLOCAL

Lataa SQLMaint Batch Script SysadminGeek.com -sivulta