If-Koubou

Шаблон за партида, за да направите SQL Server Database Maintenance Simple

Шаблон за партида, за да направите SQL Server Database Maintenance Simple (Как да)

В допълнение към създаването на резервни копия, има различни задачи и функции, които SQL Server предлага, които могат да подобрят производителността и надеждността на вашите бази данни. По-рано ви показахме как да архивирате SQL Server бази данни с прост скрипт от командния ред, така че по същия начин предоставяме скрипт, който ще ви позволи лесно да изпълнявате обичайни задачи по поддръжката.

Компакциране / свиване на база данни [/ Compact]

Има няколко фактора, които допринасят за физическото дисково пространство, което използва базата данни на SQL Server. Само за да назовем няколко:

  • С течение на времето, когато се добавят, изтриват и актуализират записите, SQL непрекъснато се разраства и свива таблици, както и генерира временни структури от данни за извършване на манипулации на заявки. За да се съобразят нуждите за съхранение на диска, SQL Server ще увеличи размера на базата данни (обикновено с 10%) според нуждите, така че размерът на файловете на базата данни да не се променя непрекъснато. Макар че това е идеално за производителност, то може да доведе до прекъсване на връзката с използваното пространство за съхранение, защото ако например добавите много голям брой записи, които карат базата данни да се разрасне и впоследствие да изтриете тези записи, SQL Server няма автоматично да възстанови това дисково пространство.
  • Ако използвате пълен режим за възстановяване във вашите бази данни, транзакционният журнален файл (LDF) може да нарасне доста, особено в бази данни с голям обем актуализации.

Компресирането (или свиването) на базата данни ще доведе до възстановяване на неизползваното дисково пространство. За малки бази данни (200 MB или по-малко) това обикновено няма да бъде много, но за големи бази данни (1 GB или повече) възстановеното пространство може да е значително.

Повторно индексиране на база данни [/ Reindex]

Подобно на постоянното създаване, редактиране и изтриване на файлове може да доведе до фрагментиране на диска, вмъкване, актуализиране и изтриване на записи в база данни може да доведе до разпокъсаност на таблицата. Практическите резултати са еднакви в това, че операциите за четене и писане страдат от хит на изпълнението. Въпреки че не е перфектна аналогия, reindexing таблици в база данни по същество ги дефрагментира. В някои случаи това може значително да увеличи скоростта на извличане на данни.

Поради начина, по който SQL Server работи, таблиците трябва да бъдат отделени отделно. За бази данни с голям брой таблици това може да е истинска болка, за да се направи ръчно, но скриптът натиска всяка маса в съответната база данни и възстановява всички индекси.

Потвърждаване на интегритета [/ Verify]

За да може една база данни да остане функционална и да доведе до точни резултати, има многобройни елементи на интегритета, които трябва да са налице. За щастие, физическите и / или логически проблеми с интегритета не са много чести, но е добра практика периодично да стартирате процеса на проверка на цялостта на вашите бази данни и да прегледате резултатите.

Когато процесът на потвърждаване се изпълнява чрез нашия скрипт, се съобщават само грешки, така че няма новини, които да са добри новини.

Използване на скрипта

Шаблонът за SQLMaint партида е съвместим с SQL 2005 и по-висок и трябва да се изпълнява на машина, която има инсталиран инструмент SQLCMD (инсталиран като част от инсталацията на SQL Server). Препоръчваме ви да поставите този скрипт на място, зададено в променливата Windows PATH (т.е. C: Windows), така че лесно може да бъде наречено като всяко друго приложение от командния ред.

За да видите информацията за помощ, просто въведете:

SQLMaint /?

Примери

За да стартирате компактна версия и след това потвърдете в базата данни "MyDB", използвайки надеждна връзка:

SQLMaint MyDB / Компактен / Проверка

За да стартирате "reindex" и след това да компресирате "MyDB" на посочения екземпляр "Special", използвайте "sa" потребител с парола "123456":

SQLMaint MyDB /S: Специално / U: sa / P: 123456 / Reindex / Compact

Използване отвътре на партиден скрипт

Докато SQLMaint партидният скрипт може да се използва като приложение от командния ред, когато го използвате в друг партиден скрипт, той трябва да бъде предхождан от ключовата дума CALL.

Например, този скрипт изпълнява всички задачи по поддръжка на всяка несистемна база данни на стандартна инсталация на SQL Server, използвайки надеждна удостоверяване:

@ OFF OFF
SETLOCAL EnableExtensions
SET DBList = "% TEMP% DBList.txt"
SqlCmd -E -h-1 -w 300-Q "SET NoCount ON; SELECT Име от master.dbo.sysДата бази WHERE Име Не IN ('master', 'model', 'msdb', 'tempdb') ">% DBList%
FORF / F "usebackq означения = 1" %% IN IN (% DBList%) DO (
CALL SQLMaint "%% i" / Compact / Reindex / Проверка
ECHO +++++++++++
)
АКО съществува% DBList% DEL / F / Q% DBList%
ENDLOCAL

Изтеглете SQLMaint Batch Script от SysadminGeek.com